Senで形態素解析
Last-modified: 2012-02-18 (土) 05:06:20
Top / Senで形態素解析
Sen †
- javaで形態素解析を行うためのオープンソースパッケージ Sen の使い方について。
インストール †
Linux †
- 日本語形態素解析器Senを導入する その1 Senのインストール を参考に
- ここ から sen-1.2.2.1.zipをダウンロード、解凍して shower におく。
- 上記サイトにしたがって、sen-1.2.2.1/conf/sen.xml、 sen-1.2.2.1/conf/sen-processor.xml、 sen-1.2.2.1/dic/dictionary.properties の設定を書き換えて、文字コードをutf-8に変えておく。
- 上記サイトにしたがって、辞書をインストールする。
- 環境変数の設定*1
- 以下のコードを実行する(毎回実行するのが面倒なら、.bash_profileを書き換え)。
$ export SEN_HOME=(senディレクトリのパス)/sen-1.2.2.1 $ export CLASSPATH=$CLASSPATH:$SEN_HOME/lib/sen.jar
- 参考 環境変数マニュアル
- 以下のコードを実行する(毎回実行するのが面倒なら、.bash_profileを書き換え)。
- 実行
$ sh $SEN_HOME/bin/sen.sh
- 「すもももももももものうち」と入力
すもも (すもも) 名詞-一般(0,3,3) スモモ スモモ も (も) 助詞-係助詞(3,4,1) モ モ もも (もも) 名詞-一般(4,6,2) モモ モモ も (も) 助詞-係助詞(6,7,1) モ モ もも (もも) 名詞-一般(7,9,2) モモ モモ の (の) 助詞-連体化(9,10,1) ノ ノ うち (うち) 名詞-非自立-副詞可能(10,12,2) ウチ ウチ
- 上記で実行されるのは StringTaggerDemo.java である。
- 「すもももももももものうち」と入力
Windows †
- 必要なファイルのダウンロード
- Sen本体
- sen-1.2.2.1.zipをダウンロード
- 解凍したフォルダは「Sen」などと改名して、適当な場所におく。
- 辞書構築用
- Sen本体
- 文字コード設定
- 日本語形態素解析器Senを導入する その1 Senのインストール を参考に、sen-1.2.2.1/conf/sen.xml、 sen-1.2.2.1/conf/sen-processor.xml、 sen-1.2.2.1/dic/dictionary.properties の設定を書き換えて、文字コードをshift-jisに変えておく。
- C:\Users\miyazawa\Documents\My Dropbox\ecripse_workspace\archives\sen-1.2.2.1\dic\build.xml の 16行目が「http://chasen.aist-nara.ac.jp/stable/ipadic」になっている場合、リンク切れなので、「http://chasen.naist.jp/stable/ipadic/」に変更しておく。
- 日本語形態素解析器Senを導入する その1 Senのインストール を参考に、sen-1.2.2.1/conf/sen.xml、 sen-1.2.2.1/conf/sen-processor.xml、 sen-1.2.2.1/dic/dictionary.properties の設定を書き換えて、文字コードをshift-jisに変えておく。
- 辞書構築
- Luceneの概要Lucene-TECHSCORE- を参考に、Antを使って辞書をアップデートする。
- コマンドプロンプトで、
> cd [senのインストール先]\dic > ant -Dperl.bin=[ActivePerlのインストール先]\perl.exe
- うまくいけば、辞書が更新される。
- パスとクラスパスを追加
システム環境変数に、「SEN_HOME」> [Senのインストール先] を設定する。- [Senのインストール先]/lib/sen.jar、[Senのインストール先]/lib/commons-logging.jar にクラスパスを通す。
- Senを実行してみる。
- Senの使用法Lucene-TECHSCORE- のサンプルコードをそのまま実行してみる。
エラーが出たが、エラーメッセージにあるとおりの場所にsenのインストールディレクトリをコピーしたら解決した。- プログラムの冒頭で、Senのインストール先のパスを指定する
- 実行結果
今日(名詞,副詞可能,*,*,*,*,今日,キョウ,キョー) は(助詞,係助詞,*,*,*,*,は,ハ,ワ) 良い(形容詞,自立,*,*,形容詞・アウオ段,基本形,良い,ヨイ,ヨイ) 天気(名詞,一般,*,*,*,*,天気,テンキ,テンキ) です(助動詞,*,*,*,特殊・デス,基本形,です,デス,デス) 。(記号,句点,*,*,*,*,。,。,。)
- Senの使用法Lucene-TECHSCORE- のサンプルコードをそのまま実行してみる。
辞書に単語を追加 †
- 参考:Sen 用辞書の作成方法 辞書の追加
- [Senのインストール先]/dic/dic.csv に単語を追記する。*4
- 追記する文字列の例
ガンスナイパー,4000,名詞,一般,*,*,*,*,ガンスナイパー,ガンスナイパー,ガンスナイパー
- 最後に改行を入れないように注意(エラーになります)
- 追記する文字列の例
- [Senのインストール先]/dic/build.xml に辞書のパスを追記する。
- 112行目以降
... <!-- <arg line="customize_dic.csv" /> --> <arg line="dic.csv" /> </java> ...
- 112行目以降
- ant を実行
cd [Senのインストール先]/dic ant -Dperl.bin=[ActivePerlのインストール先]\perl.exe
- 実行してみる
ガンスナイパー(名詞,一般,*,*,*,*,ガンスナイパー,ガンスナイパー,ガンスナイパー) が(助詞,格助詞,一般,*,*,*,が,ガ,ガ) 好き(名詞,形容動詞語幹,*,*,*,*,好き,スキ,スキ) です(助動詞,*,*,*,特殊・デス,基本形,です,デス,デス) 。(記号,句点,*,*,*,*,。,。,。)