自定义命名实体提取
custom named entity extraction
我正在尝试使用斯坦福 NLP 实现 NER(命名实体提取)。
最终目标是将自由文本转换为查询格式。
我创建了一个自定义词典并且能够提取实体并构建查询
people who are from newyork
我将构建查询
select * from people where region = 'newyork'
但是当语句被否定时问题就来了
不是纽约人
如何从这个陈述中提取负面情景,即使在斯坦福 NLP 之外,是否有任何可能的方法
感谢任何帮助
我知道实现否定关系的两种可能性:
- 定义自定义 属性 "not a ..." 并将其应用到任何地方。
- 使用知识数据库,从数据中提取LOCATION,将"not from
smth
"定义为"LOCATION is not smth
"。
我成功地使用了第二种方法,但我能够将我的领域限制在有限的主题和关系集中。我发现 Stanford's typed dependencies 非常有用,它们也可能对您有所帮助(找到那些 from smth
关系)。
你想做什么叫做 'natural language interface to database' 和 Standford NLP NER(基于 CRF 序列模型)可能不适合这个任务的解决方案。
当命名实体的含义取决于句子语义上下文时,基于 CRF 的 NER 很好:人名、公司名称、国家等。带有标记名称的注释文本用于训练识别器,这种方法实际上不适用于数据库中的命名实体.
在这种情况下,基于规则的识别器要好得多:
- 您不需要训练它们:让规则引擎使用的词典保持最新就足够了(数据列表 table 名称、它们的列等)
- 您可以轻松添加所需的自定义解析器:日期、数字/条件、逻辑运算符(如 "not"、"or"、"and")
你可以看看我专门为自然语言查询识别编写的库:NLQuery。
我正在尝试使用斯坦福 NLP 实现 NER(命名实体提取)。 最终目标是将自由文本转换为查询格式。 我创建了一个自定义词典并且能够提取实体并构建查询
people who are from newyork
我将构建查询
select * from people where region = 'newyork'
但是当语句被否定时问题就来了
不是纽约人
如何从这个陈述中提取负面情景,即使在斯坦福 NLP 之外,是否有任何可能的方法
感谢任何帮助
我知道实现否定关系的两种可能性:
- 定义自定义 属性 "not a ..." 并将其应用到任何地方。
- 使用知识数据库,从数据中提取LOCATION,将"not from
smth
"定义为"LOCATION is notsmth
"。
我成功地使用了第二种方法,但我能够将我的领域限制在有限的主题和关系集中。我发现 Stanford's typed dependencies 非常有用,它们也可能对您有所帮助(找到那些 from smth
关系)。
你想做什么叫做 'natural language interface to database' 和 Standford NLP NER(基于 CRF 序列模型)可能不适合这个任务的解决方案。 当命名实体的含义取决于句子语义上下文时,基于 CRF 的 NER 很好:人名、公司名称、国家等。带有标记名称的注释文本用于训练识别器,这种方法实际上不适用于数据库中的命名实体.
在这种情况下,基于规则的识别器要好得多:
- 您不需要训练它们:让规则引擎使用的词典保持最新就足够了(数据列表 table 名称、它们的列等)
- 您可以轻松添加所需的自定义解析器:日期、数字/条件、逻辑运算符(如 "not"、"or"、"and")
你可以看看我专门为自然语言查询识别编写的库:NLQuery。