読者です 読者をやめる 読者になる 読者になる

Paradigm Shift Design

ISHITOYA Kentaro's blog.

はてなダイアリーの形態素解析をするクローラーの続き

PHP

はてなダイアリーの形態素数を数えるクローラー - Paradigm Shift Designの続き

この間の処理結果はこんな感じでしたが、

id エントリ数 原型形態素の出現数 原型形態素の異なり数
kent013 343 57,356 10,271
mirakui 43 15,702 4,112
atomoharu 106 7,248 2,408
uzulla 472 62,539 10,881
sumi_wakhok 106 11,898 3,327
gi-chi 12 1,103 582
ono_matope 665 84,594 13,582

今回、色々なバグを取りかつ、セクションをエントリとみなして全て取得できるようになりましたので、正しい数を出しておきます。

id エントリ数 原型形態素の出現数 原型形態素の異なり数
kent013 349 41,664 10,370
mirakui 44 12,596 3,761
atomoharu 120 6,321 2,380
uzulla 1,078 83,400 16,467
sumi_wakhok 1,463 99,508 14,282
gi-chi 109 6,521 2,573
ono_matope 1,150 104,817 22,368
mzp 1,623 90,003 13,286

Mecabで解析した結果を、形態素とみなす条件は以下の通りです。

  • 助詞でない
  • 助動詞でない
  • 記号でない
  • 数字のみで構成されていない
  • アルファベットのみで構成されているばあい、先頭の文字が小文字でない
  • 記号でない
  • ひらがな・カタカナ・アルファベット、一文字でない


また、名詞の連結を複合語として扱います。連結の条件は以下の通りです。

  • 最初の形態素が名詞または接頭詞である
  • 最初の形態素が副詞可能・数・接尾でない
  • ストップワードに含まれていない
  • 複合語の語尾に記号を含まない
  • 漢字・カタカナ・ひらがなのあとに英数字を含む場合には、小文字ではじまらない


ものを複合語として連結し、元の形態素は保存しません。このような処理をしていますので形態素数が減っているのに、異なり数が増えていたりします。因みにストップワードは次のようなものです。品詞情報でフィルタできるものもありますが。

<?php
$stopFirstWord = array('すべて', 'ところ', 'こと', 'とおり', 'なおのこと', 'みんな', 'とき', '限り', 'うち', '', 'むしろ', '', 'ため', 'さん', 'かも', 'あと', '', '', 'ごらん', '', 'これ', 'あたり', 'それ', 'みなさん', 'ここ', 'もの', '通り', 'もん', '', 'いや', '', 'まま', 'さっき', 'かなり', 'たより', '', 'ほとんど', '殆ど', '全て', 'よう', 'いくら', 'なす', 'それぞれ', 'まんま', 'ころ', 'ごい', 'もん', '', 'たび', '', 'わりかし', '', '辺り', 'みな', 'つけ', 'やつ', 'ちゃん', '差し', '', '通り', 'きょう', 'あした', 'あさって', 'いま', 'みごと', 'いちばん', 'なに', '今日', '昨日', '最近', '一昨日', '去年', '以上', '以内', '未満', '以下', '以上', '上記', '上述', '先述', '前述', '前掲', '後述', '下記', '', '', '', 'あれ', 'あんた', 'あなた', '幾ら', 'ASIN', '増補', '読了');
$stopLastWord = array('曰く', 'さん', '先生', '', '', '', 'ボク', 'ぼく', 'オレ', 'ワタシ', 'そう', '', '', 'みたい', 'あたり', '振り', 'たち', '', '', 'ども', 'ごと', 'そのもの', 'そつ', '', '', '女史', '以外', '以内', '未満', '', '以下', '以上', '', '', '辺り', 'ならでは', '大好き', '', 'ごろ', 'だし', 'まわり', 'どちら', 'とも', 'くん', 'たっぷり', '', 'ついで', '読了', '作者', '出版社', 'ASIN', '発売日', '全部');
?>


今は、TopHatenarの上位40位までを解析中です。
これが終わると、一般的に出現する形態素の情報が大体取れると思うので、今度はこの情報を利用したアプリケーションの制作に着手します。


イヤー長かった。色々勉強になりました。
Windowsでクローラーを動かしていたんだけれども、DiskIOが結構なネックになっているのと、何より普段使いのPCをクローラーマシンにするのは、何かが間違っていると気がついたので、新しいケースを買ってきて、転がっていたマザーボードを使ってCentOSをインストールしました。
ケースのついでに、1TのHDDを買ってきたんだけど、いやしかし、HDDの以上に安くなったもんですね・・・。


で、そのヤッスーイPCケースのバリの部分で、指をズパッっと切りましてですね。ただ今、右手の薬指が動きません。ズクズクします。


まぁそんなこんなで、クローラーはクロールさせといて仕事します。
#しかし、記事を書くのに形態素解析器を意識するようになってる・・・。