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>