使用词向量分辨差评与优质评论--中文文本分类的实战指南

该博客围绕购物软件产品评论分类展开。先进行数据准备与处理,对文本文件分词并转存为 Excel,移除停用词。接着采用朴素贝叶斯分类算法,添加数字标签、切分数据、进行词向量转换,最后导入分类器并分析相关数据得分,还给出完整代码及结果。

目录

前提

1、数据准备与处理

2、文本文件分词

3、分词数据转存为Excel

4、移除停用词

4.1、导入停用词库

4.2、定义去除停用词函数

4.3、调用停用词函数

5、朴素贝叶斯分类

5.1、添加数字标签

5.2、数据切分

5.3、词向量转换

5.4、导入朴素贝叶斯分类器

5.5、相关数据得分分析

6、完整代码及结果


前提

本项目是对相关购物软件的产品评论进行分类,文本已经进行分类,将文本数据分为优质评论与差评,故直接进行数据准备

1、数据准备与处理

在使用 jieba 分词之前,你需要有一些中文文本数据,这可以是从文件、数据库或其他数据源中获取的文本。确保你的文本数据已经准备好,并且可以在 Python 中进行读取。

cp_content = pd.read_table(r"差评.txt",encoding='gbk')
yzpj_content = pd.read_table(r"优质评价.txt",encoding='gbk')

使用pandas库读取准备的文本数据

注:上述数据文本可从上方引用!

2、文本文件分词

cp_segments = []
contents = cp_content.content.values.tolist()
for content in contents:
    results = jieba.lcut(content)
    if len(results) > 1 :
        cp_segments.append(results) 

创建一个空列表,用于存储文本数据的分词结果。从读取的“差评.txt”文本中获取相关内容,通过for循环进行遍历迭代,使用jieba库中jieba.cut函数进行分词并将结果储存在results列表中,通过if对所切分的词进行判断,长度大于1的词添加到列表中。

注:后续优质评价文本分词与此处重复,将不再进行解释

results列表保存结果:

使用debug模式进行调试,可以看到results中保存的数据

3、分词数据转存为Excel

cp_fc_results=pd.DataFrame({'content':cp_segments})
cp_fc_results.to_excel('cp_fc_results.xlsx',index=False)

将分词后的数据通过pandas框架保存为一个二维表格型数据,并将该数据写入Excel文件中。此处将index设为False,不将索引保存到Excel表中

Excel表数据结果展示:

4、移除停用词

4.1、导入停用词库
stopwords = pd.read_csv(r"stop.txt",encoding='utf8', engine='python',index_col=False)

将 "stop.txt" 中的停用词数据读取到 stopwords 变量中,以便后续在 Python 中进行处理和使用。停用词通常用于文本处理中的文本清洗或分词等任务,以去除常见但无实际分析意义的词语,从而提高文本处理的效果。

4.2、定义去除停用词函数
def drop_stopwords(contents, stopwords):
    segments_clean = []
    for content in contents:
        line_clean = []
        for word in content:
            if word in stopwords:
                continue
            line_clean.append(word)
        segments_clean.append(line_clean)
    return segments_clean

定义两个参数,”contents“为上述处理的评论文本数据,”stopwords“为停用词数据

  • segments_clean = []:创建一个空列表,用于存储处理后的文本内容。
  • line_clean = []:空列表,用于存储当前文本内容中去除停用词后的词语。
  • for word in content:使用嵌套的for循环遍历当前文本内容中的词语。
  • line_clean.append(word):如果word ”不是停用词,就将它添加到line_clean列表中,表示这个词语是有效的词汇。
  • segments_clean.append(line_clean):在内部循环结束后,将处理后的词语列表line_clean 添加到“segments_clean”列表中,表示当前文本内容已经去除了停用词。
4.3、调用停用词函数
contents = cp_fc_results.content.values.tolist()  # DataFrame格式转为list格式
stopwords = stopwords.stopword.values.tolist()  # 停用词转为list格式
cp_fc_contents_clean_s = drop_stopwords(contents, stopwords)

con
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值