PowerShellでMeCabを使う

形態素解析、、、日本語処理には必須と言って良い処理を行ってくれる、MeCab
これをお手軽に使いたくなった。
もちろん、MeCabそのものを使用しても良いのだけど、.Netを利用したいじゃないですか。
方法を考えた。



MeCab .Net」でとりあえず検索

したところ、、、
.NET形態素解析エンジンNMeCab プロジェクト日本語トップページ - OSDN
これだこれ。
ダウンロードして使ってみる。

使用方法

ダウンロードした圧縮ファイルを展開して、「LibNMeCab.dll」のプロパティからブロックを解除。
PowerShellで以下を実行(カレントディレクトリーが展開先のbinフォルダー内とする)

Add-Type -Path LibNMeCab.dll
$p = New-Object NMeCab.MeCabParam
$p.DicDir = Join-Path (Get-Location).Path ..\dic\ipadic
$tagger = [NMeCab.MeCabTagger]::Create($p)
$n = $tagger.ParseToNode('祇園精舎の鐘の声、諸行無常の響きあり')

で、$nの中を見ていけば良い。
最初はBOSなので、$n.Nextをたぐっていくと順番に結果が取得できる。


ポイントは、Add-Typeでdllを読み込むことと、$p.DicDirを指定すること。
最後、ParseToNodeメソッドを使っていますが、単純な解析結果を得たいだけなら、Parseメソッドで良いでしょう。
展開したもので必要となるのは、LibNMeCab.dll(.Net4.0以降ならMMF版でも可)とdicフォルダーの中身。
最小にするなら、それら6ファイルがあれば良いということになります。