DBCLS 6/10
引き続きバイトの内容
与えられた辞書データからMeCab辞書を作るところです
とりあえず前回のデータから末尾が名詞じゃない単語を省いた。
import MeCab mecab = MeCab.Tagger("-Ochasen") ... def is_nown(text): node = mecab.parseToNode(text) while node: if node.next.surface == "": langtype = node.feature.split(",")[0] if not langtype in ("名詞","接頭辞","記号"): return False else : return True node = node.next
最初うまくいかなくて、なんかおかしいなーと思ったら前回作った不完全な辞書をユーザー辞書に登録したままMeCab用のdicファイルを生成していた。そりゃそうだ。
前回と同じ文章を使ってみる
[mizchi]% echo アデニンの構造とカシューナッツ |mecab [mizchin:~/work/dbcls] アデニン 名詞,一般,*,*,*,*,アデニン,*,*,dbcls の 助詞,連体化,*,*,*,*,の,ノ,ノ 構造 名詞,一般,*,*,*,*,構造,*,*,dbcls と 助詞,並立助詞,*,*,*,*,と,ト,ト カシュー 名詞,一般,*,*,*,*,カシュー,カシュー,カシュー ナッツ 名詞,一般,*,*,*,*,ナッツ,ナッツ,ナッツ EOS
とりあえず辞書に含まれてた格助詞とかは除くことができた。それにしても使ってる元データは「構造」なんてのもいれていて、ちょっと過剰な気配がする
TF*IDF用に青空文庫を大量にパースしておく必要がありそう。元データは青空文庫をローカルに保持しているやつがあるのでそれを使う。
おまけ
最近彼女ができたid:syou6162さんにソースの解説をしてもらいたいのですが、僕はDBCLSにおいて最近彼女ができたid:syou6162 さんの仕事を引き継いでいることになるそうです。
最近彼女ができたid:syou6162さんは最近彼女ができたので幸せそうですね!
という文章をマルコフ連鎖すると
ですが、僕はDBCLSにおいて最近彼女ができたid:syou6162さんは最近彼女ができたid:syou6162さんの仕事を引き継いでいることになるそうです。最近彼女ができたid:syou6162さんは最近彼女ができたid:syou6162さんにソースの解説をしてもらいたいのですが
不毛
使ったのはこれ
MeCabとPythonでマルコフ連鎖を書いてみる(改) | Weboo! Returns.
結構エラー吐くのでスクラッチしたい