【发布时间】:2018-10-13 16:42:31
【问题描述】:
我运行此代码的目的是在将文本输入模型之前对其进行处理
并得到 RecursionError: 比较中超出了最大递归深度
train_text 是一个带有文本的python系列 stem 是 nltk 库中的 PorterStemmer 对象
train_corpus = []
for i in range(0, len(train_text)):
data = re.sub("[^a-zA-Z]", ' ', train_text[i]).lower().split()
data = [ps.stem(word) for word in data if not word in set(stopwords.words("english"))]
data = ' '.join(data)
train_corpus.append(data)
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)
....
我能做些什么来解决这个问题?
谢谢。
【问题讨论】:
-
不清楚你的代码应该做什么,它所做的只是抛出一个 NameError 因为有未定义的变量。请发帖minimal reproducible example。
-
train_text中到底有什么?这个github.com/nltk/nltk/issues/1971 表明很长的单词会导致递归错误。您是否尝试过一个简短的训练示例? -
我有一些这样的文字评论(这是从数据帧中提取的系列) 0 解释\n为什么在我的用户名下进行编辑... 1 哇!他匹配这个背景颜色我是... 2 嘿,伙计,我真的不想编辑战争。它...
-
train_text中字符串的最大长度是多少? (您可以使用print(max(len(s) for s in train_text))进行检查) -
我的系列中字符串的最大长度是 5000