Java斯坦福NLP : Find word frequency?

标签 java nlp stanford-nlp

我正在使用 Stanford NLP Parsing 工具包。给定词典中的一个词,我如何找到它的频率*?或者,给定一个频率排名,我如何确定相应的词?

*在整个语言中,而不仅仅是文本示例。

这是我正在使用的工具包的演示:

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 中的任何标记器。

这会为您提供任何给定单词的频率,但通常可能无法找到与给定频率等级相对应的单词,因为某些单词在文档中的出现频率可能相同。

关于Java斯坦福NLP : Find word frequency?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1816800/

相关文章:

java - 调用jsp中的非静态变量和静态函数

java - 有一个不需要整个文本作为训练数据的实体识别器分类器算法吗?

java - 从 stanford corenlp 的大数据集中查找特征

java - Spring Data JPA 检查 SET 是否包含对象

java - Spring Framework名称背景

java - 我怎样才能将这段代码转换为Java 8

machine-learning - 使用 stanford NLP 查找描述上下文的句子

nlp - 文本摘要: how to choose the right n-gram size

nlp - 词汇化解析器 vs 依赖解析器

java - 斯坦福 NER 3.4.1 问题