【问题标题】:Training data converted to feature vectors but test data is string or text训练数据转换为特征向量,但测试数据是字符串或文本
【发布时间】:2020-02-11 07:21:58
【问题描述】:

clean_train_reviews 是 list 的 strings。

每个字符串都是一条评论,下面包含一个示例:

经典的战争世界蒂莫西·海因斯娱乐电影显然是 竭尽全力忠实再现 h g wells 经典书籍 mr 海因斯成功观看电影欣赏事实标准可预测 好莱坞票价每年都会出现,例如斯皮尔伯格版汤姆克鲁斯 半点相似的书显然每个人看起来都不一样 电影设想业余评论家看起来批评别人评价的一切 电影重要的基地,如娱乐的人从不同意评论家 享受努力,海因斯先生把忠实的 h g 威尔斯经典小说找到 娱乐性容易被忽视 批评者认为缺点

使用下面初始化的vectorizer,将上面的字符串转换成如下形式的特征向量:

(sentence_index, feature_index) 计数

一个例子是:

(0, 1905) 3

这意味着“一个 id 为 0 且 id 或索引为 1905 的特征的句子在此字符串中出现了 3 次。

vectorizer = CountVectorizer(analyzer = "word",   \
                             tokenizer = None,    \
                             preprocessor = None, \
                             stop_words = None,   \
                             max_features = 5000)

train["sentiment"] 是一串 1 和 0(1=正面情绪,0=负面情绪)

train_data_features = vectorizer.fit_transform(clean_train_reviews)
forest = RandomForestClassifier(n_estimators = 100)
forest = forest.fit( train_data_features, train["sentiment"] )

我的问题是:

随机森林在特征向量(所有数值)和情绪(同样是数值)上进行训练。但是测试数据集是纯文本英文。当训练好的模型在测试数据上运行时,模型如何知道如何处理测试数据中的纯文本,因为模型是 只对特征向量进行训练,这些向量只是数字?或者forest 对象是否保留了有关训练数据中纯文本的信息?

【问题讨论】:

    标签: python nlp random-forest kaggle


    【解决方案1】:

    还应使用相同的矢量化器(用于创建训练矢量)将测试数据转换为特征矢量。 只有这样它才能作为模型的输入。

    【讨论】:

    • 是的。但是那么词信息不是丢失了吗?
    • 信息永远不会丢失。它只是以不同的格式表示。向量和单词之间总是有一个映射关系,通过它可以追溯单词信息
    猜你喜欢
    • 2019-03-18
    • 2020-05-10
    • 2017-04-05
    • 2021-03-30
    • 2017-11-20
    • 2020-02-22
    • 2020-11-13
    • 2019-05-25
    • 2017-02-21
    相关资源
    最近更新 更多