在python中,如何在标记化字符串中找到短语?

时间:2015-12-28 01:50:59

标签: python nltk

假设我将字符串标记为一个字符串并将其转换为列表:

>>> s = "This is a test" 
>>> l = nltk.word_tokenize(s) 
>>> l
['This', 'is', 'a', 'test']

我如何在列表中搜索“is a”这样的短语的出现,即'is'是否直接跟'a'?

2 个答案:

答案 0 :(得分:4)

如果您想检查列表中的两个项目是否按顺序排列:

l = ['This', 'is', 'a', 'test']
any(['is', 'a'] == l[i:i+2] for i in xrange(len(l) - 1))

答案 1 :(得分:0)

你可以使用正则表达式首先提取所需的删节词,例如is a,然后计算结果列表中的元素数量。这样你也不必对字符串进行标记,如果是一个渴望的财产。

这对你有用:

import re
dummyList = re.findall(r'\bis a\b', '  This is a test. A regular expression is a necessity to catch all is a(s)')
print len(dummyList)

这将打印出3