TF-IDF算法实现,稀疏矩阵的转化

本文深入探讨了TF-IDF算法的原理及其在文本处理中的应用,同时详细介绍了如何将高维稀疏矩阵进行转换和操作,为信息检索和自然语言处理提供基础支持。
摘要由CSDN通过智能技术生成
from math import log10
import numpy as np

# docList is the corpus with each element a doc, each doc is a list of words
def tfidf(docList):
    docNum = len(docList)
    docList = [i.split(' ') for i in docList]
    term_idf = dict()
    for doc in docList:
        # set(doc) 得到每篇文档的词,不包含重复, 即可统计该词在不同文档的出现次数
        for term in set(doc):
            if term not in term_idf:
                term_idf[term] = 1.0
            else:
                term_idf[term] += 1.0
    # IDF 统计词语的逆文档频率
    for term in term_idf:
        # log10  10为底数
        term_idf[term] = log10(docNum / term_idf[term])
    print('all word num = ', len(term_idf))
    # term_tfidf 总词典
    term_tfidf = dict()
    doc_id = 0
    for doc in docList:
        term_tfidf[doc_id] = dict()
        # 每个文档的词频统计
        term_tf = dict()
        for term in doc:
            if term not in term_tf:
         
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值