Python - 使用NLTK

时间:2018-05-17 18:00:28

标签: python nlp stanford-nlp information-extraction

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

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

我希望有这种关系(前扩散器,可旋转襟翼,包括); (可旋转的襟翼,空气管道的边界墙,安排);

另一个例子:货舱包括一个有地板,顶壁,前壁,侧壁和后门的集装箱。

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

我可以用stanford依赖项解析器来实现我的目标吗?这意味着如何导航依赖关系解析树并获得结果?

1 个答案:

答案 0 :(得分: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)

只需研究不同的句子,您就可以以任何格式提取信息。