我正在尝试使用stanford NLP实现NER(命名实体提取)。 最终目标是将自由文本转换为查询格式。 我创建了一个自定义词典,能够提取实体并构建查询
people who are from newyork
我将构建查询
select * from people where region = 'newyork'
但是当声明被否定时会出现问题
不是来自纽约的人
如何从这个陈述中提取负面情景,即使在斯坦福NLP之外也有任何可能的方法
感谢任何帮助
答案 0 :(得分:1)
我知道实现否定关系的两种可能性:
smth
" as" LOCATION不是smth
"。我成功地使用了第二种方法,但我能够将我的域限制为有限的主题和关系。我发现Stanford's typed dependencies非常有用,他们也可以帮助你(找到那些from smth
关系)。
答案 1 :(得分:0)
你想做什么被称为'数据库的自然语言接口'和Standford NLP NER(基于CRF序列模型)可能是这项任务的不适当的解决方案。 当命名实体意义取决于句子语义上下文时,基于CRF的NER是好的:人名,公司名称,国家等。带有标记名称的带注释文本用于训练识别器,并且这种方法实际上不可用于数据库中的命名实体
在这种情况下,基于规则的识别器要好得多:
您可以浏览我专为自然语言查询识别而编写的库:NLQuery。