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

在python中,如何在标记化字符串中找到短语?,python,nltk,Python,Nltk,假设我标记一个字符串并将其转换为一个列表: >>> s = "This is a test" >>> l = nltk.word_tokenize(s) >>> l ['This', 'is', 'a', 'test'] 然后,如何在列表中搜索类似is a的短语,即直接后跟a的is 如果要检查两个项目是否在列表中且是否按顺序排列: l = ['This', 'is', 'a', 'test'] any(['is', 'a'] == l[

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

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

然后,如何在列表中搜索类似is a的短语,即直接后跟a的is

如果要检查两个项目是否在列表中且是否按顺序排列:

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

如果要检查两个项目是否在列表中且顺序正确:

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

您可以使用regex首先提取所需的pharases,如is a,然后计算结果列表中的元素数。这样,如果字符串是desire属性,您就不必对其进行标记

这适用于您:

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个

您可以使用regex首先提取所需的pharases,如is a,然后计算结果列表中的元素数。这样,如果这是desire属性,您就不必对字符串进行标记

这适用于您:

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个

你能详细说明你的高层次目标是什么,你想在句子中找到什么模式吗?谢谢。你们在尝试实现木瓦吗?实际上我有一个标记化和POS标记的列表,我想寻找类似NN2的NN1结构,并将其转换为NN2-NN1。我可以用POS标记OK,但在列表中搜索序列很棘手,看起来似乎有些过分,但你可以使用n-grams:为什么不把它转换成一个字符串并进行检查呢?请你详细说明一下你的高层次目标是什么,你想在句子中找到什么样的模式?谢谢。你们在尝试实现木瓦吗?实际上我有一个标记化和POS标记的列表,我想寻找类似NN2的NN1结构,并将其转换为NN2-NN1。我可以用POS标记OK,但在列表中搜索序列很棘手,看起来似乎有些过分,但你可以使用n-grams:为什么不把它转换成一个字符串并进行检查呢