c++实现之 -- 文章TF-IDF值的计算

首先,是关键词的选取:
好吧这个我这模型实在是太简单了,但还是讲一讲比较好呢。。。
我们现在手头有的是一堆百度百科词条w的DF(w, c)值,c是整个百科词条。。。原因是。。。方便嘛~(而且人家现成的只有介个了啦~)
我们发现有830W+的词条数目,都存下来显然是不理智、不科学、不魔法的。所以选取一部分作为关键词。
如何选取关键词呢?我选择了DF值在[100, 5000]之间的词。虽然也很不理智、不科学、不魔法,但是比直接存下来理智、科学、魔法多了,恩!
于是就全读进来,然后找到需要的词语,顺便计算下IDF值什么的输出到新的文件里去。
 
 1 #include <cstdio>
 2 #include <iostream>
 3 #include <iomanip>
 4 #include <cmath>
 5 #include <string>
 6 #include <algorithm>
 7 
 8 using namespace std;
 9 typedef double lf;
10 const int cnt_id = 9000005;
11 const lf tot_file = 4500000;
12 const lf eps = 1e-8;
13 
14 struct data {
15     int id;
16     lf IDF;
17     string st;
18     
19     data() {}
20     data(int _id, lf _IDF, string _st) : id(_id), IDF(_IDF), st(_st) {}
21     
22     inline bool operator < (const data &a) const {
23         return IDF > a.IDF;
24     }
25 } a[cnt_id];
26 inline bool cmp_id(data a, data b) {
27     return a.id < b.id;
28 }
29 
30 
31 string st;
32
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值