0

ユーザーが10〜20語の長さの短い文を入力できる小さなプログラムがあります。次に、WordNet でユーザー指定の用語を検索し、上位語と下位語を含む意味のリストを取得します。

指定した用語 AND 文に最も関連する感覚をリストの一番上に表示したい。ユーザー入力としてはあまりテキストが含まれていないので、処理が高速になることを願っています。優れたリソースを見つけましたが、関連するプロセス/コードを何らかの方法で簡素化できないでしょうか? pdf の p.32 から: .pdf ファイルへのショートカット

  1. ローダー - データ ソース1 からデータをロードし、文字列に変換します。
  2. パーサー - 文字列を受け取り、単語を含む文に解析することでドキュメント オブジェクトに変換します。
  3. POS-tagger - ドキュメント オブジェクトを取得し、各単語の品詞を決定します。
  4. 意味関係 - ドキュメント オブジェクトを取得し、各単語の意味を見つけます。
  5. Stemmer - ドキュメント オブジェクトを取得し、すべての単語をステミングします。
  6. トリマー - ドキュメント オブジェクトを取得し、そこから単語を削除します。
  7. インクルーダー - ドキュメント オブジェクトを受け取り、それに単語を追加します。

私も教授からこのリソースを入手しましたが、それは私が知らないPerlを使用しているため、基本的には先ほど言及した.pdfにリダイレクトしました。Perl スクリプトを Java アプリケーションに含めることができれば、それを使用できると思います。私は解決策を探していて、結果としてこのスレッドを得ました:

JavaでSenseRelateを使用する方法はありますか?

http://metacpan.org/pod/WordNet::SenseRelate::TargetWord

最後に: 私の senseRelate コードの使用法は、基本的に最も関連性の高い感覚を最初に取得することです。問題は、それが Perl を使用していることであり、Java ベースの API か何かが必要になる可能性があります。誰かが何かヒントを持っていれば、彼らは大歓迎です! :)

4

1 に答える 1

1

JAVA ソリューションが見つからないと仮定すると、提案したように、適切な引数を渡して Java から Perl コマンドを実行し、標準出力からの応答を処理するのはかなり簡単です。これは、使用するのにまったく問題のないテクニックのようです。私はこれまで Java を書いたことはありませんが、ここでは...

// http://docs.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html

Process p = new ProcessBuilder("/usr/bin/perl script.pl", "arg").start();
System.out.println(p.getInputStream()); // script.pl stdout
System.out.println(p.getErrorStream()); // script.pl error

コアの曖昧さ回避を実行するために使用できWordNet::SenseRelate::TargetWord、返したいものを stdout に出力できます。

于 2013-10-22T22:52:31.213 に答える