Yamayuri はテキストデータに対して形態素解析を行いN-gram の採取、T・MI スコアの算出を行うソフトウェアです。 複数のテキストデータを処理し、その結果を比較するNGSM(N-gram Based System for Multiple Documents)を作成します。 Yamayuri は以下のライブラリ・辞書を使用しています。先人の知恵に感謝です。
NMeCab 形態素解析器MeCab を.NET ライブラリとして移植したもの。 http://sourceforge.jp/projects/nmecab/
System.Data.SQLite 小規模データベース管理システムSQLite を.NET ライブラリとして移植したもの。 https://system.data.sqlite.org/
UniDic 国立国語研究所で開発された、日本語テキストを単語に分割し、形態論情報を付与するための電子化辞書。 http://www.ninjal.ac.jp/corpus_center/unidic/
NMeCab はGPL・LGPL で、SQLite はパブリックドメインで、UniDin はGPL・LGPL・BSDライセンスで配布されています。Yamayuri もそれに従ってGPL・LGPL ということになります。なおNMeCab はIPADIC と合わせて配布されています。Yamayuri にNMeCab を組み込む際に、現在でもメンテナンスが継続しており解析精度もIPADIC より高いことからUniDic に変更しました。UniDic はShift-JIS でコンパイルしてあります。 UniDic で単純な形態素解析を行う場合、国立国語研究所が開発した「茶まめ」がオススメです。 こちらからダウンロードできます。 http://sourceforge.jp/projects/unidic/downloads/58338/unidic-mecab-2.1.2_windows.exe/
N-gram を採取するだけなら既存のツールがありますが、大体のツールはDOS やUNIX 向けに作られています。いちいちコマンドを叩くのも大変なので、Yamayuri を作りました。 T・MI スコアの算出はRMeCab というとても便利なR ライブラリがあります。特徴のありそうな単語に目星が付いているのならばRMeCab は強力です。ただしRMeCab の場合、あらかじめスコアを求める単語を指定しなければなりません。 Yamayuri はテキスト中に出現する全ての単語についてスコアを算出するので、最初から当たりをつけなくても何となく解析を進められます。 そういうわけで、何ら目安を持ち合わせていない手探り状態の時にYamayuri のスコア算出を使えば良いかなと思います。 後述しますが、Yamayuri は決してサクサク動くソフトウェアではありません。条件(データの形式、ユーザーの環境、知識etc. . . )が整っているのならば、既存のツールを使ったほうが良いです。
最後にMI・T スコアについて簡単に説明します。MI スコアとT スコアは単語の共起の有意性を確認するための指標です。N-gram が隣接した記号(=文字or 単語)に着目するのに対し、一定の範囲内に含まれる記号を分析の対象とします。それぞれに異なる有意性を示す傾向があり、組み合わせて使うことが望ましいと言われています。どちらのスコアがより優れているといった判定が難しいそうです。 MI スコア 範囲内に出現する件数は少ないものの、特殊な結びつきが認められる記号を強調。 T スコア 範囲内に出現する件数が多い記号を強調。 ここで言う範囲とはスコアを算出したい記号を中心とした前後の記号の数です。一般にスパンと称されます。Yamayuri でもスパンと呼んでいます。