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

https://zhuanlan.zhihu.com/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。


详细:http://blog.csdn.net/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
链接:https://www.jianshu.com/p/6a24449b987e
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Countvectorizer

算法介绍:

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

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


三者对比

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

http://vinking934296.iteye.com/blog/2320403
  • 13
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python文本特征提取是指利用Python编程语言从文本数据中提取特征的过程。在自然语言处理(NLP)和文本挖掘等领域中,对文本进行特征提取可以将文本数据转化为可用于机器学习和统计分析的数字或向量表示。 Python提供了丰富的库和工具,可以用于文本特征提取。常见的特征提取方法包括词袋模型(Bag of Words)、TF-IDF、词频(Term Frequency)、逆文档频率(Inverse Document Frequency)等。 词袋模型是最常用的文本特征提取方法之一。它将文本数据表示为一个词汇表,并统计每个词汇的出现频率作为特征。Python的scikit-learn库提供了CountVectorizer类来实现词袋模型的特征提取TF-IDF是一种常用的用于衡量词语在文本文档和语料库中重要性的方法。通过计算词在文档中的频率和在整个语料库中的逆文档频率,得到每个词的TF-IDF值作为特征。scikit-learn库提供了TfidfVectorizer类用于实现TF-IDF特征提取。 词频和逆文档频率是构成TF-IDF方法的两个组成部分。词频衡量了词语在文档中的频率,逆文档频率衡量了词语在整个语料库中的重要性。使用Python的scikit-learn库可以计算并提取词频和逆文档频率作为文本特征。 除了以上常见的文本特征提取方法外,Python还可以使用正则表达式、n-gram模型、Word2Vec等方法进行文本特征提取。 总而言之,Python提供了丰富的库和工具,可以方便地进行文本特征提取。通过选择合适的特征提取方法,可以将文本数据转化为数字或向量表示,为后续的机器学习和统计分析任务奠定基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值