Windows 7 64ビット環境でLucene.Net及びJapanese Analyzerを使ってみたら 動かない…。 どうも自分のPC環境はWindows 7 64bitで、Japanese Analyzerに含まれているMeCabDotNetではうまく動作しません。
MeCabDotNetをコンパイルするため、MeCabDotNetのソースコードからビルドしてMeCabSampleを実行したら、いきなりBadImageFormatException例外が発生
それを解決するため、下記二つの方法があります
①MeCabSampleのプロジェクトプロパティの「ビルド」タブで、プラットフォームターゲットを「Any」から「x86」に変更
②64bit版MeCabをビルドして、環境変数PATHに64bit版MeCabのbinフォルダを追加
コンパイル方法はこちらを参照
これでうまくいくと思って、「形態素解析」ボタンを押すと、プログラム不正終了
今度は下記のようにMeCabDotNet.csの_Mecabクラスにあるstringを返すメソッドを修正。(mecab_sparse_tostrの例ですが、他にもmecab_versionなど多数あり)
[DllImport("libmecab")]
private static extern IntPtr mecab_sparse_tostr(IntPtr ptrMecab, string str);
protected string _mecab_sparse_tostr(string str)
{
IntPtr s = mecab_sparse_tostr(this.ptrMecab, str);
return Marshal.PtrToStringAnsi(s);
}
これでやっとサンプルが動く、バージョン確認もできました
めでたしめでたし
もっさりもふ夫参上!!!
返信削除