python – 从文本中提取关系
作者:互联网
我想以(SUBJECT,OBJECT,ACTION)关系的形式从非结构化文本中提取关系,
例如,
“那个男孩坐在桌子上吃鸡肉”
会给我的,
(男孩,鸡,吃的)
(男孩,表,LOCATION)
等等..
虽然python程序NLTK可以处理如上所述的这么简单的句子.
我想知道你是否有人使用工具或库优选开源来从更广泛的领域中提取关系,例如大量的文本文档或网络.
解决方法:
如果您的句子没有比您所示的示例复杂得多(例如,关于回指),Stanford parser将会给出良好的结果,基于probabilistic context-free grammar,,您可以轻松地将其转换为您想要的格式.有一个demo available online.对于你的例子,它会给出类似的东西
nsubj(sitting, boy)
prep_on(sitting, table)
etc.
如果你的句子变得更复杂,你可能有兴趣尝试基于概率combinatory categorial grammars.从C& C parses构建discourse representation structures的Boxer,这些结构可能更难以适应你想要的格式,但会让你更灵活.还有一个demo available online.对于你的例子,它看起来像
sit(x)
boy(y)
table(z)
agent(x,y)
on(x,z)
etc.
Stanford解析器是用Java编写的,可以在GPL下使用. C& C用SWI Prolog中的C和Boxer编写.这两个版本不是在真正免费的许可下发布的,但您可以获取源代码,修改它,并将其用于任何非商业项目.
在你的例子中,你也不会给你一个关于“boy”和“table”之间关系的特征 – 你需要更强大的语义推理工具,我不确定这样的东西是否存在.
编辑
标签:python,nlp,nltk,data-mining 来源: https://codeday.me/bug/20190529/1176275.html