词干过程中内核崩溃

问题描述 投票:0回答:1

我正在使用这个功能来进行句子词干分析

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:比较中超出了最大递归深度” 干命令有问题吗?

python machine-learning nlp
1个回答
0
投票

如果没有代表,我还无法发表评论(或做任何事情),所以我会回答...

是的内存...但它可能会耗尽内存,因为您在分配时创建了一场竞走

clean_tokens
因为您正在重复重新分配它,使用嵌套的for循环,并且在某些情况下从for循环内调用方法。

cleaned_tokens = [token for token in tokens if token.isalnum()]

尝试使用临时本地变量名称或等待循环和方法解析

© www.soinside.com 2019 - 2024. All rights reserved.