gpt4 book ai didi

python-3.x - 如何使用Scikit learn CountVectorizer?

转载 作者:行者123 更新时间:2023-12-03 09:12:17 25 4
gpt4 key购买 nike

我有一组单词,我必须检查它们是否出现在文档中。

WordList = [w1, w2, ..., wn]

另一组有文档列表,我必须检查这些单词是否存在。

如何使用 scikit-learn CountVectorizer 使术语文档矩阵的特征仅是来自 WordList 中的单词,并且每一行代表每个特定文档,且没有次数给定列表中的单词出现在各自的列中?

最佳答案

对于自定义文档,您可以使用计数向量化方法

from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer() #make object of Count Vectorizer
corpus = [
'This is a cat.',
'It likes to roam in the garden',
'It is black in color',
'The cat does not like the dog.',
]
X = vectorizer.fit_transform(corpus)
#print(X) to see count given to words

vectorizer.get_feature_names() == (
['cat', 'color', 'roam', 'The', 'garden',
'dog', 'black', 'like', 'does', 'not',
'the', 'in', 'likes'])

X.toarray()
#used to convert X into numpy array

vectorizer.transform(['A new cat.']).toarray()
# Checking it for a new document

也可以使用其他矢量化器,例如 Tfidf 矢量化器。 Tfidf 矢量化器是一种更好的方法,因为它不仅提供特定文档中单词出现的次数,还说明单词的重要性。

它是通过查找 TF- 词频和 IDF- 逆文档频率来计算的。

术语频率是一个单词在特定文档中出现的次数,IDF 是根据文档的上下文计算的。例如,如果文档与足球相关,那么单词“the”不会给出任何见解,但单词“messi”会讲述文档的上下文。它是通过记录发生次数来计算的。例如。 tf(“该”) = 10 tf("梅西") = 5

idf("the") = log(10) = 0
idf("messi") = log(5) = 0.52

tfidf("the") = tf("the") * idf("the") = 10 * 0 = 0
tfidf("messi") = 5 * 0.52 = 2.6

这些权重有助于算法识别文档中的重要单词,从而有助于从文档中导出语义。

关于python-3.x - 如何使用Scikit learn CountVectorizer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41094718/

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