2

WordNet とMIT JWI (WordNet にアクセスするための Java API)に関する非常に簡単な質問があります。ファイルを文字列の配列に読み込み、それを単語に分割しました。getPOS()を使用して、名詞のみを含む文字列の別の配列を取得するにはどうすればよいですか? ありがとう!

私が試したことの例:

公開クラス テスト {

public static void main(String[] args) {

    String sentence1 = "The cat ate the fish";

    String[] s1Split = sentence1.split(" ");

    String wnhome = "C:/Program Files/WordNet/2.1";
    String path = wnhome + File.separator + "dict";
    URL url = new URL("file", null , path); 
    IDictionary dict = new Dictionary(url);
    dict.open();


    for (int i = 0; i <s1.length; i++) {
                    //this is where I got confused, wanted to use something like:
                    //Word w = dict.getIndexWord(s1[i], ..) but I need a POS argument, 
                    //and I can't find another suitable method
                    //if w.getPOS() is a noun I would add it to a separate vector
    }

}

}

編集:別のものを考えただけです-のようなものを使用するのは信頼w = dict.getIndexWord(s1[i], POS.NOUN)できますか?名詞が存在しない場合、 w は null になりますか? これは試してみる価値があるでしょうか?

EDIT2: それで、私の質問は、文字列 (単語) を Wordnet オブジェクトに変換できる方法があるかどうかです。そのため、getPOS() を使用できますか?

4

2 に答える 2

1

別のライブラリを使用する場合、あなたのアプローチはうまく機能しません.WordNetは、パーサーではなく、ステロイドの「辞書/シソーラス」として設計されています。Stanford Parser は、代替手段を探すのに適した場所です。

とはいえ、単語ごとにルックアップを実行できますが、名詞と動詞の両方である単語がある場合、構文を考慮していないため、区別できません。

これで作業を開始できます (下の例を参照)。名詞の検索を行い、返されない場合は破棄します。

于 2012-07-05T20:15:14.717 に答える
0

JWNL の場合は次のように動作しますが、同じかどうかはわかりません。

問題が POS (品詞タグ) の取得にあることを理解した場合。これを行うには、Stanford Pos Tagger などの別のツールを使用する必要があります。ただし、この方法では単語文字列ごとに文字列を取得するため、文字列形式の POS から JWNL の POS クラスの POS に変換する必要があります。

于 2014-03-13T10:04:58.097 に答える