文章目录

  • 1. TF-IDF原理
  • 2. 文本矩阵化
  • 3. 互信息的原理
  • 4. 使用第二步生成的特征矩阵,利用互信息进行特征筛选
  • 参考

1. TF-IDF原理

TF-IDF是Term Frequency - Inverse Document Frequency的缩写,即“词频——逆文本频率”。它由两部分组成,TF和IDF,也就是这两部分的乘积。
TF指的就是常用的词频。
IDF,即“逆文本频率”。其实,不考虑停用词的话,一些词在所有文本都会出现,其词频虽然高,但是重要性却应该比词频低的一些关键词要低。IDF就是用来反应词的重要性的,进而修正仅仅用词频表示的词特征值。
概括来讲, IDF反应了一个词在所有文本中出现的频率,如果一个词在很多的文本中出现,那么它的IDF值应该低,。反过来如果一个词在比较少的文本中出现,那么它的IDF值应该高。。这样的词IDF值应该高。一个极端的情况,如果一个词在所有的文本中都出现,那么它的IDF值应该为0。
下面对IMDB数据集(英文)训练集neg部分用sklearn进行TF-IDF计算(主要代码如下):

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformerdef tf_idf(vectorizer, sentlist):vectorizer = CountVectorizer(min_df=1)transformer = TfidfTransformer(stop_words=stopwords)tfidf = transformer.fit_transform(vectorizer.fit_transform(sentlist))return tfidf

这里是我得到的部分TF-IDF结果:

另外,还可以用 TfidfVectorizer,详细参考 https://blog.csdn.net/m0_37324740/article/details/79411651

2. 文本矩阵化

以TF-IDF特征值为权重,使TfidfTransformer,只需要将上边得到的TF-IDF结果转换为矩阵即可;

tfidf.toarray()

以下是我截取的部分结果(可能我代码没处理好,写文件时候内容太大了会发生内存溢出,先记录一下,后边想办法优化):

3. 互信息的原理

互信息(Mutual Information) 定义为: ∑ x ∈ X ∑ y ∈ Y p ( x , y ) log ⁡ ( p ( x , y ) p ( x ) p ( y ) ) \sum_{x\in X}\sum_{y \in Y}p(x, y)\log(\frac{p(x, y)}{p(x)p(y)}) ∑x∈X​∑y∈Y​p(x,y)log(p(x)p(y)p(x,y)​)
其衡量的是两个随机变量之间的相关性,即一个随机变量中包含的关于另一个随机变量的信息量。所谓的随机变量,即随机试验结
果的量的表示,可以简单理解为按照一个概率分布进行取值的变量,比如随机抽查的一个人的身高就是一个随机变量。
参考博文:https://blog.csdn.net/u013710265/article/details/72848755

4. 使用第二步生成的特征矩阵,利用互信息进行特征筛选

使用sklearn 计算x和label的互信息:

from sklearn import metrics as mr
mr.mutual_info_score(label,x)

这里由于时间有限,我上边只处理了IMDB数据集(英文)neg部分,暂时先不在这里进行实现,后边用其他案例补充。

参考

[1] https://blog.csdn.net/m0_37324740/article/details/79411651
[2] https://blog.csdn.net/u013710265/article/details/72848755

自然语言处理4——TF-IDF及特征提取相关推荐

  1. 使用lingpipe自然语言处理包进行文本分类/** * 使用 lingpipe的tf/idf分类器训练语料 * * @author laigood */ public class trai

    /**  * 使用 lingpipe的tf/idf分类器训练语料  *   * @author laigood  */ public class traintclassifier { //训练语料文件 ...

  2. 关键词提取算法—TF/IDF算法

    关键词提取算法一般可分为有监督学习和无监督学习两类. 有监督的关键词提取方法可以通过分类的方式进行,通过构建一个较为完善的词表,然后判断每个文档与词表中的每个词的匹配程度,以类似打标签的方式,达到关键 ...

  3. 搜索引擎:文本分类——TF/IDF算法

    原理 TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类.TFIDF实际上是:TF * IDF,TF ...

  4. tf/idf_Neo4j:带密码的TF / IDF(和变体)

    tf/idf 几周前,我写了一篇博客文章,介绍了如何使用scikit-learn在HIMYM成绩单上运行TF / IDF,以按情节找到最重要的短语,然后我很好奇在Neo4j中很难做到. 我首先将Wik ...

  5. Neo4j:带密码的TF / IDF(和变体)

    几周前,我写了一篇博客文章,介绍了如何使用scikit-learn在HIMYM成绩单上运行TF / IDF,以按情节找到最重要的短语,然后我很好奇在Neo4j中很难做到. 我首先将Wikipedia的 ...

  6. scitkit-learn:计算机科学论文的TF / IDF和余弦相似度

    几个月前,我下载了数千篇计算机科学论文的元数据,这样我就可以尝试编写一个迷你推荐引擎来告诉我接下来应该读什么论文. 由于我没有任何人可以阅读每篇论文的数据,因此排除了协作过滤方法,所以我认为我可以尝试 ...

  7. 随笔_从《芳华》影评到TF/IDF算法

     前两天看好多<芳华>的影评说:为什么好人没好报?于是感叹一堆世态炎凉,人性丑陋什么的.我觉得这问题是:为什么中央空调(对谁都温暖)往往不被看好.  先说说TF/IDF算法,这是一种信息处 ...

  8. 文本特征抽取的向量空间模型(VSM)和TF/IDF方法

    文本特征抽取 两组小说,一组是爱情的,另一组是科幻的.我们能否用支持向量机训练一个模型,用来识别小说类型呢? 这个并不容易.因为支持向量机这类机器学习算法只能接受数学里面的向量作为输入.如果用它来做文 ...

  9. tf-idf词向量和bow_使用词袋Bow和TF IDF进行多标签分类

    tf-idf词向量和bow 1.加载数据 (1. Load the data) For this study, we are using Kaggle data for Toxic Comment C ...

  10. 【笔记】手敲版 TF IDF

    注1: 1.  涉及计算向向量夹角  [笔记]向量点乘(内积)和叉乘(外积.向量积):对两个向量执行点乘运算,是对这两个向量对应位一一相乘之后求和的操作,点乘的结果是一个标量:叉乘结果是一个向量,它垂 ...

最新文章

  1. 转载sunboy_2050 - Android APK反编译详解(附图)
  2. mysql存入mtr数据_mysql mtr写入数据
  3. 漫话:什么是云计算?
  4. anaconda中python的位置_科学网—查询Anaconda安装路径、安装包位置及授予访问权限 - 张伟的博文...
  5. windows 安装 mysql5.7.17
  6. swoft增加swagger(丝袜哥)
  7. Redis 菜鸟教程学习笔记- Redis 配置
  8. 在线预览打印Word文档
  9. 领导干部信息管理系统某省实践案例
  10. Android 不透明度 对应表
  11. 2021 部分团队的年终总结
  12. linux性能监控工具-nmon安装使用详细教程
  13. 玩家交互体验—剑网3好友系统
  14. 433模块-----HCS301芯片烧录器
  15. 史上最强大的procreate笔刷,调色卡,字体分享站点大推荐
  16. INTERIGHT 京东自营旗舰店-京东 要把凡客给弄残啊这是。。
  17. 计算机连接不上蓝牙鼠标,win10系统蓝牙鼠标连接不上的图文教程
  18. 高等代数---行列式
  19. Android Studio安装超详细步骤(包括SDK安装不成功,模拟器无法创建等问题)
  20. 俺可爱的小马,差点被淹了

热门文章

  1. [网络工程师]-网络规划与设计-物理网络设计
  2. Task 3 特征工程 Datawhale零基础入门数据挖掘- 二手车交易价格预测
  3. HALCON几何变换
  4. java valueOf()方法
  5. Ubuntu16.04 安装OMnet++4.6(5.4也可)
  6. Linux下软件安装 非root用户安装软件的一般流程
  7. ad禁用计算机账户命令,AD-禁用账户命令 Disable-ADAccount
  8. python通达信交易接口_GitHub - qhduan/pytdx: Python通达信数据接口
  9. 微型计算机原理push指令,微机原理指令英文解释
  10. Oracle字节、字符的截取