プロが教える店舗&オフィスのセキュリティ対策術

形態素解析の解析内容を各品詞別にファイルに書き込みたいです。
以下のサイトのフォームに文章を入力すると品詞ごとに分解されます。
http://dai-gokuh.sakura.ne.jp/jikkenn/morph11.html
その品詞をそれぞれの品詞ファイルに書き込みたいと思っています。

例えば、「餃子はおいしい。」と入力すれば、
餃子 は名詞ファイルに、
は は助詞ファイルに、
おいしい は形容詞ファイルに、
○ はその他ファイルに書き込まれます。

また、「ラーメンはおいしい。」などと書き込むと今度はラーメンが新しいワードとしてファイルに登録されます。このようなプログラムを作りたいと思っています。
どなたかよろしくお願いします。
MECAPIについては以下のサイトもご参考ください。
言語はPerlでお願いします。
http://mimitako.net/api/mecapi.cgi

A 回答 (3件)

単純なテキストファイルへの出力処理の話しかと思っていたらポイントは別のところにあったんですね。


Socketが使えるかどうかわかりませんがこんな感じでしょうか?
****************************************************************************************************
#!/usr/bin/perl

use Socket;
my $host = "mimitako.net";
my $path = "/api/mecapi.cgi";
my $data = "sentence=ラーメンはおいしい。";

#----------------接続処理-------------------
socket(SOCKET, PF_INET, SOCK_STREAM, 0);
connect(SOCKET, pack_sockaddr_in(80, inet_aton($host)));
select(SOCKET); $|=1; select(STDOUT);
#------------HTTPリクエスト送信-----------------
print SOCKET "POST $path HTTP/1.0\n";
print SOCKET "Host: $host\n";
print SOCKET "Content-Length: ".length($data)."\n\n";
print SOCKET $data;
#------------サーバからのデータを受信 -----------------
my @aDT = <SOCKET>;

print "Content-type: text/plain\n\n";
## 配列@aDT内にあるXMLの内、surfaceとfeatureについて構文を解釈して単純な処理を行う
print @aDT;

exit;

****************************************************************************************************
もう少し別のやり方があると思いますが、ぱっと思いついたのがこれでした。

ただし岡崎市中央図書館不正?アクセス事件のような事例もあるのでMECABは自分のサーバに立てるか他人のサーバなら許可を取ってやりましょう。

また、テキストファイル出力を行う際にダブりチェックはデータ量に比例して負荷が高くなると思います。量が少ないなら良いのですが、そうでないならDBサーバを利用した方が良いと思います。

でも、一つ目のリンク先でJavaScriptで処理できてるのならそこからデータを処理できるCGIを作ってサブミットした方が早いかと思います。
    • good
    • 0
この回答へのお礼

どうもありがとうございます。
サーバで実行したところ以下のようなエラーが発生したのですが、どうしたらよいのでしょうか。
以下エラー文

XML ページを表示できません
スタイル シートを使用した XML 入力は表示できません。エラーを訂正してください。 [更新] ボタンをクリックするか、または後でやり直してください。


--------------------------------------------------------------------------------

ドキュメントの最上位では無効です。リソース 'http://dai-gokuh.sakura.ne.jp/mecab/api/mecapi.c … の実行エラーです。ライン 1、位置 1

HTTP/1.1 200 OK
^

お礼日時:2010/10/10 04:58

MECAPI経由じゃないとだめですか?


普通のMeCabにPerlバインディングがありますから、それを使うほうが簡単ではないでしょうか。
http://mecab.sourceforge.net/bindings.html

この回答への補足

ご回答ありがとうございます。
残念ながら私が使用しているさくらサーバのライトプランではMECABはインストールできません。
この方法は自分が使用しているサーバ上にMECABが無いとできないんですよね。

補足日時:2010/09/26 03:44
    • good
    • 0

こういうのは、商用ソフトにしか存在しません。


住友電工情報システム株式会社 QuickSolutionをお勧めします。
http://www.sei-info.co.jp/QuickSol/

大体が、形態素解析のプロに成れたら、自分で会社作れるだろが。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!