使用自然语言处理技术从非结构化文本中创建简单的概念图

3
我需要解析非结构化文本并将相关概念转换为格式,以便所有三元组可以合并形成图形。 例如,如果我有2个句子,如A改进B和B改进C,我应该能够创建一个类似的图形: A ---> B(改进) B-----> C(改进)。 之后,如果问一个像“A的用途是什么”的问题,系统应该提供像“A改进B和C”这样的答案。
据我所知,目前没有直接的库可以实现这个功能。 我尝试使用Stanford OpenNLP库进行词性标注,然后进行三元组形成和组合。然而,它导致了很多情况。
应该怎么做才是最好的方法?基于本体论的解析是否有帮助?
1个回答

2

这是一个有趣的问题,也是我的最爱之一 :)

我曾经做过类似的事情,并采取了混合方法。所谓混合就是一些部分使用自然语言处理技术(NLP),而另一些则使用简单规则。在我特定的案例中,我基于组织实体(通过命名实体识别提取)生成了一个图表,然后使用了一个动词短语分类器(基于规则和正则表达式)。因此,实际上,在每个句子上运行NER,并得到了一些可靠的组织名称。然后在同一句子上运行句子块解析器并解析出动词短语。然后我使用了一个简单的关键字->概念正则表达式来对动词短语进行分类。我没有尝试使用每个句子中的位置来推断任何类型的图方向性,因此我只是将{EntityA,EntityB,VerbPhrases [],VerbCategories []}三元组写入索引中。显然,我必须确保我的组织实体不是嘈杂句子中动词短语的相同标记,并且我假设在句子中的共存足以为两个实体创建边缘。这只是我所做的具体示例,它有缺陷,但在实践中它实际上效果非常好,并使强大的搜索成为可能。我的方法没有考虑相邻句子的关联性(我使用的数据源通常具有冗长的句子),但我考虑过使用基于接近度的评分技术来分配实际关联的概率,以将附近句子中的实体结合起来,很可能还使用段落边界作为另一个启发式验证的帮助。

有许多“尝试”做这件事的方式,所有这些方式都会在某种程度上有所不足,边缘情况也将是丰富而有趣的,这是关于实用主义和您想要实现的内容。实际上,我预测共指消解将是您下一个问题(当句子A中的实体在随后的句子中被称为He或Her等等),然后您下一个问题将是跨文档实体消解(DocA中的Bob可能是DocB中的Bob,也可能不是)。此外,我极度怀疑任何东西都能产生三元组格式,您将使用NER从句子中获得的标记来创建它。

希望对您有所帮助


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接