Mecab を Win10 + Eclipse + Java + cmecab-java の環境で動かす (2020年1月版)
試行錯誤しながらセットアップしましたので、本手順の再現までは確認しておりません。
Mecab のセットアップ
Mecab本家で配布されているWindows版は32bit版であり64bit Javaからの利用には不向きらしい、ということで野良ビルドとして配布されている 64bit版を導入
Mecab 64bit ダウンロード
Mecab 64bit インストール
インストールディレクトリ C:\Program Files\MeCab
文字エンコーディング UTF-8
を指定して導入
Mecab 64bit インストール結果
文字化けはしているものの、とりあえず動くようになりました。
>mecab
今日はいいい天気です。
今日はいいい 險伜捷,荳闊ャ,*,*,*,*,*
V 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,*
險伜捷,荳闊ャ,*,*,*,*,*
C 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,*
險伜捷,荳闊ャ,*,*,*,*,*
ナ 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,*
キ 險伜捷,荳闊ャ,*,*,*,*,*
B 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,*
EOS
^Z
Mecab 64bit DLL のコピー
"C:\Program Files\MeCab\bin\libmecab.dll"
を
"C:\Windows\System32\libmecab.dll"
にコピーしました。
cmecab-java のセットアップとビルド
cmecab-java ダウンロード
cmecab-java-2.0.1-src.zip をダウンロードしました。
cmecab-java ビルド作業
cmecab-java-2.0.1-src.zip を展開して、Eclipseのワークスペースにコピー。
build.xml をAnt実行すると、bin の下にcmecab-2.0.jar が出力されました。
(binディレクトリはEclipseのPackageExplorerでは表示されないのでWindowsのExplorerにて確認しました。)
cmecab-java を利用するプロジェクトとプログラムの作成
Javaプロジェクトを作成し、cmecab-2.0.jar と bridj-0.6.1 をクラスパスにセットする
以下のサンプルコードを作成する
(本家とほぼ同じですが、本家ではサンプルコードがうまく表示されていなかったので清書しました。)
// https://code.google.com/archive/p/cmecab-java/wikis/HowToUse.wiki
import net.moraleboost.mecab.Lattice;
import net.moraleboost.mecab.Node;
import net.moraleboost.mecab.impl.StandardTagger;
public class HelloMecabMain {
public static void main(String[] args) throws Exception {
// Taggerを構築。
// 引数には、MeCabのcreateTagger()関数に与える引数を与える。
StandardTagger tagger = new StandardTagger("");
//バージョン文字列を取得
System.out.println("MeCab version " + tagger.version());
//Lattice(形態素解析に必要な実行時情報が格納されるオブジェクト)を構築
Lattice lattice = tagger.createLattice();
//解析対象文字列をセット
String text = "今日はいい天気です。";
lattice.setSentence(text);
//tagger.parse()を呼び出して、文字列を形態素解析する。
tagger.parse(lattice);
//形態素解析結果を出力
System.out.println(lattice.toString());
//一つずつ形態素をたどりながら、表層形と素性を出力
Node node = lattice.bosNode();
while (node != null) {
String surface = node.surface();
String feature = node.feature();
System.out.println(surface + "\t" + feature);
node = node.next();
}
//lattice, taggerを破壊
lattice.destroy();
tagger.destroy();
}
}
実行結果
MeCab version 0.996
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
いい 形容詞,自立,*,*,形容詞・イイ,基本形,いい,イイ,イイ
天気 名詞,一般,*,*,*,*,天気,テンキ,テンキ
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。 記号,句点,*,*,*,*,。,。,。
EOS
BOS/EOS,*,*,*,*,*,*,*,*
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
いい 形容詞,自立,*,*,形容詞・イイ,基本形,いい,イイ,イイ
天気 名詞,一般,*,*,*,*,天気,テンキ,テンキ
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。 記号,句点,*,*,*,*,。,。,。
BOS/EOS,*,*,*,*,*,*,*,*
所感
Mecab関連は環境構築が難しいです。OSに依存しない実行環境があればよいと思いました。
Mecabは研究目的や単体で動かすにはそれほどめんどくさくないのだと思いますが、本格的なテキスト分析での利用や、多様な実行環境が存在する中での業務アプリケーションとしての利用には課題があるのかなと思いました。
参照
参考にしたページ
MeCabとeclipseのバインディングに苦労した - Sakaiakaのブログ
http://sakaiakas.hatenablog.com/entry/2018/02/20/231719
PythonでMeCabを使ってみる(Windows10 64bit) - Qiita
https://qiita.com/wanko5296/items/eeb7865ee71a7b9f1a3a
Author And Source
この問題について(Mecab を Win10 + Eclipse + Java + cmecab-java の環境で動かす (2020年1月版)), 我々は、より多くの情報をここで見つけました https://qiita.com/oyahiroki/items/cffa913866289a2bb928著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .