我知道这个问题更像是一个语法问题,但是如果你有一组 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/