Python - 使用 NLTK 从基于非结构化的文本 (NLP) 中提取实体(名词短语)的关系
Python - Extract relation of entities (noun phrases) from unstructured-based text (NLP) using NLTK
我从非结构化文本中提取了所有必要的实体,并使用 stanford POS tagger 将其存储在字典中。现在我想提取它们之间的关系,以三元组 (Entity1,Entity2,relation) 的形式构建我自己的 Ontology。我尝试了 stanford dependencies 解析器,但我不知道如何提取这些三元组。
例如:
前扩散器包括布置在空气管道边界壁之间的可枢转襟翼。
我想要关系(前扩散器,可旋转襟翼,包括); (可枢转的襟翼,空气管道的边界壁,排列);
又如:货体包括集装箱,集装箱有底板、顶壁、前壁、侧壁和后门。
我期望的关系是(货体、集装箱、包含); (容器、地板、有); (容器,顶壁,有); (容器,前壁,有); (容器,侧壁,有); (集装箱,后门,有)。
我可以使用 stanford 依赖项解析器做什么来实现我的目标?这意味着如何导航依赖项解析树并获取结果?
您使用依赖项解析器的方法是正确的。您只需要更深入地挖掘以提取您正在寻找的结构。据我所知,依赖解析器具有您要查找的所有信息:
(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)
只需研究不同的句子,您就可以提取您希望获得的任何格式的信息。
我从非结构化文本中提取了所有必要的实体,并使用 stanford POS tagger 将其存储在字典中。现在我想提取它们之间的关系,以三元组 (Entity1,Entity2,relation) 的形式构建我自己的 Ontology。我尝试了 stanford dependencies 解析器,但我不知道如何提取这些三元组。
例如: 前扩散器包括布置在空气管道边界壁之间的可枢转襟翼。
我想要关系(前扩散器,可旋转襟翼,包括); (可枢转的襟翼,空气管道的边界壁,排列);
又如:货体包括集装箱,集装箱有底板、顶壁、前壁、侧壁和后门。
我期望的关系是(货体、集装箱、包含); (容器、地板、有); (容器,顶壁,有); (容器,前壁,有); (容器,侧壁,有); (集装箱,后门,有)。
我可以使用 stanford 依赖项解析器做什么来实现我的目标?这意味着如何导航依赖项解析树并获取结果?
您使用依赖项解析器的方法是正确的。您只需要更深入地挖掘以提取您正在寻找的结构。据我所知,依赖解析器具有您要查找的所有信息:
(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)
只需研究不同的句子,您就可以提取您希望获得的任何格式的信息。