CountVectorizer读写词汇



我目前正在开发一个相当琐碎的情绪分类程序。训练阶段一切顺利。然而,我在使用CountVectorizer测试包含看不见的单词的新文本字符串时遇到了问题。

出于这个原因,我试图在测试阶段编写一个用于矢量化的查找词汇表。但是,我不知道如何创建和检索作为参数传递的词汇表对象。

我的两种方法目前显示如下:

def trainingVectorTransformation (messages):
#--> ReviewText to vectors    
vect = CountVectorizer(analyzer=split_into_lemmas).fit(messages['reviewText'])
messages_bow = vect.transform(messages['reviewText'])
feature_list = vect.get_feature_names()
#NOT SURE HOW TO CREATE VOCABULARY
with open("vocab.txt", "w") as text_file:
text_file.write(str(feature_list))   
tfidf_transformer = TfidfTransformer().fit(messages_bow)

messages_tfidf = tfidf_transformer.transform(messages_bow)
return messages_tfidf

def testingVectorTransformation (messages):
#--> ReviewText to vectors
#NOT SURE HOW TO READ THE CREATED VOCABULARY AND USE IT APPROPRIATELY   
txt = open("vocab.txt")
vocabulary = txt.read()

vect = CountVectorizer(analyzer=split_into_lemmas, vocabulary = vocabulary).fit(messages['reviewText'])
messages_bow = vect.transform(messages['reviewText'])
tfidf_transformer = TfidfTransformer().fit(messages_bow)
messages_tfidf = tfidf_transformer.transform(messages_bow)
return messages_tfidf

如果有人对如何正确创建和使用词汇表有任何建议,我将不胜感激

您需要使用一些序列化程序保存矢量器的副本,例如pickle并在测试阶段加载它。您也可以使用vocab,vocabulary_attribute查看此处了解更多详细信息

同样要查看您的代码,在训练中,您应该调用vect.fit_transform,而不仅仅是转换

相关内容

  • 没有找到相关文章

最新更新