Amazon

2017年2月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28        

最近のトラックバック

無料ブログはココログ

Amazon2

« Ubuntu14.04にRe:dashをインストールする | トップページ | Re:dashでグラフを書いてみる »

2016年5月 9日 (月)

NMeCabを利用して形態素解析を試す(日本語を分解する)

今回はNMeCabと言うライブラリを利用して形態素解析を実施してみました。

Wikipdiaより抜粋
  形態素解析(けいたいそかいせき、Morphological Analysis)とは、文法的な情報の
  注記の無い自然言語のテキストデータ(文)から、対象言語の文法や、辞書と呼ばれる
  単語の品詞等の情報にもとづき、形態素(Morpheme, おおまかにいえば、言語で
  意味を持つ最小単位)の列に分割し、それぞれの形態素の品詞等を判別する作業である。


要するに、日本語を単語単位に分解してくれる処理の事です。
ライブラリを使用した場合、驚くほど簡単に日本語が分解されます。







それでは早速やってみます。

・NuGetからNMeCabをダウンロード

NMeCabはNuGetで導入する事ができます。まず、Visual Studioのソリューション
エクスプローラーから参照設定を右クリック → NuGetパッケージの管理をクリック
します。

Nmecabtest01


そして左上の検索で「NMeCab」を検索してインストールします。

Nmecabtest02


以下のようなメッセージが出てNMeCabがインストールされます。




ソリューションエクスプローラーで確認するとLibNMeCabがインストールされているはずです。
また、"dic"と言う名前のフォルダーができているはずです。(50MB程の大きさがあります。辞書が入ってます)

Nmecabtest03



・形態素解析の実行

使い方は非常に簡単です。たった、2行で分解してくれます。



分解後は以下のプロパティから情報が取得できます。
  node.Surface = 分解された日本語
  node.Feature = 品詞などの情報
  node.Next = 次の単語


品詞と単語を表示した結果が以下です。(品詞はnode.Feature.Split(',')[0];で取得)


素晴らしい! いい感じで分解できています。これで、色々な物語・記事等を
分解して遊んでみたいと思います。
しかし、日本語の分解ってどう考えても難しいですよね。。。このライブラリもそれ程
早くはなさそうなので、大量の日本語を分解する場合は並列処理すると良いと思います。
また、都度MeCabTaggerのインスタンスをCreateすると遅いので、これはなるべく使い回すと
良いと思います。

自分は以下の様な小さなクラスを作成してMeCabTaggerのインスタンスは一つにしました。


staticクラスって好きなんですよね~。簡単にsingletonになるので。。。






いや~。なんだか、計算機っぽい事をしてしまいました。続いて分解した結果を
表示できる様にしてみたいと思います。今回は先日購入したThinkPad T410と言う、
お世辞にも新しいとは言えないPCで処理してみましたが、全然問題なく使えています。
まぁ、HDDはSSDに換装しましたし、メモリも4GBもあればこの程度の作業は
何の問題もないですね。寧ろ、メインPCのAthlon5350よりずっと快適だったり…)
これで満足できてしまうとはなぁ。。。新しいPCが欲しいけれど必要ないのかなぁ。。。













« Ubuntu14.04にRe:dashをインストールする | トップページ | Re:dashでグラフを書いてみる »

C#」カテゴリの記事

コメント

こんにちは(*^_^*)

すごいですね!
うちの中3の兄ちゃんの頭にインプットしたいですf(^_^;

コメントを書く

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

トラックバック

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

この記事へのトラックバック一覧です: NMeCabを利用して形態素解析を試す(日本語を分解する):

« Ubuntu14.04にRe:dashをインストールする | トップページ | Re:dashでグラフを書いてみる »