はてなダイアリーの形態素解析をするクローラーの続き
はてなダイアリーの形態素数を数えるクローラー - 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ケースのバリの部分で、指をズパッっと切りましてですね。ただ今、右手の薬指が動きません。ズクズクします。
まぁそんなこんなで、クローラーはクロールさせといて仕事します。
#しかし、記事を書くのに形態素解析器を意識するようになってる・・・。