形態素解析の解析内容を各品詞別にファイルに書き込みたいです。
以下のサイトのフォームに文章を入力すると品詞ごとに分解されます。
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で質問しましょう!
似たような質問が見つかりました
- Perl perlのプログラミング 部分入れ替えの方法 1 2022/10/11 22:26
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- 英語 英語に詳しい方に質問です。 2 2022/06/21 15:33
- 英語 ソシュール言語観による品詞、単語、辞書理解の誤り 4 2022/11/24 12:27
- 英語 知覚動詞に続く原型不定詞・分詞の用法について 9 2022/10/03 15:03
- 英語 提示文の不定冠詞がかかる単語について 14 2022/09/13 23:57
- 英語 品詞に関する質問です US allies Australia and New Zealand hav 3 2023/07/10 15:02
- 日本語 【「名詞+的」で「形容動詞」?】その4 7 2023/02/23 20:10
- 英語 toeic文法特急の1章4問目の問題について質問です。 We will have to convey 2 2023/01/31 00:32
- 英語 関係形容詞"which"の感覚について 4 2022/12/05 11:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelをCSV書き出す場合のシー...
-
ReadLineでの読み出し行を指定する
-
perlで、後ろの行を読んで、前...
-
エクセルマクロについて CSVフ...
-
VBAで巨大なファイルの途中から...
-
perl で googleAPIを呼び出す...
-
CSVファイルについて
-
JavaでCSVファイルを高速に読む...
-
VBAでCSVファイルの特定行を書...
-
ファイル読み込みと書き込み
-
CSVファイルの内容を編集する方...
-
スレッドAで信号を送り、返答が...
-
VBAでCSVファイルを途中行まで...
-
openした後、closeしないでプロ...
-
エクセルVBA コードが同じでも...
-
VBScriptでファイル保存先のデ...
-
画像をバイナリデータに変換す...
-
awkスクリプトでダブルクォーテ...
-
ListBoxのデータを高速でファイ...
-
C言語で特定の行を抽出する方法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでCSVファイルの特定行を書...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルを途中行まで...
-
VBAで巨大なファイルの途中から...
-
openした後、closeしないでプロ...
-
エクセルVBA コードが同じでも...
-
ReadLineでの読み出し行を指定する
-
JavaでCSVファイルを高速に読む...
-
perlで、後ろの行を読んで、前...
-
Perlの変数に文字数制限(容量...
-
エクセルVBAでCSVファイ...
-
perlにて2つのファイル比較
-
MATLAB グローバル変数の宣言
-
C#でCSVファイルを逐一更新したい
-
CSVが可変長の場合の検索方法
-
他のサーバーにあるファイルの...
-
動画像から静止画を取り出すには
-
perlで容量の大きいCSVファイル...
-
外部サーバーにあるファイルを...
-
1ファイルずつ読み込みたい
おすすめ情報