目录
词袋模型
- 自然语言处理领域十分常用的文档表示方法。
- 句子或者一篇文档,用一堆单词表示,且不考虑单词出现的顺序、句法以及文法,且认为每个单词的出现独立。
编码方式
- 这种词向量的编码方式称为独热编码或独热表示。
- 构造字典,单词无重复,每一句话可以用字典个数n的n维向量表示。
- 向量的每一维都表示1个单词,且这一维分量表示该单词在这句话中出现的次数。
- 该编码方式不考虑单词间的位置关系,会导致词向量非常稀疏。
TF-IDF机制
TF:Term Frequency词频。
IDF:Inverted Term Frequency逆词频。
设定
符号含义c一个文档集合d其中一篇文档t某个单词tf词频,即单词t在文档d中出现的次数。若某个词t的tf越高,即词t对文档d越重要df文档频率,即文档集合c中出现单词t的文档个数idf逆文档频率。即单词t在越多的文档中出现,其重要型则降低,如’的’、’是’。
计算方式
- 基本公式
tf-idf = tf * idf = tf * log(N/df)
log默认底数是10.
即单词 t的 df越低,其 idf越高, t的重要性越高。
也是单词 t在文档 d中词频 tf越高,且在整个集合 c的 idf也高,则 t对于 d越重要。
实例
- pycharm 先安装 sklearn 库,借助其所带的 IF-IDF 功能。
- 代码
from sklearn.feature_extraction.text import CountVectorizer
corpus = ['I do not like this phone',
'I do not want to leave,I really like this place']
vectorizer = CountVectorizer()
vectors = vectorizer.fit_transform(corpus)
print('所有词条 (所有维度的特征)')
print(vectorizer.get_feature_names())
print()
print('(文章ID,词条ID)词频')
print(vectors)
print()
from sklearn.feature_extraction.text import TfidfTransformer
transformer = TfidfTransformer(norm=None, smooth_idf=False)
tfidf = transformer.fit_transform(vectorizer.fit_transform(corpus))
tfidf_array = tfidf.toarray()
words = vectorizer.get_feature_names()
for i in range(len(tfidf_array)):
print("*********第", i + 1, "个文档中,所有词语的 tf-idf*********")
for j in range(len(words)):
print(words[j], '', tfidf_array[i][j])
print()
所有词条 (所有维度的特征)
['do', 'leave', 'like', 'not', 'phone', 'place', 'really', 'this', 'to', 'want']
(文章ID,词条ID)词频
(0, 0) 1
(0, 3) 1
(0, 2) 1
(0, 7) 1
(0, 4) 1
(1, 0) 1
(1, 3) 1
(1, 2) 1
(1, 7) 1
(1, 9) 1
(1, 8) 1
(1, 1) 1
(1, 6) 1
(1, 5) 1
*********第 1 个文档中,所有词语的 tf-idf*********
do 1.0
leave 0.0
like 1.0
not 1.0
phone 1.6931471805599454
place 0.0
really 0.0
this 1.0
to 0.0
want 0.0
*********第 2 个文档中,所有词语的 tf-idf*********
do 1.0
leave 1.6931471805599454
like 1.0
not 1.0
phone 0.0
place 1.6931471805599454
really 1.6931471805599454
this 1.0
to 1.6931471805599454
want 1.6931471805599454
Original: https://blog.csdn.net/qq_43447401/article/details/123212327
Author: 会有钱的-_-
Title: 3.2.4-词袋模型和TF-IDF机制
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/545016/
转载文章受原作者版权保护。转载请注明原作者出处!