我正在尝试使用 stanford NLP 实现 NER(命名实体提取)。最终目标是将自由文本转换为查询格式。我创建了一个自定义字典,并且能够提取实体并构建查询
people who are from newyork
我将建立查询
select * from people where region = 'newyork'
但是当声明被否定时问题就来了
非纽约人
如何从这个陈述中提取负面情景,即使在斯坦福 NLP 之外,还有什么方法可能吗?
任何帮助表示赞赏
我正在尝试使用 stanford NLP 实现 NER(命名实体提取)。最终目标是将自由文本转换为查询格式。我创建了一个自定义字典,并且能够提取实体并构建查询
people who are from newyork
我将建立查询
select * from people where region = 'newyork'
但是当声明被否定时问题就来了
非纽约人
如何从这个陈述中提取负面情景,即使在斯坦福 NLP 之外,还有什么方法可能吗?
任何帮助表示赞赏
我知道实现否定关系的两种可能性:
smth
”定义为“LOCATION is not smth
”。我成功地使用了第二种方法,但我能够将我的领域限制为有限的主题和关系集。我发现斯坦福的类型依赖非常有用,它们也可以帮助你(找到这些from smth
关系)。
您想要做的事情被称为“数据库的自然语言接口”,而 Standford NLP NER(基于 CRF 序列模型)可能不适合此任务。当命名实体的含义取决于句子语义上下文时,基于 CRF 的 NER 效果很好:人名、公司名称、国家等。带有标记名称的注释文本用于训练识别器,这种方法实际上不适用于数据库中的命名实体.
在这种情况下,基于规则的识别器要好得多:
你可以看看我专门为自然语言查询识别编写的库:NLQuery。