gpt4 book ai didi

python - 如何获取 CountVectorizer feature_names 以便设置它们,而不是按字母顺序排列?

转载 作者:行者123 更新时间:2023-11-30 09:04:27 24 4
gpt4 key购买 nike

我正在尝试使用

对一些数据进行矢量化
sklearn.feature_extraction.text.CountVectorizer.

这是我尝试矢量化的数据:

corpus = [
'We are looking for Java developer',
'Frontend developer with knowledge in SQL and Jscript',
'And this is the third one.',
'Is this the first document?',
]

矢量化器的属性由以下代码定义:

vectorizer = CountVectorizer(stop_words="english",binary=True,lowercase=False,vocabulary={'Jscript','.Net','TypeScript','SQL', 'NodeJS','Angular','Mongo','CSS','Python','PHP','Photoshop','Oracle','Linux','C++',"Java",'TeamCity','Frontend','Backend','Full stack', 'UI Design', 'Web','Integration','Database design','UX'})

运行后:

X = vectorizer.fit_transform(corpus)
print(vectorizer.get_feature_names())
print(X.toarray())

我得到了想要的结果,但词汇表中的关键字是按字母顺序排列的。输出如下所示:

['.Net', 'Angular', 'Backend', 'C++', 'CSS', 'Database design', 
'Frontend', 'Full stack', 'Integration', 'Java', 'Jscript', 'Linux',
'Mongo', 'NodeJS', 'Oracle', 'PHP', 'Photoshop', 'Python', 'SQL',
'TeamCity', 'TypeScript', 'UI Design', 'UX', 'Web']

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

如您所见,词汇表的顺序与我上面设置的顺序不同。有办法改变这个吗?谢谢

最佳答案

您将词汇表作为集合传递,这意味着顺序不再重要。示例:

{'a','b'} == {'b','a'}
>>> True

因此,scikit-learn 使用字母顺序对其进行重新排序。为了防止这种情况,您需要传递词汇表的列表:

vectorizer = CountVectorizer(stop_words="english",binary=True,lowercase=False,vocabulary=['Jscript','.Net','TypeScript','SQL', 'NodeJS','Angular','Mongo','CSS','Python','PHP','Photoshop','Oracle','Linux','C++',"Java",'TeamCity','Frontend','Backend','Full stack', 'UI Design', 'Web','Integration','Database design','UX'])

X = vectorizer.fit_transform(corpus)
print(vectorizer.get_feature_names())
print(X.toarray())

>>> ['Jscript', '.Net', 'TypeScript', 'SQL', 'NodeJS', 'Angular', 'Mongo',
'CSS', 'Python', 'PHP', 'Photoshop', 'Oracle', 'Linux', 'C++', 'Java',
'TeamCity', 'Frontend', 'Backend', 'Full stack', 'UI Design', 'Web',
'Integration', 'Database design', 'UX']

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

关于python - 如何获取 CountVectorizer feature_names 以便设置它们,而不是按字母顺序排列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56131159/

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