NMeCabで、新語に強いmecab-ipadic-neologd(UTF-8)を簡単に使って、形態素解析を行う。
NMeCab0.07を使って、mecab-ipadic-neologd(UTF-8)を使う
C#でツールを開発している割には、C#の事を初めて書くかもしれません。
色々なことをやっているのにここに投稿するのが面倒で、いざ書こうとしたときには何をやったか詳細を覚えていない(^^;
と言うことで、詳細を覚えているうちに今後は・・・
NuGetで取得できるNMeCabは、0.06.4で、Shift-JISの辞書にしか対応していません。
UTF-8の辞書であるmecab-ipadic-neologdを使うためには、NMeCab0.06.4をNuGetで取得して使用するのではなく、NMeCab0.07をダウンロードして使えば良いだけです。
NMeCab0.07は、NuGetでは取得できないので、以下のページからダウンロードしてプロジェクトで参照すれば使用できます。
なぜ、NMeCab0.07がNuGetに登録されていないのかは不明ですが、
そこは、置いておいて、
NMeCabに付属の辞書は、かなり古いため新語がまったく登録されていません。
そこで、新語の更新にウィッキーペディアやはてなキーワードなどから新語を収録して更新されている辞書のmecab-ipadic-neologdを使って形態素解析をする事で、新語もしっかり解析されるというわけです。
NMeCab0.07を使用して、新語が更新されているmecab-ipadic-neologdを追加いましょう。
コンフィグファイルの設定がわからないとかあれば、一度、NMeCab0.06.4をNuGetで取得して、プロジェクトに追加してください。
追加したら、プロジェクトのコンフィグファイルにNMeCabの設定が追加されてを確認したら、コピーして保存しておけば、今後の役に立つかと。
では、NMeCab0.07のダウンロードは、以下になります。
ページを表示したら、ダウンロードの最新リリースある「NMeCab 0.07 (日付: 2015-07-08)」をクリックしてダウンロードしてください。
.NET形態素解析エンジンNMeCab0.07
https://ja.osdn.net/projects/nmecab/
それと、新語が登録されているmecab-ipadic-neologdですが、GitHubに登録されていて、下のページを表示するとWindows10環境でのコンパイル方法が書かれているので、支持に従うとコンパイル可能です。
mecab-ipadic-neologd辞書
https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md
この辞書の格納場所は、「./dic/mecab-ipadic-neologd」にしてます。
どうしても分からなければ、私に問い合わせしてもらえればお答えします。
NMeCab0.07で、mecab-ipadic-neologdを使用するコンフィグファイルの設定
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on NMeCab -->
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="NMeCab.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.1" />
</startup>
<applicationSettings>
<NMeCab.Properties.Settings>
<setting name="DicDir" serializeAs="String">
<!--<value>./dic/ipadic</value>-->
<value>./dic/mecab-ipadic-neologd</value>
</setting>
<setting name="UserDic" serializeAs="String">
<value />
</setting>
</NMeCab.Properties.Settings>
</applicationSettings>
</configuration>