【问题标题】:extracting relations from text从文本中提取关系
【发布时间】:2013-11-03 16:03:28
【问题描述】:

我想以(SUBJECT,OBJECT,ACTION)关系的形式从非结构化文本中提取关系,

例如,

“男孩正坐在桌子上吃鸡”

会给我,

(男孩,鸡,吃)
(男孩,桌子,位置)

等等。

虽然python程序+NLTK可以处理像上面这样一个简单的句子。

我想知道你们中是否有人使用过最好是开源的工具或库来从更广泛的领域(例如大量文本文档或网络)中提取关系。

【问题讨论】:

    标签: python nlp data-mining nltk


    【解决方案1】:

    如果您的句子没有比您展示的示例复杂得多(例如,关于照应),Stanford parser 将给出良好的结果,基于您将很容易能够做到的probabilistic context-free grammar,转换成你想要的格式。有一个 demo available online. 对于你的例子,它会给出类似的东西

    nsubj(坐着,男孩)

    prep_on(坐、桌)

    等等

    如果您的句子确实变得更复杂,您可能有兴趣尝试 Boxer,,它基于概率 combinatory categorial grammars. 从 C&C 解析构建 discourse representation structures 那些结构可能更难以适应您想要的格式,但是会给你更多的灵活性。同样,demo available online. 对于您的示例,它看起来像

    坐(x)

    男孩(y)

    表格(z)

    代理(x,y)

    在(x,z)

    等等

    Stanford 解析器是用 Java 编写的,在 GPL 下可用。 C&C 用 C++ 编写,Boxer 用 SWI Prolog 编写。这两个不是在真正的免费许可下发布的,但您可以获取源代码、修改它,并将其用于任何非商业项目。

    在您的示例中,两者都不会为您描述“男孩”和“桌子”之间的关系——您将需要更强大的语义推理工具,我不确定是否存在这样的东西。

    编辑

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

    【讨论】:

    • @Wazzzy,“不工作”是什么意思?你不能下载吗?建造它?运行它?
    • 我说的是svn版本它首先给我pl2xpce共享文件错误。我今天用新的 svn 更新了它,我收到这个错误“错误:无法预处理派生 1”
    • 不幸的是,one of the links in this answer 似乎已损坏。
    • @AndersonGreen,据我所知,服务器可能只是关闭了。我没有改变答案,但添加了一个替代下载链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 2010-12-28
    • 2016-01-20
    相关资源
    最近更新 更多