【发布时间】:2017-10-22 02:24:10
【问题描述】:
NLP 解析器有没有办法识别列表?
例如,“a tiger, a lion and a gorilla” 应该被识别为一个列表
(我不需要将其识别为动物列表;只需一个列表就足够了)。
我的最终目标是将一个常见的动词/单词链接到列表中的所有项目。 例如,考虑句子“他找到了一支笔、一本书和一个手电筒”。在这里,“found”动词应该与所有3个项目联系起来。
另一个例子,“他的癌症、贫血和糖尿病检测呈阴性”。在这里,“阴性”这个词应该与三种疾病联系起来。
这可以通过任何开源 NLP 包(如 OpenNLP 或 Stanford CoreNLP)实现吗?还有其他解决方案吗?
编辑:
就像其中一个答案中提到的那样,我最初的想法是手动解析列表并通过查看逗号的位置等来查找项目。
但后来我发现了斯坦福 NLP 的 OpenIE 模型。这似乎做得很好。
例如,"He has a pen and a book" 给出了 (He;has;a pen) 和 (He;has;一本书)。
该模型的问题在于它不适用于不完整的句子,例如“有一支笔和一本书”。
(据我了解,这是因为 OpenIE 只能提取三元组)
当涉及否定时,它也会失败。例如,“他没有笔”。
这些问题有解决方案吗?目前信息提取的最佳解决方案有哪些?
【问题讨论】:
-
既然您提到了解析和斯坦福 NLP:您是否检查过 Stanford's online version of the parser 如何处理“列表”?它们被组合为一个名词短语,这个名词短语附加到动词上。 (不过,从依赖项中获取这些信息有点复杂。)
标签: algorithm text nlp stanford-nlp opennlp