我想以(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”之间关系的特征 – 你需要更强大的语义推理工具,我不确定这样的东西是否存在.
编辑
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。