元组元素的元组列表?

时间:2015-01-04 15:08:05

标签: python nlp tuples part-of-speech

我在匹配词性pos模式时遇到了问题。 我们有一个介词短语模式的规则,如NN + IN + NN,VBG + IN + NN或ADJ + IN + NN。

这个想法是从任何给定的句子中提取模式并与上面的定义规则匹配,如果匹配则返回True。

从句子中提取的示例:  sent_pos = [('正在','VBG'),(''','IN'),('变异','NN')] 与之匹配  rules1 = [('','VBG'),('','IN'),('','NN')]  要么  rule2 = [('','NN'),('','IN'),('','NN')]  要么  [('','ADJ'),('','IN'),('','NN')]

结果返回True。

有可能在python代码中吗?

感谢您的回复。

1 个答案:

答案 0 :(得分:1)

我不确定这是否是您正在寻找的内容,因为我不知道在rule1,rule2和rule3中模式的顺序是否始终相同,但请尝试:

def function():

   sent_pos = [('increasing', 'VBG'), ('of', 'IN'), ('mutation', 'NN')]
   rule1 = [('', 'VBG'), ('', 'IN'), ('', 'NN')]
   rule2 = [('', 'NN'), ('', 'IN'), ('', 'NN')]
   rule3 = [('', 'ADJ'), ('', 'IN'), ('', 'NN')]

   rules = [rule1, rule2, rule3]

   for element in rules:
        counter = 0
        for i in range(len(sent_pos)):
            if sent_pos[i][1] == element[i][1]:
                counter += 1
        if counter == len(sent_pos):
            return True
   return False