【云计算】自然语言处理之淘宝评论处理
小标 2019-01-14 来源 : 阅读 896 评论 0

摘要:本文主要向大家介绍了【云计算】自然语言处理之淘宝评论处理,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

本文主要向大家介绍了【云计算】自然语言处理之淘宝评论处理,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

文章大纲及涉及的工具库


最近在接触自然语言处理的项目,对目前的情况做一个总结:


项目目标 相关工具库 自然语言处理的基本流程 进一步处理及相关的算法和知识 目前的进展以及所面临的问题


项目目标


对淘宝商品的评论进行归纳,为每条评论进行关键短语的提取,并将关键短语进行聚类标签化。为每个评论打标签。并对评论进行情感分析。



相关工具库


这里为大家介绍一下我在项目中接触的几个工具库,其中的介绍都是个人理解,难免有错误,望请大家海涵并指正。


Pandas


强大的数据分析库,在项目中主要使用DataFrame的数据格式来对项目中的数据进行存储及操作。DataFrame(DF)的形式如同字典,操作的时候主要通过索引来提取数据。在提取列数据时,使用的方法为df.iloc[i,j]和df.loc[i][j],是通过索引进行定位来提取,之前的ix方法被系统提示避免使用,因为后期的版本可能不再支持这种方法。DataFrame的to_csv/read_csv/read_table/to_sql/read_sql来进行数据的读入和写入也是特别的方便。


<h3 id="mysqldb">MySqldb

链接数据库的模块,这里使用的MySQL。这里建议自己写成一个模块,这样调用起来比较方便。


Jieba


NPL一个相关的库出现了——Jieba(结巴)分词库。这个主要是用来进行分词的工具库。其中有两种分词的命令,一种是jieba.cut,另一种是Jieba.posseg.cut。其中第一个是默认的分词方法,第二个可以在切分后标注词性(flag)。这两种切词模式切出来的都不是直接的字符串,结果是各自存储格式,需要使用for将结果循环出来。这里推荐使用列表推导式,代码间接,运行较快。另外,使用Jieba进行分词的时候可以自定义词典,这样可以自定义一些新词。在Jieba库中有自带的关键词提取方法,其中使用的算法是TF-IDF和TEXTRANK两个算法。其中TF-IDF使用的IDF是Jieba自带的一个字典,其中定义好常用字的IDF。在应用的时候可以根据自己的需求来修改库中的代码中的字典路径,指向自定义的IDF。不过个人觉得比较适用于文章类的关键字提取,针对于评论语句,感觉不是很好。TEXTPRANK算法主要是根据前后词的关系来进行输出,同样在评语中的应用也不是很理想。


SNOWNLP


中文分词的一个开源的工具库,主要做的是网络购物方向的中文处理工具。其中包括中文分词,情感分析等。其中情感分析主要是根据当前库中收录好的词语进行的评分。其中也有关键字提取,同样个人觉得结果不理想。网上对SnowNLP的评测是针对与电商购物的处理比较准确,其他方面较差。


HANLP


一个开源的中文处理工具库,其代码是用Java写的,所以在使用的时候需要在本机上安装Java环境和jpype库。[插入一句,安装中可能遇到各种各样的坑,网上大部分都有解释,不过这里要说2点:1. Java环境使用java8(目前最新的是10),太新的话hanlp会报错,其中有些文件和文件位置不一样(当初我就是追新,结果各种报错)。2. 如果是从官网下载的话,记得下载相应的java程序包,要不然只有空架子,没有什么内容。]

Hanlp可以做中文分词,词性标注和词语相似度比较,依句法分析和词与词之间的语义距离等。在使用依句法分析的时候,结果是一个java的文件,需要使用循环才可以将内容取出。这里的词语相似度主要是依据源文件中的近义词词典来进行的判断。由于词典年代较远,有些词汇还是无法正确识别的。


Stanford Corenlp


斯坦福自然语言处理工具,其中包括对简体中文处理包,其中包括分词,标注词性,依句法分析,语义分析。其中依句法分析生成的是句法树。在使用的时候遇到的最大问题是不知道如何将句法树解析出来。该工具应该是目前中文处理比较好的。


Gensim


主要使用库中的Word2Vec模型,该模型是谷歌的来源的一个工具模型,用处是对文档建立词向量。具体的原理在后文详细阐述。该库中还有Doc2vec,是一个基于Word2vec的基础上进行的改进模型,也是用来建立词向量。最初word2vec中使用的功能是来计算词之间的相似度,由于感觉Hanlp中的相似度无法计算一些新词的相似度,所以考虑使用评论文本来训练个模型,使相似度的计算更为准确,而后想根据词向量对短语做聚类,效果不太理想,可能是训练时样本不够大。python3中的导入训练好的模型需要使用model中的keyedvector的方法进行导入。


Numpy


Python的数学工具库,其中包括常用的数学公式及矩阵,在使用算法模型时,有些需要将数据转为矩阵。


Scikit-learn


目前最常用的机器学习库。库里包含了常用是机器学习算法。主要用使用了DBSCAN对词向量进行聚类,但是效果不佳。


matplotlib


Python的作图工具库,功能强大,项目中做词云


Wordclound


做词云用的工具库,也算是经常会用的一种工具库。


          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程