【问题标题】:Python - Extract relation of entities (noun phrases) from unstructured-based text (NLP) using NLTKPython - 使用 NLTK 从基于非结构化文本 (NLP) 中提取实体(名词短语)的关系
【发布时间】:2018-10-28 02:22:57
【问题描述】:

我从非结构化文本中提取了所有必要的实体,并使用 stanford POS 标记器将其存储在字典中。现在我想提取它们之间的关系,以三元组(Entity1,Entity2,relation)的形式构建我自己的本体。我尝试了 stanford 依赖项解析器,但我不知道如何提取这些三元组。

例如: 前扩散器包括布置在风道边界壁之间的可枢转襟翼。

我想建立关系(前扩散器,可旋转的襟翼,包括); (可转动的襟翼、风道的边界壁、布置);

另一个例子:货箱包括一个集装箱,该集装箱具有底板、顶壁、前壁、侧壁和后门。

我的预期关系是(货体、集装箱、组成); (容器,地板,有); (容器,顶壁,有); (容器,前壁,有); (容器、侧壁、有); (集装箱,后门,有)。

我可以使用 stanford 依赖项解析器做什么来实现我的目标?这意味着如何导航依赖项解析树并获取结果?

【问题讨论】:

标签: python nlp stanford-nlp information-extraction


【解决方案1】:

您在使用依赖解析器的正确路径上。你只需要更深入地挖掘来提取你正在寻找的结构。据我所知,依赖解析器拥有您正在寻找的所有信息:

 (ROOT
  (S
    (NP (DT The) (JJ front) (NNS diffusers))
    (VP (VBP comprise)
      (NP
        (NP (JJ pivotable) (NNS flaps))
        (SBAR
          (WHNP (WDT that))
          (S
            (VP (VBP are)
              (VP (VBN arranged)
                (PP (IN between)
                  (NP
                    (NP (NN boundary) (NNS walls))
                    (PP (IN of)
                      (NP (NN air) (NNS ducts)))))))))))
    (. .)))

这是您真正需要的解析器本身:

nsubj(comprise-4, diffusers-3)
root(ROOT-0, comprise-4)
amod(flaps-6, pivotable-5)
dobj(comprise-4, flaps-6)

只要研究不同的句子,你就能以你希望得到的任何格式提取信息。

【讨论】:

  • 我的意思是如何浏览依赖关系树来获取那些关系提取?
  • 我希望有一个更简单/标准的答案,但是,除了编写自己的规则集之外别无他法。如果您在 google 上搜索有关导航依赖解析器输出的帮助链接,那么很少有帮助链接,但最后,您需要编写最适合您的逻辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
  • 2020-08-16
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多