• ベストアンサー

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++' を追加しました。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.4

> libchasen.aはどこで手に入れる事が出来るんですか? 自分でコンパイルして作成することになります。 面倒ならmr_flogmanさんの回答の通り、chasenをパイプを通して直接使う方法でもいいと思います。

rinkey
質問者

お礼

ご親切にどうもありがとうございました。 今日は時間がないので後ほど試してみます。

その他の回答 (3)

  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.3

> 「libchasen.a」が存在していなかったのでスルーしてしまった Text::ChaSenはlibchasen.a(茶筅のライブラリ)を呼び出して動くのでこれがないと動きません。 READMEを読めば書いてあります。

rinkey
質問者

お礼

そうですか。 libchasen.aはどこで手に入れる事が出来るんですか? 茶筅やPerlのライブラリの中になかったので。

回答No.2

ChaSenがどんな結果を返すツールか、知らないため はずしているかもしれませんが、 ファイルを入力して、なんらかの出力を標準出力に 出力するのであれば、以下の方法が使えます。 #!/usr/bin/perl -w use strict; open HDL, "chasen test.txt|" or die "$!"; while (<HDL>) { print } close HDL;

rinkey
質問者

お礼

おー、この方法でも出来ました! どうもありがとうございます。

  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

> Can't locate loadable object for module Text::ChaSen Text::ChaSenが見当たらずロードできないと言っています。 ちゃんとインストールされているかを確認してみましょう。

rinkey
質問者

お礼

お返事ありがとうございます。 Text-ChaSen-1.01.tar.gzを展開してインストールしたのですがその際「libchasen.a」が存在していなかったのでスルーしてしまったのですがそれがまずかったのでしょうか? 一応Perlのsystem関数を使って無理やりChaSenを使う事ができたのでそちらの方向で行こうかとも思ってます。 ■ソース #!/usr/bin/perl -w system("chasen < test.txt > R"); exit; これだとtest.txtの中身を解析してRに書き込まれまるようになってます。出来ればファイルに書き込まずに結果を返して欲しかったのですが。

関連するQ&A