使用NLP技术从非结构化文本创建简单的概念图

使用NLP技术从非结构化文本创建简单的概念图,nlp,ontology,opennlp,Nlp,Ontology,Opennlp,我需要解析非结构化文本并将相关概念转换为格式,这样所有的三元组都可以合并成一个图。 e、 如果我有两个句子,比如A改进了B,B改进了C,我应该能够创建一个像 A--->B(改进) B--->C(改进) 稍后,如果问到一个问题,比如a的用途是什么,系统应该提供一个答案,比如a改进了B和C 据我所知,这方面没有直接的库。 我尝试使用Standford OpenNLP库进行词性标注,然后是三元组的形成和它们的组合。然而,它导致了许多情况 最好的方法是什么?本体基础解析有帮助吗?这是一个有趣的问题。。。

我需要解析非结构化文本并将相关概念转换为格式,这样所有的三元组都可以合并成一个图。 e、 如果我有两个句子,比如A改进了B,B改进了C,我应该能够创建一个像

A--->B(改进) B--->C(改进)

稍后,如果问到一个问题,比如a的用途是什么,系统应该提供一个答案,比如a改进了B和C

据我所知,这方面没有直接的库。 我尝试使用Standford OpenNLP库进行词性标注,然后是三元组的形成和它们的组合。然而,它导致了许多情况


最好的方法是什么?本体基础解析有帮助吗?

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

我曾经做过类似的事情,我采取了混合方法。混合意味着有些是NLP,有些是简单的规则。在我的特定案例中,我基于组织实体(使用NER提取)生成一个图,然后使用动词短语分类器(基于no规则和正则表达式)。所以本质上,我对每个句子都使用了NER,得到了一些可靠的组织名称。然后,我在同一个句子上运行句子切块程序,解析出动词短语。然后我使用一个简单的关键字->概念正则表达式对动词短语进行分类。我没有尝试使用句子中每个词的位置来推断任何类型的图形方向性,所以我只是将{EntityA,EntityB,VerbPhrases[],VerbCategories[]的三元组写入索引。显然,我必须确保我的组织实体与嘈杂的句子中的动词短语不是相同的标记,并且我假设句子中的共存足以证明这两个实体之间的优势。这只是我所做工作的一个具体例子,它有缺陷,但实际上它工作得很好,支持非常强大的搜索。我的方法没有考虑相邻句子的相关性(我使用的数据源通常有冗长的句子),但我确实考虑使用基于邻近性的评分技术来分配相邻句子中连体实体的实际相关性概率,可能还利用段落边界进行另一种启发式验证

有很多方法可以“尝试”做到这一点,所有这些方法都会以某种方式变得很糟糕,边缘案例将是丰富而有趣的,它是关于实用主义和你试图实现的。事实上,我预测共指消解将是你的下一个问题(当句子A中的实体在随后的句子中被称为他或她……等等),然后你的下一个问题将是跨文档实体消解(DocA中的Bob可能是也可能不是DocB中的Bob)。此外,我高度怀疑任何东西会产生三元组格式,您必须使用NER从句子中提供给您的标记来创建它