Python 使用NLTK的递归错误

Python 使用NLTK的递归错误,python,for-loop,recursion,Python,For Loop,Recursion,我运行这段代码是为了在模型中输入文本之前处理文本 并得到RecursionError:比较中超出了最大递归深度 train_text是一个包含文本的python系列 stem是nltk库中的PorterStemmer对象 训练语料库=[] 对于范围内的i(0,len(序列号文本)): data=re.sub(“[^a-zA-Z]”,“”,序列号文本[i]).lower().split() 数据=[ps.stem(单词)表示数据中的单词,如果不是集合中的单词(stopwords.words(“英语

我运行这段代码是为了在模型中输入文本之前处理文本

并得到RecursionError:比较中超出了最大递归深度

train_text是一个包含文本的python系列 stem是nltk库中的PorterStemmer对象

训练语料库=[]
对于范围内的i(0,len(序列号文本)):
data=re.sub(“[^a-zA-Z]”,“”,序列号文本[i]).lower().split()
数据=[ps.stem(单词)表示数据中的单词,如果不是集合中的单词(stopwords.words(“英语”))]
数据=“”。连接(数据)
训练语料库追加(数据)

RecursionError回溯(最近一次调用)
在()
57对于范围内的i(0,len(序列号文本)):
58 data=re.sub(“[^a-zA-Z]”,“”,序列号[i])。lower()。split()
--->59 data=[ps.stem(word)表示数据中的单词,如果不是集合中的单词(stopwords.words(“英语”))]
60数据=“”。连接(数据)
61训练语料库附加(数据)
英寸(.0)
57对于范围内的i(0,len(序列号文本)):
58 data=re.sub(“[^a-zA-Z]”,“”,序列号[i])。lower()。split()
--->59 data=[ps.stem(word)表示数据中的单词,如果不是集合中的单词(stopwords.words(“英语”))]
60数据=“”。连接(数据)
61训练语料库附加(数据)
~\Anaconda3\lib\site packages\nltk\stem\porter.py in-stem(self,word)
665阀杆=自身。\步骤1A(阀杆)
666阀杆=自身。\步骤1b(阀杆)
-->667阀杆=自身。\步骤1c(阀杆)
668阀杆=自身。\步骤2(阀杆)
669阀杆=自身。\步骤3(阀杆)
....
我能做些什么来解决这个问题


谢谢。

看来可以通过以下方式赢得:
setrecursionlimit()


但是记住,递归不是免费的-它消耗函数的
内存\u消耗*循环的数量\u递归的数量\u
-所以当你有大量的递归运行时,你可能会耗尽内存。这就是为什么这个限制是用Python硬编码的,我认为覆盖它是个坏主意。

不清楚代码应该做什么,它所做的只是抛出一个NameError,因为存在未定义的变量。请贴一个。你在
火车文本中有什么具体内容?这表明很长的单词将导致递归错误。您是否尝试过一个简短、简单的培训示例?我有一些这样的文本注释(这是一个取自数据帧的序列号)0解释\n为什么在我的用户下进行编辑。。。一点!他和这个背景颜色很相配我。。。嘿,伙计,我真的不是想编辑战争。它…在
train\u text
中字符串的最大长度是多少?(您可以使用
print(max(len(s)表示序列文本中的s))
检查此项。我的序列中字符串的最大长度为5000
RecursionError                            Traceback (most recent call last)
<ipython-input-25-4a8646f33f6f> in <module>()

     57 for i in range(0, len(train_text)):
     58     data = re.sub("[^a-zA-Z]", ' ', train_text[i]).lower().split()
---> 59     data = [ps.stem(word) for word in data if not word in set(stopwords.words("english"))]
     60     data = ' '.join(data)
     61     train_corpus.append(data)

<ipython-input-25-4a8646f33f6f> in <listcomp>(.0)
     57 for i in range(0, len(train_text)):
     58     data = re.sub("[^a-zA-Z]", ' ', train_text[i]).lower().split()
---> 59     data = [ps.stem(word) for word in data if not word in set(stopwords.words("english"))]
     60     data = ' '.join(data)
     61     train_corpus.append(data)

~\Anaconda3\lib\site-packages\nltk\stem\porter.py in stem(self, word)
    665         stem = self._step1a(stem)
    666         stem = self._step1b(stem)
--> 667         stem = self._step1c(stem)
    668         stem = self._step2(stem)
    669         stem = self._step3(stem)
....