2

スタンフォード NLP 解析ツールキットを使用しています。語彙集にある単語が与えられた場合、その頻度*を見つけるにはどうすればよいですか? または、頻度ランクが与えられた場合、対応する単語をどのように決定できますか?

*テキストサンプルだけでなく、言語全体で。

これは私が使用しているツールキットのデモです:

class ParserDemo {
  public static void main(String[] args) {
    LexicalizedParser lp = new LexicalizedParser("englishPCFG.ser.gz");
    lp.setOptionFlags(new String[]{"-maxLength", "80", "-retainTmpSubcategories"});

    String[] sent = { "Sincerity", "may", "frighten", "the", "boy", "." };
    Tree parse = (Tree) lp.apply(Arrays.asList(sent));
    parse.pennPrint();
    System.out.println();

    TreebankLanguagePack tlp = new PennTreebankLanguagePack();
    GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
    GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
    Collection tdl = gs.typedDependenciesCollapsed();
    System.out.println(tdl);
    System.out.println();

    TreePrint tp = new TreePrint("penn,typedDependenciesCollapsed");
    tp.printTree(parse);
  }

}
4

2 に答える 2

1

単語の出現頻度のみをカウントする場合、文の解析は不要です。入力をトークン化し、Java を使用して単語の頻度をカウントするだけですHashMap。スタンフォード ツールを使用する場合は、 のいずれかのトークナイザーを使用しedu.stanford.nlp.processます。

これにより、特定の単語の頻度がわかりますが、一般的に、特定の頻度ランクに対応する単語を見つけることができない場合があります。これは、一部の単語がドキュメント内で同じ頻度である可能性があるためです。

于 2009-12-01T11:42:09.727 に答える
0

これは、NLP よりも IR (情報検索) の問題です。このタスクについては、Luceneなどのライブラリを検討する必要があります。

于 2014-02-27T23:11:32.043 に答える