贝叶斯-新闻分类的实现

本文介绍了如何利用贝叶斯算法进行新闻分类。首先,从搜狗资源获取数据,接着使用结巴分词器进行文本分词和清洗。然后通过TF-IDF方法提取关键词,再应用LDA主题模型。最后,详细阐述了如何运用贝叶斯算法对新闻进行有效分类,并给出了具体实例。
摘要由CSDN通过智能技术生成
import pandas as pd
import jieba
#pip install jieba

数据源:

http://www.sogou.com/labs/resource/ca.php

df_news = pd.read_table('./data/val.txt',names=['category','theme','URL','content'],encoding='utf-8')
df_news = df_news.dropna()
df_news.head()

在这里插入图片描述

df_news.shape

在这里插入图片描述

分词:使用结吧分词器

# 结吧分词器要求使用list格式
content = df_news.content.values.tolist()
print (content[1000])

在这里插入图片描述
进行分词:

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)
content_S[1000]

在这里插入图片描述

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=['stopword'], encoding='utf-8')
stopwords.head(20)

在这里插入图片描述

def drop_stopwords(contents,stopwords):
    contents_clean = []
    all_words = []
    for line in contents:
        line_clean = []
        for word in line:
            if word in stopwords:
                continue
            line_clean.append(word)
            all_words.append(str
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值