java - 从词性标签数组中查找 "subject"

标签 java nlp opennlp

我知道这个问题更像是一个语法问题,但是如果你有一组 Penn Treebank 标记,你如何确定句子的“主题”,例如:

[WP][VBZ][DT][NN]

是否有任何 Java 库可以接收此类标记并确定哪个是主题?或者是哪些?

最佳答案

标记句子的句法单元(包括主语)的标准方法是使用成分解析器。组成树用句法标签标记输入的子串。参见 http://en.wikipedia.org/wiki/Parse_tree举个例子。

如果这样的结构看起来可以满足您的需求,我建议您使用现成的解析器并从输出中提取相关短语。

我所知道的大多数解析器在解析期间都包含词性 (POS) 标记,但如果您对自己拥有的词性标签有信心,则可以限制解析器使用您的词性标签。

请注意,constitent 解析在计算上可能非常昂贵。据我所知,所有最先进的成分解析器都以每秒 4-80 个句子的速度运行,但如果您愿意牺牲一些准确性,您可能可以获得更高的速度。

一些建议(更多详细信息,请访问 Simple Natural Language Processing Startup for Java)。

Berkeley 解析器(http://code.google.com/p/berkeleyparser/)。最先进的准确性和合理的速度(每秒 3-5 个句子)。

BUBS 解析器 ( http://code.google.com/p/bubs-parser/ ) 也可以使用高精度 Berkeley 语法运行,放弃了一点准确性(对于那些关心的人,F1 分数大约为 1.5 分)但将效率提高到大约 50-80 个句子/第二。全面披露 - 我是从事此解析器工作的主要研究人员之一。

警告:这两个解析器都是研究代码。但我们很高兴有人在现实世界中使用 BUBS。如果您试一试,请与我联系,提出问题、疑问、意见等。

关于java - 从词性标签数组中查找 "subject",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10280239/

相关文章:

JavaScript 和 Java WebSocket SSL 连接错误

java - BufferedImage.setRGB 像素颜色错误

java - RandomAccessFile读取错误的整数

nlp - BERT 微调的优化器和调度器

nlp - 目前最先进的短语提取工具是什么?

java - 删除集成测试时创建 bean 的异常,该异常不会出现在标准应用程序启动中

nlp - 是否可以训练斯坦福 NER 系统识别更多命名实体类型?

ruby - 执行 Open-NLP Ruby Gem 时出错

r - 从文本中提取名词+名词或(形容词|名词)+名词

java - 从 POS 标签中提取名词词和原句