gpt4 book ai didi

python - 为 scikit-learn CountVectorizer 提供带有空格的词汇表

转载 作者:行者123 更新时间:2023-11-30 09:00:57 25 4
gpt4 key购买 nike

引用此post 。我想知道我们如何向 CountVectorizer 模型提供带有空间的单词词汇表,例如分布式系统还是机器学习?这是一个例子:

import numpy as np
from itertools import chain

tags = [
"python, tools",
"linux, tools, ubuntu",
"distributed systems, linux, networking, tools",
]

vocabulary = list(map(lambda x: x.split(', '), tags))
vocabulary = list(np.unique(list(chain(*vocabulary))))

我们可以向模型提供这个词汇列表

from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer(vocabulary=vocabulary)
print(vec.fit_transform(tags).toarray())

在这里,我忘记了分布式系统(第一列)的字数。结果如下:

[[0 0 0 1 1 0]
[0 1 0 0 1 1]
[0 1 1 0 1 0]]

我必须更改token_pattern或其他地方吗?

最佳答案

我认为本质上您已经预先定义了要分析的词汇表,并且您希望通过拆分“,”来标记您的标签。

您可以通过以下方式欺骗 CountVectorizer 来做到这一点:

from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer(vocabulary=vocabulary, tokenizer=lambda x: x.split(', '))
print(vec.fit_transform(tags).toarray())

,给出:

[[0 0 0 1 1 0]
[0 1 0 0 1 1]
[1 1 1 0 1 0]]

关于python - 为 scikit-learn CountVectorizer 提供带有空格的词汇表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37873007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com