0
from __future__ import print_function
import os, codecs, nltk.stem
english_stemmer = nltk.stem.SnowballStemmer('english')
for root, dirs, files in os.walk("/Users/Documents/corpus/source-document/test1"):
for file in files:
if file.endswith(".txt"):
posts = codecs.open(os.path.join(root,file),"r", "utf-8-sig")
from sklearn.feature_extraction.text import CountVectorizer
class StemmedCountVectorizer(CountVectorizer):
def build_analyzer(self):
analyzer = super(StemmedCountVectorizer, self.build_analyzer())
return lambda doc: (english_stemmer.stem(w) for w in analyzer(doc))
vectorizer = StemmedCountVectorizer(min_df = 1, stop_words = 'english')
X_train = vectorizer.fit_transform(posts)
num_samples, num_features = X_train.shape
print("#samples: %d, #features: %d" % (num_samples, num_features)) #samples: 5, #features: 25
print(vectorizer.get_feature_names())
当我包含在它抛出以下错误的目录中的所有文本文件,运行上面的代码: RecursionError:最大递归深度超出。递归错误:最大递归深度超过
我试图用sys.setrecursionlimit来解决问题,但都是徒劳的。当我提供像20000这样的大值时,发生内核崩溃错误。
尝试用'超(StemmedCountVectorizer,个体经营).build_analyzer()' –
由于更换'超(StemmedCountVectorizer,self.build_analyzer())'..这对我的作品 –
什么是开点像那样的文件?如果有不止一个,你最终打开他们所有的人,只有最后一个打开工作。将该函数作为打开文件的返回函数或添加一些中断,或者如果您想要处理多个文件,将它们添加到列表中或直接打开该文件(如果知道它在哪里) – Copperfield