糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 三种文本特征提取(TF-IDF/Word2Vec/CountVectorizer)

三种文本特征提取(TF-IDF/Word2Vec/CountVectorizer)

时间:2019-10-02 05:10:45

相关推荐

三种文本特征提取(TF-IDF/Word2Vec/CountVectorizer)

/p/24037830?refer=liulingyuan
TF-IDF

算法介绍:

词频-逆向文件频率(TF-IDF)是一种在文本挖掘中广泛使用的特征向量化方法,它可以体现一个文档中词语在语料库中的重要程度。

词语由t表示,文档由d表示,语料库由D表示。词频TF(t,,d)是词语t在文档d中出现的次数。文件频率DF(t,D)是包含词语的文档的个数。如果我们只使用词频来衡量重要性,很容易过度强调在文档中经常出现而并没有包含太多与文档有关的信息的词语,比如“a”,“the”以及“of”。如果一个词语经常出现在语料库中,它意味着它并没有携带特定的文档的特殊信息。逆向文档频率数值化衡量词语提供多少信息。

其中,|D|是语料库中的文档总数。由于采用了对数,如果一个词出现在所有的文件,其IDF值变为0。

详细:/The_lastest/article/details/79093407

TF-IDF实践步骤,也即是一般的文本处理和模型训练步骤:

1.获取原始文本内容信息。

2.转换成纯小写,按空格把文章分成独立的词组成的list。

3.去除噪音符号:["\"","=","\\","/",":","-","(",")",",",".","\n"]等

4.去除停用词

5.提取词干,把相近的词转换为标准形式,比如把文章中的go,going,went,goes统一成go

6.wordcount,统计每个词出现的次数,去掉出现次数较少的词,比如在一百篇文档中,只出现了1~2次的词,显然是没有意义的。

7.训练idf模型

8.对输入的每篇测试文章计算其tfidf向量,然后可以利用tfidf向量求文章之间的相似度(比如用欧拉距离,余弦相似度,Jaccard系数等方法)。

Word2Vec

算法介绍:

Word2vec是一个Estimator,它采用一系列代表文档的词语来训练word2vec model。该模型将每个词语映射到一个固定大小的向量。word2vec model使用文档中每个词语的平均数来将文档转换为向量,然后这个向量可以作为预测的特征,来计算文档相似度计算等等。

另一类最近比较流行的模型是把每一个单词表示成一个向量。这些模型一般是基于某种文本中与单词共现相关的统计量来构造。一旦向量表示算出,就可以像使用TF-IDF向量一样使用这些模型(例如使用它们作为机器学习的特征)。一个比较通用的例子是使用单词的向量表示基于单词的含义计算两个单词的相似度。Word2Vec就是这些模型中的一个具体实现,常称作分布向量表示

作者:小爷Souljoy

链接:/p/6a24449b987e

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Countvectorizer

算法介绍:

Countvectorizer和Countvectorizer model旨在通过计数来将一个文档转换为向量。当不存在先验字典时,Countvectorizer可作为Estimator来提取词汇,并生成一个Countvectorizer model。该模型产生文档关于词语的稀疏表示,其表示可以传递给其他算法如LDA。CountVectorizer类会将文档全部转换成小写,然后将文档词块化(tokenize).文档词块化是把句子分割成词块(token)或有意义的字母序列的过程。

在fitting过程中,countvectorizer将根据语料库中的词频排序选出前vocabsize个词。一个可选的参数minDF也影响fitting过程中,它指定词汇表中的词语在文档中最少出现的次数。另一个可选的二值参数控制输出向量,如果设置为真那么所有非零的计数为1。这对于二值型离散概率模型非常有用。

三者对比

CountVectorizer只考虑每种词汇在该训练文本中出现的频率,而TfidfVectorizer除了考量某一词汇在当前训练文本中出现的频率之外,同时关注包含这个词汇的其它训练文本数目的倒数。相比之下,训练文本的数量越多,TfidfVectorizer这种特征量化方式就更有优势。

/blog/2320403

如果觉得《三种文本特征提取(TF-IDF/Word2Vec/CountVectorizer)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。