形態素解析の解析内容を各品詞別にファイルに書き込みたいです。
以下のサイトのフォームに文章を入力すると品詞ごとに分解されます。
http://dai-gokuh.sakura.ne.jp/jikkenn/morph11.html
その品詞をそれぞれの品詞ファイルに書き込みたいと思っています。
例えば、「餃子はおいしい。」と入力すれば、
餃子 は名詞ファイルに、
は は助詞ファイルに、
おいしい は形容詞ファイルに、
○ はその他ファイルに書き込まれます。
また、「ラーメンはおいしい。」などと書き込むと今度はラーメンが新しいワードとしてファイルに登録されます。このようなプログラムを作りたいと思っています。
どなたかよろしくお願いします。
MECAPIについては以下のサイトもご参考ください。
言語はPerlでお願いします。
http://mimitako.net/api/mecapi.cgi
No.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を作ってサブミットした方が早いかと思います。
どうもありがとうございます。
サーバで実行したところ以下のようなエラーが発生したのですが、どうしたらよいのでしょうか。
以下エラー文
XML ページを表示できません
スタイル シートを使用した XML 入力は表示できません。エラーを訂正してください。 [更新] ボタンをクリックするか、または後でやり直してください。
--------------------------------------------------------------------------------
ドキュメントの最上位では無効です。リソース 'http://dai-gokuh.sakura.ne.jp/mecab/api/mecapi.c … の実行エラーです。ライン 1、位置 1
HTTP/1.1 200 OK
^
No.2
- 回答日時:
MECAPI経由じゃないとだめですか?
普通のMeCabにPerlバインディングがありますから、それを使うほうが簡単ではないでしょうか。
http://mecab.sourceforge.net/bindings.html
この回答への補足
ご回答ありがとうございます。
残念ながら私が使用しているさくらサーバのライトプランではMECABはインストールできません。
この方法は自分が使用しているサーバ上にMECABが無いとできないんですよね。
No.1
- 回答日時:
こういうのは、商用ソフトにしか存在しません。
住友電工情報システム株式会社 QuickSolutionをお勧めします。
http://www.sei-info.co.jp/QuickSol/
大体が、形態素解析のプロに成れたら、自分で会社作れるだろが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelをCSV書き出す場合のシー...
-
エクセルVBA コードが同じでも...
-
VBAでCSVファイルを途中行まで...
-
VBAでCSVファイルの特定行を書...
-
拡張子 ”log” と ” dat” の違い
-
openした後、closeしないでプロ...
-
CSVが可変長の場合の検索方法
-
C言語でのファイルのデータ更...
-
csvファイル改行コードの置換に...
-
検索ボックスから製品名を検索...
-
VBScriptでファイル保存先のデ...
-
Perlの変数に文字数制限(容量...
-
JavaでCSVファイルを高速に読む...
-
エクセルVBAでCSVファイ...
-
ADOによるCSVファイルからのデ...
-
MATLAB グローバル変数の宣言
-
batファイルでrenameができませ...
-
VBAでタブ区切りテキストの保存...
-
全角と半角文字が混在している...
-
バッチファイルの作り方(CSV→...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでCSVファイルを途中行まで...
-
エクセルVBA コードが同じでも...
-
VBAでCSVファイルの特定行を書...
-
ExcelをCSV書き出す場合のシー...
-
ReadLineでの読み出し行を指定する
-
openした後、closeしないでプロ...
-
JavaでCSVファイルを高速に読む...
-
VBAで巨大なファイルの途中から...
-
拡張子 ”log” と ” dat” の違い
-
csvファイル改行コードの置換に...
-
C言語でのファイルのデータ更...
-
VB6.0でDB接続する際に切断時の...
-
Perlの変数に文字数制限(容量...
-
Perl Vlookupみたいに
-
CSVファイルについて
-
MATLAB グローバル変数の宣言
-
エクセルVBAでCSVファイ...
-
VBScriptでファイル保存先のデ...
-
Monster'sの改造・・・ボスモン...
-
perlで、後ろの行を読んで、前...
おすすめ情報