我刚刚开始学习
python.我想在NLTK中编写一个程序,将文本分成unigrams,bigrams.
例如,如果输入文本是:
“由于错误,我感到悲伤和失望”
函数应该生成如下文本:
我是 – >感觉 – >感到难过 – >悲伤和 – >和失望 – >因为 – >因为错误而导致错误
我已编写代码将文本输入到程序中.这是我正在尝试的功能:
def gen_bigrams(text):
token = nltk.word_tokenize(review)
bigrams = ngrams(token, 2)
#print Counter(bigrams)
bigram_list = ""
for x in range(0, len(bigrams)):
words = bigrams[x]
bigram_list = bigram_list + words[0]+ " " + words[1]+"-->"
return bigram_list
我得到的错误是……
for x in range(0, len(bigrams)):
TypeError: object of type 'generator' has no len()
由于ngram函数返回一个生成器,我尝试使用len(list(bigrams))但它返回0值,所以我得到了相同的错误.我已经提到了有关stackexchange的其他问题,但我仍然没有解决如何解决这个问题.我陷入了这个错误.任何解决方法,建议?