查询分析使用自然语言处理来确定单词之间的关系

时间:2017-01-14 15:27:18

标签: python nltk stanford-nlp

示例句子

a)谁是IBM的首席执行官?

b)IBM办公室在哪里?

使用标记化,pos-tagging和chunking将一系列操作应用于上述句子以提取关系。

是IBM的首席执行官 - (提取的元组) - > [谁,IBM的首席执行官]

IBM办公室 - (提取的元组) - > [在哪里,IBM Office位于]

从提取的依赖项中,我如何确定问题的内容?句子中的 WP WHP 单词如何表示从基于知识的数据集中提取数据需要进行何种查询。

喜欢a)指向名称,地点或任何其他命名实体。

和b)其中指向名称,地点或任何其他命名实体。

使用自然语言处理技术或文本挖掘的任何建议都受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

这取决于您期望的输入句子的可变性。对于您提供的示例,您可以使用非常简单的模式匹配。只需设置一些模式,如

WHO IS ...? -> [who, ...]  
WHERE IS ...? -> [where, ...]  
WHERE CAN I FIND ...? -> [where, ...]

然后使用字符串匹配在输入数据中找到这些模式。如有必要,您甚至可以使用正则表达式:

s/who is \(.*\)/[who, \1]/

(使用sed风格的搜索并在此处替换)

这当然只会匹配那些特定的示例,但如果您的大多数数据看起来像这样,您可能不需要全面的NLP方法。您总是可以添加更多这样的模式,但在某些时候它可能会变得无法管理。但是,这可能会让您在特定问题上走得更远。

你当然可以做一个完整的句法分析,但它可能是矫枉过正的&太脆了。正确的方法完全取决于您的用例。