gpt4 book ai didi

python - 使用sklearn特征提取时出现内存错误

转载 作者:太空宇宙 更新时间:2023-11-03 18:04:41 26 4
gpt4 key购买 nike

我一直在使用 python 脚本来标记和计算大量 .txt 文件的 TFIDF,我的脚本如下:

import nltk
import string
import os

from sklearn.feature_extraction.text import TfidfVectorizer
from nltk.stem.porter import PorterStemmer
from nltk.corpus import stopwords
import nltk
import string
from collections import Counter
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.externals import joblib
import re
import scipy.io
import glob

path = 'R'
token_dict = {}
stemmer = PorterStemmer()

def stem_tokens(tokens, stemmer):
stemmed = []
for item in tokens:
stemmed.append(stemmer.stem(item))
return stemmed

def tokenize(text):
tokens = nltk.word_tokenize(text)
stems = stem_tokens(tokens, stemmer)
return stems

for subdir, dirs, files in os.walk(path):
for file in files:
#if re.match("text\d+.txt",file):
#with open(os.path.join(path,file),'r') as f:
#for shakes in f:

remove_spl_char_regex = re.compile('[%s]' % re.escape(string.punctuation)) # regex to remove special characters
remove_num = re.compile('[\d]+')
file_path = subdir + os.path.sep + file
shakes = open(file_path, encoding="utf8")

text = shakes.read()
lowers = text.lower()
a1 = lowers.translate(string.punctuation)
a2 = remove_spl_char_regex.sub(" ",a1) # Remove special characters
a3 = remove_num.sub("", a2) #Remove numbers
token_dict[file] = a3

tfidf = TfidfVectorizer(tokenizer=tokenize, stop_words='english')
tfs = tfidf.fit_transform(token_dict.values())
scipy.io.savemat('arrdata4.mat', mdict={'arr': tfs})

根据文件的大小,30 分钟后我会遇到内存错误。
任何人都可以向我解释如何增加 python 可以访问的内存或任何其他可以解决这个问题的方法? 。

最佳答案

Python 没有超出操作系统规定的内存限制。

  • 确保您没有使用 ulimit 或等效函数限制进程的内存使用量。
  • 运行top并查看进程是否使用了所有可用内存。
  • 那么您要么必须减少程序所需的内存,要么增加它可以访问的 RAM/交换空间。

关于python - 使用sklearn特征提取时出现内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27089998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com