TF-IDF计算过程

本文内容主要摘自python  machine  learning  2nd   edition

1、假设我们有以下三个文本

• 'The sun is shining'

•  'The weather is sweet'

•  'The sun is shining, the weather is sweet, and one and one is  two

2、利用CountVectorizer类得到如下字典

{'and': 0,'two': 7,'shining': 3,'one': 2,'sun': 4,'weather': 8,'the': 6,'sweet': 5,'is': 1}

3、将步骤1的文档转换为矩阵

[[0 1 0 1 1 0 1 0 0]

[0 1 0 0 0 1 1 0 1]

[2 3 2 1 1 1 2 1 1]]

4.计算tf-idf值

我们以is为例进行计算,is对应的是矩阵第二列。

tf值,表示term在该文本中出现的次数,这里即is在文本3出现的次数,很容易看出是3.

idf值,sklearn做了小小的改动,公式是 (1+log\frac{1+n_{d} }{1+df(d,t)} ). n_{d} 的意思就是文本总数(number of  document),df(d,t)表示包含is 的文件数目,很明显,这里也是3.这样,计算的结果为3*(1+log\frac{1+3}{1+3} )=3.

需要注意的是,sklearn对结果进行了正则化处理。


l2 norm

最终得到的结果为

[[ 0.  0.43   0. 0.56 0.56  0.    0.43    0.    0. ]

[ 0.  0.43    0.   0.   0.    0.56 0.43  0.   0.56]

[ 0.5 0.45   0.5 0.19 0.19 0.19 0.3 0.25 0.19]]

每一行的平方和均为1,这是l2正则化处理的结果。

另外可以看出,原先is的词频是 1 1 3,最终tf-idf值是0.43 0.43 0.45 。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,448评论 0 10
  • The Inner Game of Tennis W Timothy Gallwey Jonathan Cape ...
    网事_79a3阅读 12,277评论 3 20
  • TF API数学计算tf...... :math(1)刚开始先给一个运行实例。tf是基于图(Graph)的计算系统...
    MachineLP阅读 3,548评论 0 1
  • 明确的架构 接手任何一个部门的最重要的事情,是明确或者重新调整组织架构。架构的关键是:谁在什么位置,负责什么内容,...
    ChiRain阅读 430评论 0 3
  • 早起看到了周六去李宁的视频很享受啊只是老师竟然会说到肖像权的问题这个意识得有教学设计课第一次和斯婕小组很稀饭下午讲...
    dq920813阅读 188评论 0 0