小编Has*_*eem的帖子

为什么我收到 RuntimeError:生成器引发 StopIteration?以及如何解决?

我正在对存储在列表 docToken 中的标记进行二元组。

print(docToken[520])
Run Code Online (Sandbox Code Playgroud)

输出:['瞌睡', '帐户', '只是', '男人', '累了', '推特', '案件', '罗姆尼', '候选人', '看起来']

list(nltk.bigrams(docToken[520]))
Run Code Online (Sandbox Code Playgroud)

输出:[('瞌睡', '帐户'), ('帐户', '刚刚'), ('刚刚', '男人'), ('男人', '累了'), ('累了', 'twitter '), ('推特', '案件'), ('案件', '罗姆尼'), ('罗姆尼', '候选人'), ('候选人', '看起来')]

当我nltk.bigrams(docToken[i])在循环中使用时,我在范围 >=1000 上收到以下错误:

bigram=[]
for i in range(5000):
    ls=list(nltk.bigrams(docToken[i]))
    for j in ls:
        bigram.append(list(j))
Run Code Online (Sandbox Code Playgroud)

当第一个循环中的范围(500)时它工作得很好,但是当范围为1000或更多时,它会给出以下错误:

StopIteration                             Traceback (most recent call last) 
~\Anaconda3\lib\site-packages\nltk\util.py in ngrams(sequence, n, pad_left, 
  pad_right, left_pad_symbol, right_pad_symbol)
        467     while n > 1:
    --> 468         history.append(next(sequence))
        469         n -= 1

StopIteration: 

The above …
Run Code Online (Sandbox Code Playgroud)

python nltk

5
推荐指数
1
解决办法
5512
查看次数

标签 统计

nltk ×1

python ×1