DIAVIS-wiki
[[:private]]

#contents

*Sen [#m94a4215]
-Javaで書かれた日本語形態素解析器
-C++で開発されているMeCabをJavaに移植した.
-IPAの辞書を利用.MeCab、茶筌と同じもの.
-辞書の構築にはAntが必要


*インストール [#hbfb9d61]
**ビルドツールAntのインストール [#z4018ca4]
-[[Antプロジェクトページ:http://ant.apache.org/bindownload.cgi]]からapache-ant-1.7.0-bin.zipをダウンロードし解凍.
-クラスパスを通す前に,フォルダ名を「apache-ant-1.7.0」から「apache-ant」に変更する.
-パスの設定
--XPの場合.「システムのプロパティ」の「システム環境変数」の「Path」を選択し「編集ボタン」を押す.パスを追加する.(例「C:\apache-ant\bin;」)
--Vistaの場合.「コントロールパネル」>「システムとメンテナンス」>「システム」まで行って,左側の「システムの詳細設定」をクリックして「システムのプロパティ」ダイアログを開く.「詳細設定」タブの下にある「環境変数」ボタンを押す.

*Senのインストール [#v751287b]
-[[Sen配布ページ:https://sen.dev.java.net/servlets/ProjectDocumentList?folderID=755&expandFolder=755&folderID=0]]からsen-1.2.2.1.zipをダウンロード.解凍.

-環境変数にSEN_HOMEを新規作成.解凍したフォルダへのパスを追加する.
-Java の CLASSPATH に sen.jar と commons-logging.jar (jakarta project のロギングライブラリ) を追加する必要がある。なお、commons-logging.jar は Sen に同梱されている。 

*ActivePerlのインストール [#b7f23633]
-[[ActiveStateのActivePerlのページ:http://www.activestate.com/products/activeperl/]]へアクセス
-WindowsのMSI(ActivePerl-5.6.1.638-MSWin32-x86)をダウンロード.
--ver.5.6.1 Build638(2007年2月20日現在)
-無料だけどダウンロードするには氏名を入力する必要がある.
-ダウンロードしたファイルを実行するとインストーラーが起動する.

*辞書の作成 [#w6440d0f]
-Windowsの「スタート」メニューから「ファイル名を指定して実行」を選択.プログラム名「cmd」を入力し「OK」しコマンドラインを表示.
-先ほど解凍したSenのフォルダの下のdicフォルダへcdコマンドにより移動する.
 c:\> cd フォルダまでのパス

antを実行しようとすると以下のようなエラーがでた.
tools.jarを使用するらしいんだけど,tools.jarはJREには含まれていないらしい.ちなみに,tools.jarはjavacなどで利用されるみたい.
とりあえず,JDK5.0をダウンロードしてクラスパスにtools.jarまでのフルパスを追加してみる.けど,同じエラーが出た.
 Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre1.5.0_11\lib\tools.jar
まだ,jreのほうを見に行っている.
インストールしたjdkのフォルダを探しに行ってほしい.
環境変数に「JAVA_HOME」を追加.コマンドラインのウィンドウを一度閉じて再表示.(こうしないと,変更が反映されないみたいなので.)
で,「C:\> ant」と打つとエラーは無事でなくなった.

けど,ビルドしようとするとさっきのエラーはでなくなったものの失敗している様子.
&ref(cmdexe_faild.gif);

調べていたら,
http://ultimania.org/sen/の「インストール>辞書作成」に以下のような記述を発見.
> Widowsで辞書を作成するには、プロパティperl.binに対して下記のようにperlの実行ファイルを絶対パスで指定します。

そこで,以下のように入力すると無事ビルドに成功した.(ビルド時間は,Let's note Vistaでは1分33秒)
 ant -Dperl.bin=C:\Perl\bin\perl.exe -buildfile build.xml
&ref(cmdline_build_successful.gif);

*空白を含むパスによるエラー [#v3cdc785]
senを起動すると以下のエラーが発生する場合がある.
 Exception in thread "main" java.lang.NoClassDefFoundError: and
空白のあるパス(Documents and SettingsやProgram Files)が原因

javaとsenを空白を含まないパスへ再インストールしてみる.

でもsen.batが動かない.javaにはパスが通っているはずなので,以下のように変更.無事動作.コマンドラインから日本語が打てないのでペーストで入力.きちんと解析できました.
 @java -Dsen.home=%SEN_HOME% -classpath %CLASSPATH% StringTaggerDemo ${1+"$@"}

*プログラムからの利用 [#jed0f695]
**Senへのパスの設定 [#qe72235c]
+プログラム内で設定
 System.setProperty("sen.home","path"); 
+引数(Dsen.home)として指定
 >java -cp commons-logging.jar;sen.jar; -Dsen.home=sen-1.2.2.1 program
**サンプルプログラム [#t2ed9b02]
-Senによる解析アプリのサンプル(eclipseプロジェクト)
--&ref(046_SenStudy_01.zip);
--辞書データ(作成するのがめんどくさい場合.使えるかは不明)
--http://diavis.info/programs/dic.zip

+左側のテキストエリアに文字列を入力するかコピペする.
+画面下のボタンを押す.
+結果が右側のテキストエリアに表示される.
+側のテキストエリアをマウスでクリックするとリセット.

&ref(morphologicAnalysiser.gif);



*複合語を利用する [#e8eaed45]
以下のページにやり方が書いてあります.
-https://sen.dev.java.net/servlets/ReadMsg?list=dev&msgNo=36

&ref(Image_make_compound.gif);

次に,dicフォルダにあるdictionary.propertiesというファイルに,以下の記述を追加するらしいが確認したら既に記述されている.なぜ?

 compound_word_file=compound.csv
 compound_word_table=compound.sen

&ref(Image0002.gif);


*13. 連結品詞 [#s2a2856d]
 ある品詞の形態素が連続して出現したときに,一つの形態素として連結して出力させるときに使用する. ¶ ³ (連結品詞((複合名詞) (名詞) (接頭詞名詞接続) (接頭詞数接続))
((記号))) µ ´ 例えば,上の記述では以下のように品詞を連結する.
(a) 連続した「名詞」「接頭詞-名詞接続」「接頭詞-数接続」を連結し「複合名詞」として表示する.な
お,「複合名詞」は品詞定義ファイルgrammar.cha に記述しておく必要がある.
(b) 連続した「記号」を連結し,「記号」として表示する.
*14. 複合語出力 [#ia8b624d]
 形態素辞書ファイル(.dic) 内で定義した複合語について,複合語全体の形態素情報を出力する(“複合
語”) か,複合語を構成する各単語の形態素情報を出力する(“構成語”) かを選択することができる.デ
フォルトは“複合語”. ¶ ³ (複合語出力"複合語") µ ´ なお,複合語出力については-Oc, -Os オプションによっても制御することができる.

*参考文献 [#sc1ed08b]
-[[Senプロジェクトページ:http://ultimania.org/sen/]]
-[[形態素解析システム Sen:http://www.mlab.im.dendai.ac.jp/~yamada/ir/MorphologicalAnalyzer/Sen.html]]
-[[TECHSCORE:http://www.techscore.com/tech/ApacheJakarta/Lucene/4-2.html]]
-[[NI-Lab.'s ヅラッシュドット:http://www.nilab.info/zurazure2/000494.html]]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS