首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CountVectorizer读写词汇

CountVectorizer读写词汇
EN

Stack Overflow用户
提问于 2016-05-27 13:08:35
回答 1查看 1.1K关注 0票数 0

我目前正在做一个相当琐碎的情感分类程序。在训练阶段,一切都很顺利。但是,我在使用CountVectorizer测试包含未见单词的新文本字符串时遇到了困难。

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

目前,我的两种方法如下:

代码语言:javascript
复制
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

代码语言:javascript
复制
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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-27 13:39:23

您需要使用一些序列化程序保存矢量器的副本,例如泡菜,并在测试阶段加载它。还可以使用,vocabulary_属性(参见这里 )获取更多详细信息。

此外,在培训过程中,您应该调用vect.fit_transform,而不仅仅是转换

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37484369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档