トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索   ヘルプ   最終更新のRSS

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
      • 参考 環境変数マニュアル
    • 実行
      $ 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

  1. 必要なファイルのダウンロード
  2. 文字コード設定
  3. 辞書構築
    • Luceneの概要Lucene-TECHSCORE- を参考に、Antを使って辞書をアップデートする。
    • コマンドプロンプトで、
      > cd [senのインストール先]\dic
      > ant -Dperl.bin=[ActivePerlのインストール先]\perl.exe
    • うまくいけば、辞書が更新される。
  4. パスとクラスパスを追加
    • システム環境変数に、「SEN_HOME」> [Senのインストール先] を設定する。
    • [Senのインストール先]/lib/sen.jar、[Senのインストール先]/lib/commons-logging.jar にクラスパスを通す。
  5. Senを実行してみる。
    • Senの使用法Lucene-TECHSCORE- のサンプルコードをそのまま実行してみる。
      • エラーが出たが、エラーメッセージにあるとおりの場所にsenのインストールディレクトリをコピーしたら解決した。
      • プログラムの冒頭で、Senのインストール先のパスを指定する
    • 実行結果
      今日(名詞,副詞可能,*,*,*,*,今日,キョウ,キョー)
      は(助詞,係助詞,*,*,*,*,は,ハ,ワ)
      良い(形容詞,自立,*,*,形容詞・アウオ段,基本形,良い,ヨイ,ヨイ)
      天気(名詞,一般,*,*,*,*,天気,テンキ,テンキ)
      です(助動詞,*,*,*,特殊・デス,基本形,です,デス,デス)
      。(記号,句点,*,*,*,*,。,。,。)

辞書に単語を追加

  • 参考:Sen 用辞書の作成方法 辞書の追加
  • [Senのインストール先]/dic/dic.csv に単語を追記する。*4
    • 追記する文字列の例
      ガンスナイパー,4000,名詞,一般,*,*,*,*,ガンスナイパー,ガンスナイパー,ガンスナイパー
      • 最後に改行を入れないように注意(エラーになります)
  • [Senのインストール先]/dic/build.xml に辞書のパスを追記する。
    • 112行目以降
      ...
      <!--
           <arg line="customize_dic.csv" />
      -->
           <arg line="dic.csv" />
           
          </java>
      ...
  • ant を実行
    cd [Senのインストール先]/dic
    ant -Dperl.bin=[ActivePerlのインストール先]\perl.exe
  • 実行してみる
    ガンスナイパー(名詞,一般,*,*,*,*,ガンスナイパー,ガンスナイパー,ガンスナイパー)
    が(助詞,格助詞,一般,*,*,*,が,ガ,ガ)
    好き(名詞,形容動詞語幹,*,*,*,*,好き,スキ,スキ)
    です(助動詞,*,*,*,特殊・デス,基本形,です,デス,デス)
    。(記号,句点,*,*,*,*,。,。,。)

その他の辞書


*1 定義済みの環境変数は printenv コマンドで確認できる。
*2 ANT_HOME と PATH の設定も行う。ここでは、ANT_HOME は C:\apache-ant とした。
*3 「動作確認」の際に、「Unable to locate tools.jar」というエラーが出たが、ここによれば問題ないとのこと。そのまま先に進む。
*4 参考サイトにしたがって、オリジナル辞書 usr.csv を作る方法では、なぜかうまくいきませんでした。