Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用NLTK模块将列表作为输入的Bigram_Python_Nltk - Fatal编程技术网

Python 使用NLTK模块将列表作为输入的Bigram

Python 使用NLTK模块将列表作为输入的Bigram,python,nltk,Python,Nltk,我有下面的列表,我想获得同等的,但重新排列在bigrams中: filtered_words = ['friends', 'friend, 'know', 'hate', 'love', 'you?', 'like', 'name?'] 然后,应用bigrams函数时,按以下方式: list(bigrams(filtered_words)) 我得到:'list'对象不可调用 我还尝试了listbigrams[过滤的单词],得到了相同的结果。之所以会出现这种情况,是因为您使用了保留名称bigr

我有下面的列表,我想获得同等的,但重新排列在bigrams中:

filtered_words = ['friends', 'friend, 'know', 'hate', 'love', 'you?', 'like', 'name?']
然后,应用bigrams函数时,按以下方式:

list(bigrams(filtered_words))
我得到:'list'对象不可调用


我还尝试了listbigrams[过滤的单词],得到了相同的结果。

之所以会出现这种情况,是因为您使用了保留名称bigrams作为列表。例如,请参见下面的代码

In [9]: bigrams = [bigram for bigram in bigrams(filtered_words)]

In [10]: bigrams(filtered_words)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-10-32c8287373b9> in <module>()
----> 1 bigrams(filtered_words)

TypeError: 'list' object is not callable

首先,列表中的第二项末尾没有“结束”。检查您的情况是否是这样,或者以上只是一个示例。“list”对象不可调用通常意味着,在代码中的某个地方需要一个函数,但通过[]传递列表是可复制的,例如,将列表视为函数。从NLTK的API文档判断,您的代码应该可以工作。确保错误确实来自您的代码片段。
In [11]: import nltk

In [12]: bigrams_list = [bigram for bigram in nltk.bigrams(filtered_words)]

In [13]: bigrams_list
Out[13]: 
[('friends', 'friend'),
 ('friend', 'know'),
 ('know', 'hate'),
 ('hate', 'love'),
 ('love', 'you?'),
 ('you?', 'like'),
 ('like', 'name?')]