perlで、テキストを形態素解析し、専門用語を抽出するコードを書いています。
Text::MeCab と TermExtract::MeCab; を利用しているのですが、
よくわからないエラーがでます。
以下 ソースとエラー文になります。
<ソース>
#! /usr/bin/perl
use Text::MeCab;
use TermExtract::MeCab;
my $text = "私はももが好きです。";
my $mtext = getMecabText($text);
sub getMecabText{
my ($text) = shift @_;
my @arg = ($0,"Ochasen");
my $mecab = new Text::MeCab::Tagger(\@arg);
my $exdata = new TermExtract::MeCab;
$text = $mecab->parse($text);
return $text;
}
printKeyWord($mtext);
sub printKeyWord{
my ($mtext) = shift @_;
my $data = new TermExtract::MeCab;
my $output_mode = 1;
$data->use_TF;
my @noun_list = $data->get_imp_word($mtext,'var');
foreach (@noun_list) {
next if $_->[0] =~ /^(昭和)*(平成)*(\d+年)*(\d+月)*(\d+日)*(午前)*(午後)*(\d+時)*(\d+分)*(\d+秒)*$/;
next if $_->[0] =~ /^\d+$/;
printf "%-60s %16.2f\n", $_->[0], $_->[1] if $output_mode == 1;
printf "%s\n", $_->[0] if $output_mode == 2;
printf "%s,", $_->[0] if $output_mode == 3;
}
}
<エラー文>
Can't locate loadable object for module Text::MeCab in @INC (@INC contains: C:/usr/site/lib C:/usr/lib .) at C:/usr/lib/DynaLoader.pm line 21
BEGIN failed--compilation aborted at C:/usr/lib/Text/MeCab.pm line 21.
Compilation failed in require at ./lab/a.cgi line 2.
BEGIN failed--compilation aborted at ./lab/a.cgi line 2.
C:/usr/site/lib と C:/usr/lib の中に MeCab.pmファイルを置いても同じエラーがでます。
DynaLoader.pm line 21 や MeCab.pm line 21 は改行のみでした。
MeCab.pm は http://search.cpan.org/~dmaki/Text-MeCab-0.20013 …
の Source にあるものをコピペして設置しています。
いろいろと格闘したのですが、お手上げ状態です。
原因がわかる方いらっしゃれば教えていただきたいです。
よろしくお願いしいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
MeCab.pmだけをダウンロードしたってことですか?それだと動かなくて当然です。
・MeCabそのものがインストールされている必要があります。Text::MeCabはそれとPerlを継ぐ役割りをしているだけです。
・その継ぐために一部Cで書かれている部分があります。それをコンパイルする必要があります。
そのページの左の上の方にDownloadにあるtar.gzが一式です。
通常は、これをいちいちダウンロード、などということはしないで、CPANモジュールを使ってインストールします。依存するモジュールも一気にインストールできます。詳しい使い方は「CPAN 使い方」とでも検索すればすぐにわかります。
ただ問題が一つ。以上のことはUnix系OS上での話です。C:とあることからWindowsだと思われます。それだと、必要なコンパイル環境が整っていない可能性があります。また、Perlの種類によってはCPANがうまく使えないケースもあります。
Strawberry Perl だとCPAN利用のための一式がセットなのでそのまま使えます。
ActivePerlだとPPMを利用することになるのですが、Text::MeCabがあるかどうか確認していません。無いかもしれません。
それ以外だと、そのPerlに依存します。
この回答への補足
MeCabそのものについて書き忘れていました。申し訳ございません。
MeCabそのものはCドライブ直下にインストールしてあります。バージョンは0.98です。
こちらWindowsなのでCpanは使えず、ActibePerlなのでPPMを利用しているのですが、
Text::Mecabがありませんでした。
以前、can'tlocate のエラーでつまずいたときには、提示された場所に、
ソースを探してpmファイルを置いてあげればうまく動いていたんですが・・・
今回はだめみたいです。
また、コマンドプロンプトカから
>cpan
>intall Text::MeCab
とすると
ログが流れて
最後に
<以下赤文字>
Warning: No success on command[C:\usr\bin\perl.exe Makefile.PL INSTALLDIRS=site]
DMAKI/Text-MeCab-0.20013.tar.gz
<以下緑文字>
Running make test
Make had some problems, won't test
Running make install
Make had some problems, won't install
Failed during this command:
DMAKI/Text-MeCab-0.20013.tar.gz : writemakefile NO 'C:\usr\bin\per
l.exe Makefile.PL INSTALLDIRS=site' returned status 512
となりました。
cpanが動くのは、以前Strawberry Perl を入れていたなごりでしょうか・・
もう少し格闘してみようと思います。
回答ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- その他(プログラミング・Web制作) pythonをjupiter notebookからmecabで頻出の高い単語の抽出について(Runt 1 2022/12/17 18:08
- その他(プログラミング・Web制作) python 2 2022/12/23 09:06
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python
-
XML::Parser::Expat が無い?
-
ArduinoのジャイロモジュールMP...
-
ユーザー定義関数に#NAME?が返...
-
Excel VBAでリンク切れをチェッ...
-
「デバイスは PRN を初期化でき...
-
モジュールの最大数はいくつな...
-
例外処理のフローチャートの記...
-
Excel VBA 定義されたプロージ...
-
Cからシェルを起動し返り値をハ...
-
VBAで別モジュールへの変数の受...
-
VBのフォームモジュールと標準...
-
Workbook.BeforeSave イベント...
-
【vba】フォームに書いてあ...
-
perlをバージョンアップしたら...
-
Excel VBA 『Call』で呼び出す...
-
Form間の値の渡し方
-
VBSがコンパイルエラーになりま...
-
グラフのX,Y座標を取得したい
-
現在アクティブなフォーム名を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Python エクセル読み込み xlrd...
-
DB_Fileモジュールインストール...
-
Perl+DBD::Oracleのエラーがわ...
-
SOAP::Liteを利用したい!
-
XML::Parser::Expat が無い?
-
Net::SSH::Perlについて
-
Pg.pmモジュールがロードできない
-
use lib qw(変数名);は無理?
-
HTML::FillInFormが使えない(...
-
perlのモジュールについて
-
YAMLについて
-
python
-
CPAN の初期設定のやり直し方を...
-
CygwinでPerlのCSV_XSを実行する
-
Expat.soが読めない!?
-
@INCにrequireされたファイルが...
-
DBIをCPANからインストール時に...
-
GLIBC_2.4 以上がインストール...
-
Jcodeのインストールのエラー
-
perlからpostgres連携時にエラ...
おすすめ情報