基于TF-IDF算法提取文章关键词设计

本文介绍了一个基于TF-IDF算法提取文章关键词的流程。首先,从搜狗实验室获取新闻数据,然后读入停用词表,对文本进行分词、去停用词和特殊符号处理。接着,统计词频,计算TF和IDF,最后得到降序排列的关键词列表并保存结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试数据是来自于搜狗实验室的新闻数据

下载地址为:

https://www.sogou.com/labs/resource/cs.php

大致流程为:

  1. 读取测试样本文件;
  2. 读入停用词表,并对合并后的文本进行分词、去停用词和特殊符号;
  3. 遍历处理过后的文本,将其存入文档中;
  4. 进行词频统计,对所有词语出现的次数进行统计;
  5. 计算词频TF,统计含有该单词的句子数;
  6. 计算逆文档频率IDF,计算TF-IDF;
  7. 存储全部的关键词,排序得到降序的列表;
  8. 定义文章返回关键词的数量,将结果保存到文件。
# -*- coding:utf-8 -*-
# 因为py文件不支持中文(包括注释里的),因此需要使用这段代码将就文件编码类型改为UTF-8的类型。
# 这样就可以在py文件中正常输入中文而不报错了
from lxml import etree

# 导入 jieba
import jieba  #中文分词
import math   #计算IDF时会用到log函数
'''
defaultdict 用法与 dict 相似,在dict中取key的值,若key不在dict中,报错;
若用defaultdict,则不会报错,返回值是工厂函数默认参数值
(工厂函数是list,返回[]。工厂函数是str,返回空字符串’’。工厂函数是set,返回set()。)
'''
from collections import defaultdict
'''
 Zhon是一个Python库,它提供了中文文本处理中常用的常量。
python自带punctuation包,可以消除所有中文标点符号
''' 
from zhon.hanzi import punctuation
# string.punctuation将给出所有的标点符号。
from string import punctuation as eng_punctuation
import time


def parse_xml(xml):
    """解析xml文件"""
    try:
        # 获取文本
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值