« 特定著者コメントのNグラム頻度集計 | トップページ | お久しぶりです »

そのような率

年が明けたと思ったら、仕事の方では延伸だの発注停止だの暗い話題続き。政治の世界でもイスラエルのガザ虐殺はエスカレートする一方で何とも重苦しい1月です。

さて、気を取り直して文字分析の続きです。
Interstage Data Effector体験版というツールを使っているのですが、データの連結機能が文字列の出現頻度を測るのに使えると分かりました。

これは意外な発見でした。データベースで言うとJOIN操作に当たる機能ですが、文字の部分列の一致でJOINができるのが面白い所です。

以下のようなコメントデータベース(タブ区切りテキストファイル)があるとします。

■de1-test.txt
filename    blogdate    comauthor    comdate    comtime    post    body
26873583.html    2005年07月01日    鉄男    2005-07-02    01:31    Posted by 鉄男 at 2005年07月02日 01:31     あのような物体をそのような態度で取り扱ったのがこのような事態を招いた原因だ。
27140626.html    2005年07月04日    正雄    2005-07-06    08:44    Posted by 正雄 at 2005年07月06日 08:44     うんこのような黒い物体をそのように取り扱ってはならない。このような取り扱いが正しいのです。
27140626.html    2005年07月04日    正雄    2005-07-06    10:45    Posted by 正雄 at 2005年07月06日 10:45     そうですか
26873583.html    2005年09月01日    鉄男    2005-09-02    01:31    Posted by 鉄男 at 2005年09月02日 01:31     あのような物体をあのような態度で取り扱ったのがあのような事態を招いた原因だ。

これを以下のコマンドで処理します。
shunreplace -s de1-testrep.cfg -j de1-repcond.txt > test1-rep.txt

出力されたファイルは以下のようになります。

■test1-rep.txt
"comdate","comtime","comauthor","countkey"
"2005-07-02","01:31","鉄男","あのような"
"2005-07-02","01:31","鉄男","そのような"
"2005-07-02","01:31","鉄男","このような"
"2005-07-02","01:31","鉄男","。"
"2005-07-06","08:44","正雄","このような"
"2005-07-06","08:44","正雄","そのように"
"2005-07-06","08:44","正雄","。"
"2005-07-06","10:45","正雄",
"2005-09-02","01:31","鉄男","あのような"
"2005-09-02","01:31","鉄男","。"

「あのような」「このような」「そのような」「あのように」「このように」「そのように」「。」という7種類の文字列が出現すると、そのレコード(行)のコメント日付、時刻、著者とその文字列を出力するよう設定したのです。

鉄男さんの最初のコメントは、「あのような」「そのような」「このような」「。」の4つを含んでいるので、4行の出力に展開されました。
正雄さんの最初のコメントには「このような」が2回含まれていますが、この場合でも出力は1行になります。コメントの中の出現回数を測る事はできなくて、出現したか否かだけを測る事ができます。また、文節などは意識していませんので、「うんこのように」という文脈であっても「このように」という文字列として判定されます。
正雄さんの2番目のコメントのように該当文字列が無い場合には、空の項目が出力されます。

上記のようにするための設定ファイルは以下のようになります。

■de1-testrep.cfg
FieldSeparator "\t"
JnlFile J "F:\stringcount\de1-test.txt"
MstFile {
  M "F:\stringcount\de1-repmaster.txt"
}

■de1-repmaster.txt
keyword    countkey
。    。
あのような    あのような
あのように    あのように
このような    このような
このように    このように
そのような    そのような
そのように    そのように

■de1-repcond.txt
CharacterCode UTF-8
InFileType CSV
ListDef {
  document(J) {
    $filename filename,
    $blogdate blogdate,
    $comauthor comauthor,
    $comdate comdate,
    $comtime comtime,
    $post post,
    $body body
  },
  document(M) { $key keyword, $countkey countkey }
}
OutputDef {
  $comdate, $comtime, $comauthor, $countkey
}
Jcondition {
  join(J,M, $body = $key, "LEFT")
}

これができてしまえば、shunanalyzeコマンドを使った以下の集計で簡単に頻度一覧を出せます。

shunanalyze -s de2-analyze.cfg -a de2-anacond.txt < test1-rep.txt > test2-ana.txt

結果は以下の通り。

■test2-ana.txt
"comauthor","time","maru","total","あのような","あのように","このような","このように","そのような","そのように"
"正雄","2005-07-01",1,2,0,0,1,0,0,1
"鉄男","2005-07-01",2,4,2,0,1,0,1,0

カラムの意味は以下の通りです。
1カラム目comauthor:コメント著者
2カラム目time:コメント日付
3カラム目maru:「。」の出現したコメント数
4カラム目total:「あのような」~「そのように」の6種の文字列が出現した延べコメント数
5カラム目あのような:「あのような」が出現した延べコメント数
・・・

「。」の出現するコメント数は、おそらく全コメント数に近くなると思っています。全コメント数に対する比率を考えたかったので数えてみました。本当はコメント数を別途集計する方が正確なのですが、面倒なので「。」の出現するコメント数で代替したのです。

また、totalは一つのコメントを2回以上カウントしている可能性のある数なので、全コメント数との比率を読む時には注意が必要です。

設定ファイルは以下のようにしました。

■de2-anacond.txt
CharacterCode  UTF-8

InFileType     CSV
OutFileType    CSV
MemorySize     1000

LCondition {
  $n_。_ :=
    IF  $countkey == "。" THEN 1
    ELSE 0
    ENDIF,
  $n_あのような_ :=
    IF  $countkey == "あのような" THEN 1
    ELSE 0
    ENDIF,
  $n_あのように_ :=
    IF  $countkey == "あのように" THEN 1
    ELSE 0
    ENDIF,
  $n_このような_ :=
    IF  $countkey == "このような" THEN 1
    ELSE 0
    ENDIF,
  $n_このように_ :=
    IF  $countkey == "このように" THEN 1
    ELSE 0
    ENDIF,
  $n_そのような_ :=
    IF  $countkey == "そのような" THEN 1
    ELSE 0
    ENDIF,
  $n_そのように_ :=
    IF  $countkey == "そのように" THEN 1
    ELSE 0
    ENDIF
}

GCondition  substr($comauthor,0,25) comauthor, trunc_date($comdate,"HALF") time
RCondition    sum($n_。_) maru ,  sum($n_あのような_) + sum($n_このような_) + sum($n_そのような_) + sum($n_あのように_) + sum($n_このように_) + sum($n_そのように_) total,  sum($n_あのような_) あのような,  sum($n_あのように_) あのように,  sum($n_このような_) このような,  sum($n_このように_) このように,  sum($n_そのような_) そのような,  sum($n_そのように_) そのように

■de2-analyze.cfg
# FieldSeparator "\t"
WorkFolder "F:\stringcount\"

なぜこのようにしたかと言うと、シベリア板に以下のような発言があって、気になっていたからです。

20 名前:いやあ名無しってほんとにいいもんですね[sage] 投稿日:2008/12/09(火) 20:03:38 発信元:219.165.53.195
前から気になってたんですが、今回のエントリで数えて、みたら
このような 9回
そのような 2回
この、その、これ、それ等多数が使用されていました。
それだけですが…

22 名前:いやあ名無しってほんとにいいもんですね[sage] 投稿日:2008/12/10(水) 21:27:02 発信元:219.165.53.195
ANA関係のエントリではざっと数えて(文脈のおかしいのはおいといて)
このような(に) 1
この 12
これ 7
その 2
それ 4
> この件ですが、これは飲んでいたことは事実ですが、その後の調査でこのサプリメントはその検査機には反応しないことが分かったそうです。
サプリメントは「ミッカンMICRA」と言うものだそうですが、それは酢酸が混入しているので、それが検査機に反応したと思ったそうですが、
そうではなかったという回答が得られました。
この件も私がブログで書いたので、慌てて会社側が調べ直して、「サプリメントではなかった。」と報告をし直したと私は考えています。
あくまでも初期段階の話で、後日判明したそうですが、私が書かなければこのケースはサプリメントが犯人にされていたかも知れません。
さて、日本航空が花火を積んで運んだ件ですが、この便に乗車した方がいればと呼びかけましたが、現在までの所メールはありませんでした。

こういうものなんでしょうか?

23 名前:いやあ名無しってほんとにいいもんですね[sage] 投稿日:2008/12/10(水) 21:37:40 発信元:219.165.53.195
領海侵犯
このような 4
この 6
その 6

言われてみると、瀬戸氏の発言には「このような」という言い回しが多用されている印象があります。てな訳で、2008年末までの全コメントについて先ほどの方法でカウントしてみました。

■stringcount.bat
rem stringcount.bat
rem de-repmaster.txt で定義したキーワードの出現回数をカウントする
del countout1-rep.txt countout2-ana.txt countout3-sel.txt countout4-sort.txt
shunreplace -s de1-rep.cfg -j de1-repcond.txt > countout1-rep.txt
shunanalyze -s de2-analyze.cfg -a de2-anacond.txt < countout1-rep.txt > countout2-ana.txt
shunselect -s de3-sel.cfg -q de3-selcond.txt < countout2-ana.txt > countout3-sel.txt
shunsort -a de4-sortcond.txt < countout3-sel.txt > countout4-sort.txt

■de1-rep.cfg
FieldSeparator "\t"
JnlFile J "D:\scomgram\commentdb-noq.txt"
MstFile {
  M "F:\stringcount\de1-repmaster.txt"
}

■de3-selcond.txt (以下の条件で抽出)
1 $total >= 5 AND $maru >= 20

結果をExcelに取り込んで、「。」出現コメント数に対するtotal数の率の順に並べてみました。
20%以上のコメント者は以下のようになります。timeの欄は、yyyy-01-01となっているのが1月~6月の上半期、yyyy-07-01となっているのが7月~12月の下半期を表します。これを見ると、どの時期をとっても、瀬戸氏の発言は率が高い事が分かります。こんなに鮮やかに現れるとは驚きです。

comauthor    time    maru    total    率
ヒトシ1015    2008-01-01    28    9    32.1%
せと弘幸    2007-07-01    81    26    32.1%
大韓王    2008-07-01    82    25    30.5%
瀬戸弘幸    2006-07-01    418    126    30.1%
sayoku?    2006-07-01    217    64    29.5%
瀬戸弘幸    2006-01-01    693    189    27.3%
基準点    2006-07-01    33    9    27.3%
土民    2008-07-01    46    12    26.1%
瀬戸弘幸    2007-01-01    267    67    25.1%
愛国主義者    2007-01-01    20    5    25.0%
datetopic    2006-07-01    20    5    25.0%
月影兵庫    2008-07-01    85    21    24.7%
!    2008-07-01    78    19    24.4%
多聞丸    2008-01-01    25    6    24.0%
瀬戸弘幸    2005-07-01    30    7    23.3%
荑戸弘幸    2006-01-01    95    22    23.2%
視点    2006-07-01    52    12    23.1%
せと弘幸    2008-07-01    261    59    22.6%
主婦    2008-01-01    46    10    21.7%
WWWへの同情者その2    2008-07-01    37    8    21.6%
せと弘幸    2008-01-01    128    27    21.1%
トランプ    2006-07-01    86    18    20.9%
まりこ    2006-07-01    34    7    20.6%

では、どの言葉の出現頻度が高いかを以下の一覧で見てみます。瀬戸氏については、「そのような」「このような」が多いようです。

comauthor    time    maru    total    率    あのような    あのように    このような    このように    そのような    そのように
ヒトシ1015    2008-01-01    28    9    32.1%    0    0    8    0    1    0
せと弘幸    2007-07-01    81    26    32.1%    0    0    7    0    13    6
大韓王    2008-07-01    82    25    30.5%    0    0    11    1    11    2
瀬戸弘幸    2006-07-01    418    126    30.1%    2    0    26    6    77    15
sayoku?    2006-07-01    217    64    29.5%    3    1    11    2    31    16
瀬戸弘幸    2006-01-01    693    189    27.3%    4    1    59    12    96    17
基準点    2006-07-01    33    9    27.3%    0    0    6    0    2    1
土民    2008-07-01    46    12    26.1%    2    0    5    2    3    0
瀬戸弘幸    2007-01-01    267    67    25.1%    1    0    13    2    44    7
愛国主義者    2007-01-01    20    5    25.0%    0    0    3    0    2    0
datetopic    2006-07-01    20    5    25.0%    1    0    3    0    1    0
月影兵庫    2008-07-01    85    21    24.7%    2    0    10    0    7    2
!    2008-07-01    78    19    24.4%    0    0    9    0    6    4
多聞丸    2008-01-01    25    6    24.0%    1    0    2    1    2    0
瀬戸弘幸    2005-07-01    30    7    23.3%    0    0    1    0    4    2
荑戸弘幸    2006-01-01    95    22    23.2%    0    0    8    1    13    0
視点    2006-07-01    52    12    23.1%    2    0    7    0    3    0
せと弘幸    2008-07-01    261    59    22.6%    1    0    10    0    34    14
主婦    2008-01-01    46    10    21.7%    0    0    4    3    2    1
WWWへの同情者その2    2008-07-01    37    8    21.6%    1    0    3    0    2    2
せと弘幸    2008-01-01    128    27    21.1%    0    0    8    2    14    3
トランプ    2006-07-01    86    18    20.9%    1    0    9    0    7    1
まりこ    2006-07-01    34    7    20.6%    0    0    4    0    3    0

そこで、「そのような」の出現率に着目して並べたのが以下の一覧です。この表では更に鮮やかに瀬戸氏の「そのような」多用傾向が現れていると思います。

comauthor    time    maru    total    率    あのような    あのように    このような    このように    そのような    そのように    そのような率
瀬戸弘幸    2006-07-01    418    126    30.1%    2    0    26    6    77    15    18.4%
瀬戸弘幸    2007-01-01    267    67    25.1%    1    0    13    2    44    7    16.5%
せと弘幸    2007-07-01    81    26    32.1%    0    0    7    0    13    6    16.0%
sayoku?    2006-07-01    217    64    29.5%    3    1    11    2    31    16    14.3%
瀬戸弘幸    2006-01-01    693    189    27.3%    4    1    59    12    96    17    13.9%
荑戸弘幸    2006-01-01    95    22    23.2%    0    0    8    1    13    0    13.7%
大韓王    2008-07-01    82    25    30.5%    0    0    11    1    11    2    13.4%
瀬戸弘幸    2005-07-01    30    7    23.3%    0    0    1    0    4    2    13.3%
せと弘幸    2008-07-01    261    59    22.6%    1    0    10    0    34    14    13.0%
『日本よ何処へ』管理者    2007-07-01    86    11    12.8%    0    0    0    0    11    0    12.8%
せと弘幸    2008-01-01    128    27    21.1%    0    0    8    2    14    3    10.9%
opps    2006-07-01    46    9    19.6%    0    0    3    0    5    1    10.9%
極右評論管理者    2006-01-01    231    30    13.0%    1    1    2    0    24    2    10.4%
kame    2006-07-01    78    12    15.4%    1    0    2    0    8    1    10.3%
愛国主義者    2007-01-01    20    5    25.0%    0    0    3    0    2    0    10.0%

本日は以上です。

|

« 特定著者コメントのNグラム頻度集計 | トップページ | お久しぶりです »

文字分析」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1109195/27078477

この記事へのトラックバック一覧です: そのような率:

« 特定著者コメントのNグラム頻度集計 | トップページ | お久しぶりです »