Java斯坦福NLP:查找词频?

Java斯坦福NLP:查找词频?,java,nlp,stanford-nlp,Java,Nlp,Stanford Nlp,我正在使用斯坦福NLP解析工具包。给定词典中的一个单词,我如何找到它的频率*?或者,给定频率等级,如何确定对应的单词 *在整个语言中,而不仅仅是文本示例 这是我正在使用的工具包的演示: class ParserDemo { public static void main(String[] args) { LexicalizedParser lp = new LexicalizedParser("englishPCFG.ser.gz"); lp.setOptionFlags(n

我正在使用斯坦福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);
  }

}

如果你只计算词频,句子分析是不必要的。您所需要做的就是标记输入,然后使用java
HashMap
计算单词频率。如果要使用Stanford工具,请使用
edu.Stanford.nlp.process
中的任何标记器


这为您提供了任何给定单词的频率,但一般来说,可能无法找到与给定频率等级对应的单词,因为文档中的某些单词可能同样频繁。

这是一个IR(信息检索)问题,而不是NLP。对于这项任务,我们应该看看类似的库。

我想我不理解这个问题。查找词频与解析有什么关系?我想通过查看使用的单词的词频来衡量某人的词汇量。词典界面似乎很有用,但我如何用数据填充它?它可能对您的需要没有用处,您可能被名称误导了。词典是解析器的一个子组件,它“提供条件概率P(单词|标记)”。词典不是用来计算词频的,我不关心文本样本中的词频,而是整个语料库中的词频。(因此,“the”将比“pumpernickel”更为常见)