我正在使用这个功能来进行句子词干分析
from nltk.stem import WordNetLemmatizer, PorterStemmer
from nltk.tokenize import word_tokenize
import string
from nltk.corpus import stopwords
punctuation = set(string.punctuation)
english_stopwords = set(stopwords.words('english'))
porter_stemmer = PorterStemmer()
def clean_text(text):
text = text.lower()
tokens = word_tokenize(text)
cleaned_tokens = []
cleaned_tokens = [token for token in tokens if token not in english_stopwords]
cleaned_tokens = [token for token in tokens if token not in punctuation]
cleaned_tokens = [token for token in tokens if token.isalnum()]
cleaned_tokens = [porter_stemmer.stem(token) for token in cleaned_tokens if len(token) > 0]
return ' '.join(cleaned_tokens)
我只是在我的 csv 上运行它
import pandas as pd
currData = pd.read_csv(f'../Steam dataset/clean_steam_database(english)_133.csv')
currData['review'] = [clean_text(word) for word in currData['review']]
但它说: “在当前单元或前一个单元中执行代码时,内核崩溃了。 请检查单元格中的代码以确定失败的可能原因。 点击这里查看更多信息。 查看 Jupyter 日志以获取更多详细信息。”
和
给出这个错误: “16:23:09.679 [错误] 将会话处理为内核进程死亡 ExitCode: 3221225725,原因: 16:23:09.706 [info] Cell 2 在 -1716369788.31 秒内完成(开始:1716369788310,结束:未定义)”
可能是什么?
我实际上是从以下位置获取这个数据集的: https://www.kaggle.com/datasets/najzeko/steam-reviews-2021?resource=download
我在已分成 1000 个部分的数据集上运行此代码。 每次执行该函数时,我都会打印以查看哪个索引有问题,但是,当我直接在该索引处运行该函数时,它没有问题。
当我在谷歌colab上运行这段代码时,它说 “RecursionError:比较中超出了最大递归深度” 干命令有问题吗?
如果没有代表,我还无法发表评论(或做任何事情),所以我会回答...
是的内存...但它可能会耗尽内存,因为您在分配时创建了一场竞走
clean_tokens
因为您正在重复重新分配它,使用嵌套的for循环,并且在某些情况下从for循环内调用方法。
cleaned_tokens = [token for token in tokens if token.isalnum()]
尝试使用临时本地变量名称或等待循环和方法解析