【问题标题】:Padding a CountVectorizer() in skLearn在 skLearn 中填充 CountVectorizer()
【发布时间】:2021-07-17 00:23:25
【问题描述】:

所以我在 sklearn 中使用 CountVecotrizer() 函数来帮助我为工作创建模型预测。

该项目的目标是获取职位描述并将其归类为特定类别。我的目标是获取每一行并拥有它,以便模型厌倦某些“标记”(单词),以便它可以准确地预测分类。

例如:如果第 1 行在字符串中有 20 个单词,那么我希望所有行都包含 20 个单词,所以我需要在数组末尾添加更多的 0 或缩短数组(如果有的话)很多话。我正在考虑在 python 中定义一个 Max_Length 以使其更容易。

想知道我将如何处理这个问题?

【问题讨论】:

  • 本网站的目的不是为问题提供“神奇”的解决方案,而是帮助人们解决每个问题的一个精确且定义明确的问题。你的话题太笼统了。我建议你阅读一些分类教程,以及关于词嵌入的文档。尝试根据您所学的知识解决您的问题,如果您遇到困难,请来这里就一个确切的问题提出问题。祝你好运。

标签: python scikit-learn countvectorizer


【解决方案1】:

CountVectorizer 已经完成了问题的建议,只是在查看稀疏矩阵输出时不太明显。如果我们将它们转换回密集矩阵,它应该会更明显:

from sklearn.feature_extraction.text import CountVectorizer

X_raw = ["every word in this sentence is unique"]

vectorizer = CountVectorizer()
print(vectorizer.fit_transform(X_raw).todense())

使用 cmets 输出:

# Every word is used once
[[1 1 1 1 1 1 1]]

如果有一个单词出现在一个字符串中,但没有出现在另一个字符串中,它将用0 表示:

X_raw = [
    "every word in this sentence is unique",
    "every word in this sentence is unique too too",
]

print(vectorizer.fit_transform(X_raw).todense())

使用 cmets 输出:

#             ----- The word 'too' was not used in the first sentence,
#            /      but it was used twice in the second sentence.
#           v
[[1 1 1 1 1 0 1 1]
 [1 1 1 1 1 2 1 1]]

【讨论】:

    猜你喜欢
    • 2018-03-20
    • 2018-05-05
    • 2017-03-10
    • 2016-02-07
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    相关资源
    最近更新 更多