2021-07-15

程序计算速度已经有效提高了,现在大概只需要2-3秒的计算时间就能提取出输入词条的关键词,不过代码还是不太美观,于是将它进行封装
class TfIdf(object):
# 四个参数分别是:训练好的idf字典,默认idf字典,处理后的待提取文本, 关键词数量
def init(self, idf_dic, default_idf, word_list):
self.idf_dic, self.default_idf = idf_dic, default_idf
self.word_list = word_list
self.tf_dic = self.get_tf_dic() # 统计tf值
def get_tf_dic(self):
# 统计tf值
tf_dic = {}
for word in self.word_list:
tf_dic[word] = tf_dic.get(word, 0.0) + 1.0
tt_count = len(self.word_list)
for k, v in tf_dic.items():
tf_dic[k] = float(v) / tt_count # 根据tf求值公式
return tf_dic
def get_tfidf(self):
# 计算tf-idf值
tfidf_dic = {}
for word in self.word_list:
idf = self.idf_dic.get(word, self.default_idf)
tf = self.tf_dic.get(word, 0)
tfidf = tf * idf
tfidf_dic[word] = tfidf
tfidf_dic.items()
# 根据tf-idf排序,去排名前keyword_num的词作为关键词
i = 0
Li = []
for k, v in sorted(tfidf_dic.items(), key=functools.cmp_to_key(cmp), reverse=True):
Li.append(k)
return Li

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值