【发布时间】:2019-09-28 18:54:49
【问题描述】:
我有一个句法分析的句子。例如,“我妈妈想做饭”。解析为 [('My', 1), ('mom', 2), ('wants', -1), ('to', 2), ('cook', 3)]。数字表示单词所依赖的项目的索引:“妈妈”取决于“想要”,“想要”是数组的第二个元素(像往常一样从零开始)。 “Wants”有“-1”,因为那是句子的核心,它不依赖于其他任何东西。 我需要在这里获取“我妈妈”的主题。我该怎么做?
到目前为止,我只尝试编写并非在所有情况下都有效的循环。交易是主题可能包含两个以上的单词,并且该数字未定义。像这样的……
'值'是 [('My', 1), ('mom', 2), ('wants', -1), ('to', 2), ('cook', 3)]
for indx, value in enumerate(values):
m = morph.parse(value[0])
if isinstance(m, list):
m = m[0]
if 'NOUN' in m.tag:
if value[1] == str(index[0]): #it checks if the word (part of the subject) depends on the verb
terms.append([value[0], indx])
if len(terms) > 0:
term = terms[0][0]
t = []
for indx, value in enumerate(values):
if value[1] == str(terms[0][1]): #it checks if the word depend on the found part of the subject
m = morph.parse(value[0])
if isinstance(m, list):
m = m[0]
if 'NOUN' in m.tag:
t.append([value[0], terms[0][0]])
算法应该是这样工作的:遍历整个数组并在找到给定单词的所有依赖项以及这些依赖项的所有依赖项时停止。 (在示例中,“妈妈”的所有依赖项)。请帮忙!
【问题讨论】:
-
你使用的是哪个库?
-
我正在使用 pymorphy2
-
@ЕвгенияРубанова pymorphy2 似乎适用于俄语和乌克兰语,而不是英语,尽管您给出的所有句子都是英语。有没有用于英语词法分析的引擎?
标签: python python-3.x syntax tree xml-parsing