使用贝叶斯算法完成新闻分类任务

本文探讨了新闻分类任务中的文本分析,强调了停用词的处理和TF-IDF在关键词提取中的作用。通过示例解释了如何利用TF-IDF计算词的重要性,并指出它能反映文章特性。还提到了使用结巴分词器进行分词的代码实践。

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

文本分析:新闻分类任务

停用词(符号,字符都有):1.语料中大量出现 2.没啥作用

Tf-idf:关键词提取
《中国的蜜蜂养殖》:进行词频(Term Frequency,缩写为TF)统计
出现次数最多的词是----“的” “是” “在”----这一类最常用的词(停用词)
“中国” “蜜蜂” “养殖”这三个词出现的频率一样多,重要性一样?
"中国"是很常见的词,相对而言,“蜜蜂”和“养殖”不那么常见

“逆文档频率” (Inverse Document Frequent,缩写为IDF)
如果这个词比较少见,但它在该文章中多次出现,那么它很可能就反映了这篇文章的特性,正是我们需要的关键词

词频(TF) = 某个词在文章中出现的次数 / 文章总的词数

逆文档频率(IDF) = log(语料库的文档总数 / 包含该词的文档数 + 1)

TF-IDF = 词频(TF) X 逆文档频率(IDF)

相似度
句子A:我喜欢看电视,不喜欢看电影。
句子B:我不喜欢看电视,也不喜欢看电影。

分词:
句子A:我/喜欢/看/电视,不/喜欢/看/电影。
句子B:我/不/喜欢/看/电视,也/不/喜欢/看/电影。

语料库:我,喜欢,看,电视,电影,不,也。

词频:
句子A:我1,喜欢2,看2,电视1,电影1,不1,也0
句子B:我1,喜欢2,看2,电视1,电影1,不2,也1

词频向量:
句子A:[1,2,2,1,1,1,0]
句子B:[1,2,2,1,1,2,1]

根据两个向量求出余弦值

下面是代码实例,使用结巴分词器进行分词

In[1]:import pandas as pd
	  import jieba	
In[2]:df_news = pd.read_table('val.txt', names=['category', 'theme', 'URL', 'content'], encoding='utf-8')
	  df_news.dropna()
	  df_news.head()
# 使用结吧分词器分词
In[3]:content = df_news.content.values.tolist()
      # 将数据转换为列表形式
      print(content[1000])
In[4]:content_S = []
	  for line in content:
	      current_segment = jieba.lcut(line)
	      if len(current_segment) > 1 and current_segment != '\r\n':
	          content_S.append(current_segment)
	          # 每个分词器结果都是一个列表
In[5]:content_S[1000]
In[6]:df_content = pd.DataFrame({
   
   'content_S':content_S})
	  df_content.head()
	  stopwords =  pd.read_csv('stopwords.txt', index_col=False, sep='\t', quoting=3, names=['stopwords'], encoding='utf-8')
	  stopwords.head()
	  # 停用词文档
In[7]:  # 去除停用词
	    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值