ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – 从文本中提取关系

2019-05-29 06:43:21  阅读:421  来源: 互联网

标签:python nlp nltk data-mining


我想以(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 structuresBoxer,这些结构可能更难以适应你想要的格式,但会让你更灵活.还有一个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”之间关系的特征 – 你需要更强大的语义推理工具,我不确定这样的东西是否存在.

编辑

It has now become once more possible to obtain the source code for C&C and Boxer, along with a collection of models.

标签:python,nlp,nltk,data-mining
来源: https://codeday.me/bug/20190529/1176275.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有