首页 > 其他分享 >京东商品评论情感分析|文本数据预处理

京东商品评论情感分析|文本数据预处理

时间:2022-11-10 10:10:29浏览次数:45  
标签:中文 语料 分词 评论 京东 文本 数据 预处理


京东商品评论情感分析|文本数据预处理_数据

本文爬取了十款热销手机的文本评论数据后,首先对文本评论数据做文本预处理,文本评论数据中存在大量的无价值信息,引入无用的文本数据,对其作情感分析,显然没有价值,得出的文本挖掘结果也不尽人意。所以对于文本评论数据先进行文本预处理是必不可少的一步,把大量的、冗余的、无价值的信息去除,可以极大提高文本数据的质量,精确文本分析结果。

1 文本去重


1.1文本去重的原因

文本数据预处理时,首先应去除文本评论数据中反复出现的语句部分,当消费者长时间无评论时,系统会默认好评,分析这类重复内容无意义,且大量重复出现这种无价值的评论,应该去除。在商品评论中,有时还会出现人为的复制粘贴别人的评论,显然,这种复制粘贴的评论信息会对于我们的文本处理产生影响,若不处理,会对于评论结果产生影响,影响结果的准确性。

1.2文本去重算法的缺陷

Simhash算法、编辑距离去重算法等常用于文本去重中,通过计算文本相似度来文本去重存在问题。比如,编辑距离算法就存在着很大缺陷,计算两条语句编辑距离的阈值,当阈值小于某个范围则去重,这种方法对于文本数据不能完全去重,而只是去除接近重复语句段落的评论数据。

1.3文本去重选用的方法及原因

编辑距离算法会去除有用的评论数据,此时需要提出一些其他的文本去重方法,用来改进该算法。语料相近也会存在一些有价值的信息,不能完全去除这部分信息,所以,处理完全重复的语料以保留更多有用的信息。比较删除法通过比较两两重复的语句来去除完全重复的语句,实现文本去重,保留更多有用信息的目的。

京东商品评论情感分析|文本数据预处理_中文分词_02

本文使用比较删除法对文本评论数据做去除重复文本的处理,比较删除法可以有效的对于文本重复部分进行处理,这种方法的文本去重效果明显,并且,在实际应用中,操作简单,常用于自然语言处理过程中,针对两种完全相同的文本评论数据,通过比较删除法,可以保留更多相似的文本数据,去重效果鲜明,通过比较删除法,处理无效的文本评论数据如下表所示:

京东商品评论情感分析|文本数据预处理_中文分词_03

2 机械压缩去词


2.1机械压缩去词思想

比较删除法去除了完全重复、无意义的文本数据。但是不同品牌的手机有不同的评价内容,很多评论信息都是冗余的、无实际意义的,文本去重的初步处理不能完全去重,评论数据中有些语句显得重复、啰嗦,例如:

“挺好挺好挺好挺好挺好挺好挺好”

这是一类重复、连续毫无意义的文本评论数据,虽然这一类语料无语料重复,但是需要用机械压缩去词的方法处理这类评论数据,例如:

把“挺好挺好挺好挺好挺好挺好挺好”缩成“挺好”

2.2机械压缩去词处理

机械压缩去词处理以建立两个列表存放国际字符为前提,制定出严格的压缩规则,判断两个列表中的语料是否重复、连续,首先,放置第一个列表,再放置第二个列表,按照不同情况依次读取国际字符,将其放入到第一个或者第二个列表来,触发压缩判断是否重复、连续,如果得出重复的规则,那么考虑用压缩去除的办法,需要提前设置压缩规则,以及放置的判断。在设置压缩规则,以及放置判断的时候,需要考虑词法结构所带来的影响。

本文依据机械压缩去词原理处理文本前后数据对比如下表所示。

京东商品评论情感分析|文本数据预处理_数据_04

3 短句删除


3.1短句删除的原因

根据语言的特点,如果一条语料所包含的字数越少,那么这条语料所表达的含义越少,内容越不丰富,如果在文本评论中要表达更多的含义和内容,需要增加更多的语料词数,过少文本评论字数,没有实际的表达含义,常见的短句有三个字或者两个字,比如“还不错”“都挺好”“很好”“不错”等等。为了提高文本处理结果的精度,删除短句,可以提高文本数据质量。

3.2文本评论字数确定

保持文本数据中评论字数的下限是确定删除短句的关键步骤。通常认为4~8个国际字符是一个合理的字数下限。根据具体的语料库情况和文本语料库的特征,设置适当的文本字数下限。

京东商品评论情感分析|文本数据预处理_最大匹配_05

本文首先统计每一条文本评论数据的长度,通过计算每一条文本评论数据的长度,筛选长度大于4的文本评论数据,实现短文本评论数据的删除,短句删除无效的评论数据如下表所示:

京东商品评论情感分析|文本数据预处理_最大匹配_06

4 中文文本评论分词

在中文的语料结构中,“词”与“词组”无严格的分界符将他们两进行划分。在挖掘和分析中文文本数据时,应根据特定的规则重新组合中文分词序列。

良好的分词结果可以使得文本挖掘结果更加精确,若分词结果模糊,将直接影响到词语在文本处理中的带来的效果,影响到主题的提取,不同的分词结果,会呈现出不同的特征选取效果。

4.1中文分词方法

最大概率法和最大匹配法在中文分词处理中最常用。衍生出双向匹配方法、逆向最大匹配方法、最佳匹配方法,这三种方法同样适用于中文分词处理中,其中,逆向最大匹配方法有着与正向最大匹配方方法方向不同的特征,在中文分词处理过程中,与正向最大匹配法的中文分词处理相比,很明显,逆向最大匹配法更适合中文分词处理。而双向匹配法比较了正向和逆向两者的中文分词结果,从而确定最优的中文分词结果;最佳匹配法可以有效的提高匹配效率,这种匹配方法按照顺序将词典中频度高的单词排在前,频度低的单词排在后。

4.2文本评论分词方法

在文本评论分词处理中,常用Python中文分词库和snownlp文本处理库对于文本数据进行文本分词处理。

jieba(结巴)分词包是Python中一个强大的分词库,用于语料分词处理,可以实现高效的扫描词图,根据前缀字典生成不同的中文分词结果。通过搜索最大概率路径,可以对有向无环图进行动态规划。对于未登录的语料库,基于维特比算法模型和HMM模型,中文分词会处理未登录的语料库。

京东商品评论情感分析|文本数据预处理_数据_07

Snownlp库可以做文本分析,例如文本分类,中文分词,情感分析和文本关键字的提取。受TextBlob的启发,Snownlp是Python编程语言中的类库。它可以简单地处理中文文本内容,对于中文的自然语言处理问题,编写一个类库来处理中文语料库,并且自带一些受过训练的词典来方便分词。

本文借助Python的jieba分词包,对小米手机商品评论数据做中文分词处理。研究表明,使用Python的jieba分词包,其分词精度达到97%以上,分词效果明显,本文文本分词前后对比如下表所示。

京东商品评论情感分析|文本数据预处理_中文分词_08

京东商品评论情感分析|文本数据预处理_最大匹配_09

PS:由于本例编写的python代码过长,将本专辑所有的代码封装在后台保存,附加爬取的京东商品评论数据。

公众号后台回复

京东商品评论

获取封装代码和文本数据

京东商品评论情感分析|文本数据预处理_数据_10

标签:中文,语料,分词,评论,京东,文本,数据,预处理
From: https://blog.51cto.com/u_15828536/5839637

相关文章

  • 京东商品评论情感分析|研究综述
    目前,我国电子商务行业发展迅速,规模不断扩大,促使日常生活中网购盛行,各个电商平台竞争激烈,通过构造消费者反馈机制,使得消费者反馈通畅,消费者评论蕴含丰富信息,充分挖掘这类信息......
  • ModStartBlog v6.1.0 界面显示优化,富文本升级
    系统介绍ModStart是一个基于Laravel模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。系统完全开源,基于Apache2.......
  • 京东商品评论情感分析|文本数据获取
    本文以小米京东旗舰店平台作为数据来源,爬取小米京东旗舰店十款热门手机的当前在线评论文本数据5110条数据,抽取小米10的手机评论数据做情感分析,对评论数据进行文本去重、机械......
  • R数据分析,数据预处理
    上一节讲到R数据清洗内容,主要包括缺失值处理、特殊字符处理、大小写转换、数据格式转化、重复值处理、数值替换,本节在R数据清洗的内容上继续学习R数据预处理,内容包括数据合......
  • HTML----常用标记(文本、文字、超链接与锚点连接)
    1.标记的分类单标记:只有一个标记既是开始,也是结束,如:图片、视频双标记:又开始有结束,成对出现的,主要作用就是描述标记的内容,如:div2.文本、文字<font></font......
  • ckeditor富文本实现导入word功能
    ​ 1.编辑器修改(可选)1.1在 ueditor/config.json 中添加代码块    /* 上传word配置 */    "wordActionName":"wordupload",/* 执行上传视频的action......
  • 预处理指令
    1.预处理指令的分类1)。文件包含指令#include2)宏定义:可以将1段C代码定义为1个标识,使用这个标识就可以使用这段代码3),条件编译指令:只编译指定的C代码为二进制指令2,宏定......
  • C语言——程序环境和预处理
    程序的翻译环境和执行环境编译+链接预处理一.程序的翻译环境和执行环境在ANSIC标准的任何一种实现中,存在两种不同的环境:翻译环境:该环境中源代码会被转换为可执行的机器......
  • SwiftUI Text富文本
    富文本解决方案大致有下面几种1、Text的超链接:2、如果是单行文字使用HStack把多个Text拼接起来,这种方式比较简单也用的比较多3、Text+Text的拼接,处理onTapGesture事件......
  • 京东前端经典react面试题合集
    为什么调用setState而不是直接改变state?解答如果您尝试直接改变组件的状态,React将无法得知它需要重新渲染组件。通过使用setState()方法,React可以更新组件的UI。另......