- ベストアンサー
Perlからchasenの使い方
windowsで茶筅を使って形態素解析を行いたいのですがエラーが出てうまくいきません。 ■プログラム(cha.pl) #!/usr/bin/perl -w use Text::ChaSen; $value = '私はとても学校が嫌い。'; $res = Text::ChaSen::getopt_argv('cha.pl','-j'); $str = Text::ChaSen::sparse_tostr($value); print "$str"; exit; ■エラー Can't locate loadable object for module Text::ChaSen in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib .) at cha.pl line 3 Compilation failed in require at cha.pl line 3. BEGIN failed--compilation aborted at cha.pl line 3. もし良かったらアドバイスお願いします。 Makefile.plのWriteMakefileには 'LD' => 'c++' を追加しました。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> libchasen.aはどこで手に入れる事が出来るんですか? 自分でコンパイルして作成することになります。 面倒ならmr_flogmanさんの回答の通り、chasenをパイプを通して直接使う方法でもいいと思います。
その他の回答 (3)
- Ethersky
- ベストアンサー率71% (168/235)
> 「libchasen.a」が存在していなかったのでスルーしてしまった Text::ChaSenはlibchasen.a(茶筅のライブラリ)を呼び出して動くのでこれがないと動きません。 READMEを読めば書いてあります。
お礼
そうですか。 libchasen.aはどこで手に入れる事が出来るんですか? 茶筅やPerlのライブラリの中になかったので。
- mr_flogman
- ベストアンサー率62% (5/8)
ChaSenがどんな結果を返すツールか、知らないため はずしているかもしれませんが、 ファイルを入力して、なんらかの出力を標準出力に 出力するのであれば、以下の方法が使えます。 #!/usr/bin/perl -w use strict; open HDL, "chasen test.txt|" or die "$!"; while (<HDL>) { print } close HDL;
お礼
おー、この方法でも出来ました! どうもありがとうございます。
- Ethersky
- ベストアンサー率71% (168/235)
> Can't locate loadable object for module Text::ChaSen Text::ChaSenが見当たらずロードできないと言っています。 ちゃんとインストールされているかを確認してみましょう。
お礼
お返事ありがとうございます。 Text-ChaSen-1.01.tar.gzを展開してインストールしたのですがその際「libchasen.a」が存在していなかったのでスルーしてしまったのですがそれがまずかったのでしょうか? 一応Perlのsystem関数を使って無理やりChaSenを使う事ができたのでそちらの方向で行こうかとも思ってます。 ■ソース #!/usr/bin/perl -w system("chasen < test.txt > R"); exit; これだとtest.txtの中身を解析してRに書き込まれまるようになってます。出来ればファイルに書き込まずに結果を返して欲しかったのですが。
お礼
ご親切にどうもありがとうございました。 今日は時間がないので後ほど試してみます。