Python SnowNLP情感分析实践与优化总结

Python SnowNLP情感分析实践与优化总结,第1张

由于语料缺乏,前期若使用到情感分析,建议暂时使用SnowNLP(此模块主要使用淘宝评论语料)做情感挖掘,但不仅仅为单纯调用,需要优化,下面是一些实践思考:

可在此基础上优化,比如文本需要特别处理,除了平常的去停用词外,还可以需要对输入的文本结合词性等进行处理。

下面是一些常识:

一)无情感的词语(如去停用词,去掉语气词,无词性标签的词语)

二)对于文本过长,则可以考虑提取关键词或抽取文本摘要后再提取关键词

对于后者实践结果差异明显:

以"发布了头条文章: 《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显 "为例子, 显然该文本为“积极”文本。

1)s = SnowNLP("发布了头条文章:《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显")

得分为05,明显不符合

2)s = SnowNLP(“ ”join(jiebaanalysetextrank("发布了头条文章:《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显")))

而对于文本特别长的,则可以先抽取摘要,再对摘要提取关键词。

这主要由于此SnowNLP主要用贝叶斯机器学习方法进行训练文本,机器学习在语料覆盖上不够,特征上工程处理不当会减分,也没考虑语义等。

为何要考虑语义层面:

以“ 苏宁易购,是谁给你们下架OV的勇气” 中的“ 下架”其实才是中心词(为表达愤怒的文本),但“ 勇气 ”为下架的宾语(其为积极的文本),此句应该结果小于05,但实际为088,去掉“苏宁易购”则为06>

重要的不是选择,我觉得你这种情况不管怎么选,都会有遗憾。

因为生活中肯定有摩擦,都会有对比,到时候又容易假想是不是当时跟她或者他在一起会不一样,但是人生没有如果,遵从自己的内心,选择更愿意去陪伴的人,然后把生活尽量过得有诗意才是更有水平和有意思的。

情感分析:

其实每个人都有各自的闪光点,但是你的内心深处绝对有一个标准答案的,谁更适合你们长久在一起,谁更适合你们以后结婚。其实心里已经能察觉到,尤其是能感觉掉最需要那个人,因为大家认为如果一开始足够喜欢第一个人,第一个人适合你的话,第二个人出现的时候你可能就不会出现了犹豫。所以关键点就在于你那2个人哪个对你是最好的选择。

预测股票市场是机器学习算法的一个常见应用场景之一。下面是一些常见的利用机器学习算法进行股票市场预测的方法:

基于技术指标的预测:技术指标是反映市场情况的量化指标,如均线、MACD等。可以通过机器学习算法对这些指标进行分析,从而预测股票价格的走势。

基于基本面的预测:基本面是指股票所属公司的财务状况、行业发展情况等方面的信息。可以通过机器学习算法对这些基本面进行分析,从而预测股票价格的走势。

基于情感分析的预测:情感分析是指通过对股票相关新闻、社交媒体等信息的情感判断,预测股票价格的走势。

基于深度学习的预测:深度学习算法可以自动学习股票市场中的规律和趋势,通过对历史数据进行训练,预测未来股票价格的走势。

需要注意的是,股票市场是一个复杂的系统,预测股票价格的走势需要考虑多种因素,包括宏观经济环境、政策因素、行业发展趋势等,因此机器学习算法的预测结果并不是完全准确的,投资者需要在风险控制的基础上进行决策。

自然语言处理(NLP)在去去几年中已经有了惊人的进展,未来的前景也非常广阔。下面是一些可能的发展方向:

更智能的虚拟助手:随着技术的进步,虚拟助手将变得更加智能化,能够更好地理解和响应人类语言,为用户提供更加精准的服务。

2 情感分析和情感识别:情感分析和情感识别能够帮助企业了解用户的情感状态,从而更好地理解他们的需求,为用户提供更加个性化的服务。

3 机器翻译:机器翻译是NLP领域的重要领域之一,未来的机器翻译技术将变得更加智能化,能够更好地理解上下文,从而实现更加准确的翻译。 

4 自然语言生成:自然语言生成是指让计算机自动生成自然语言文本,未来的自然语言生成技术将变得更加智能化,能够生成更加流畅、清晰、自然的文本。

总而言之,随着技术的不断进步,自然语言处理在未来的发展前景非常广阔,将为人们的生活和工作带来更多的便利和创新。

写周报

查文献

聊食谱

码代码

写作文

写小说

本次实验将加载两个数据,一个是已经标注好的用户评论数据,另外一个是用户评价主题句,通过标注过的用户评论数据进行基于集成模型的情感极性模型训练,然后利用模型对主题句进行情感极性推理,最后通过数据聚合可视化得出主题情感极性。

使用 Pandas 加载在线数据表格,并查看数据维度和前 5 行数据。

数据属性如下表所示

加载我们之前通过主题词典提取出来的主题句。

数据属性如下表所示

用户评论分词

jieba 分词器预热,第一次使用需要加载字典和缓存,通过结果看出返回的是分词的列表。

批量对用户评价进行分词,需要一些时间,并打印第一行情感极性训练集的分词结果。

批量对用户评价主题句进行分词,并打印第一句用户主题句分词结果。

依据统计学模型假设,假设用户评论中的词语之间相互独立,用户评价中的每一个词语都是一个特征,我们直接使用 TF-IDF 对用户评价提取特征,并对提取特征后的用户评价输入分类模型进行分类,将类别输出为积极的概率作为用户极性映射即可。

用户评论向量化

TF-IDF 是一种用于信息检索与数据挖掘的常用加权技术,当某个词在文章中的TF-IDF越大,那么一般而言这个词在这篇文章的重要性会越高,比较适合对用户评论中的关键词进行量化。

数据集合划分

按照训练集 8 成和测试集 2 成的比例对数据集进行划分,并检查划分之后的数据集数量。

我们在系列实验的开始使用朴素贝叶斯模型来训练情感分析模型,下面我们新增逻辑回归模型作为对比模型。逻辑回归(Logistic Regression)是一种用于解决二分类问题的机器学习方法,在线性回归的基础上,套用了一个 sigmod 函数,这个函数将线性结果映射到一个概率区间,并且通常以 05 分界线,这就使得数据的分类结果都趋向于在 0 和 1 两端,将用户评论进行向量化之后也可以用此方式预测用户情感。本实验直接对标注过的用户情感数据进行训练,并验证单一模型和集成模型在情感分析性能上的差异。

模型加载

通过传入原始的标签和预测的标签可以直接将分类器性能进行度量,利用常用的分类模型评价指标对训练好的模型进行模型评价,accuracy_score 评价被正确预测的样本占总样本的比例,Precision 是衡量模型精确率的指标,它是指模型识别出的文档数与识别的文档总数的比率,衡量的是模型的查准率。Recall 召回率也称为敏感度,它是指模型识别出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率,表示正样本在被正确划分样本中所占的比例,f1_score 值是精确率与召回率的调和平均数,是一个综合性的指数。

我们分别对不同模型使用相同的数据集进行训练和测试,以此来比较单模型之间的差异,并打印模型运行时间供大家参考,批量处理不同的模型需要一些时间进行计算,清耐心等待。

通过求得的指标进行模型评价,我们发现使用相同的数据进行模型训练,朴素贝叶斯模型和逻辑回归模型性能基本持平,相差很微弱,逻辑回归稍稍占一些优势。

Stacking 堆栈模型训练

集成学习是地结合来自两个或多个基本机器学习算法的优势,学习如何最好地结合来自多个性能良好的机器学习模型的预测结果,并作出比集成中的任何一个模型更好的预测。主要分为 Bagging, Boosting 和 Stacking,Stacking 堆栈模型是集成机器学习模型的一种,具体是将训练好的所有基模型对整个训练集进行预测,然后将每个模型输出的预测结果合并为新的特征,并加以训练。主要能降低模型的过拟合风险,提高模型的准确度。

开始对两个模型进行集成训练,训练的时间要比单一模型时间久一些,清耐心等待。

评测结果收集。

结果分析

将结果存入 Dataframe 进行结果分析,lr 表示逻辑回归,nb 表示朴素贝叶斯,model_stacking 将两个单模型集成后的模型。从结果来看集成模型准确度和 f1 值都是最高的,结合两个模型的优势,整体预测性能更好,鲁棒性更好。

样例测试

通过测试样例发现,分类器对正常的积极和消极判断比较好。但是当我们改变语义信息,情感模型则不能进行识别,模型鲁棒性较差。作为早期的文本分类模型,我们使用 TFIDF 的特征提取方式并不能很好的解决语义问题,自然语言是带有语序和语义的关联,其词语之间的关联关系影响整句话的情感极性,后续我们继续试验深度情感分析模型研究解决此类问题。

加载民宿主题数据。

模型预测

将情感分析模型推理的结果写入 DataFrame 中进行聚合。

单主题聚合分析

挑选一个主题进行主题情感分析。

对民宿“设施”进行描述统计,此次我们使用主题词典的出来的用户关于民宿“设施”主体的讨论条数为 4628 条,平均用户情感极性为 040 表示为整体呈现不满意的情况,有超过一半的关于“设施”的民宿评论中表现用户不满意的情况,重庆民宿需要在“设施”进行改善,以此提高用户满意度。

单主题情感极性可视化

我们开始进行“设置”主题下的用户主题情感进行可视化,首先加载画图模块。

对“设施”主题下的用户情感极性进行可视化,我们利用集成模型对主题句进行情感极性预测,如下所示。

svm意思是支持向量机。

svm的解释:

支持向量机(Support Vector Machine,SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。

svm的性质:

SVM的优化问题同时考虑了经验风险和结构风险最小化,因此具有稳定性。从几何观点,SVM的稳定性体现在其构建超平面决策边界时要求边距最大,因此间隔边界之间有充裕的空间包容测试样本。

SVM使用铰链损失函数作为代理损失,铰链损失函数的取值特点使SVM具有稀疏性,即其决策边界仅由支持向量决定,其余的样本点不参与经验风险最小化。在使用核方法的非线性学习中,SVM的稳健性和稀疏性在确保了可靠求解结果的同时降低了核矩阵的计算量和内存开销。

svm的应用:

1、垃圾邮件过滤

对于电子邮件服务提供商来说,筛选垃圾邮件是一个重要的任务。SVM可以将邮件内容中的特征(如单词、短语、文本长度等)与已标记的训练数据进行学习,然后根据这些特征将邮件自动分类为垃圾邮件或非垃圾邮件。

2、情感分析

在社交媒体和在线评论等环境中,情感分析可以帮助组织和个人了解对于特定主题或产品的用户情感倾向。SVM可以根据文本中的词语、词频、情感词等特征,对文本进行分类为正面、负面或中性情感。

3、图像分类

SVM可以用于将输入的图像自动分类到不同的类别中。在图像分类任务中,首先需要对图像进行特征提取,可以使用特征描述符如SIFT、HOG等。然后,将提取的特征作为输入,训练一个支持向量机模型来学习各个类别之间的分界面,最终对新的图像进行分类。

一、一般处理流程

语料获取 -> 文本预处理 -> 特征工程 -> 特征选择

1、语料获取

即需要处理的数据及用于模型训练的语料。

数据源可能来自网上爬取、资料积累、语料转换、OCR转换等,格式可能比较混乱。需要将url、时间、符号等无意义内容去除,留下质量相对较高的非结构化数据。

2、文本预处理

将含杂质、无序、不标准的自然语言文本转化为规则、易处理、标准的结构化文本。

①处理标点符号

可通过正则判定、现有工具(zhon包)等方式筛选清理标点符号。

②分词

将连续的自然语言文本,切分成具有语义合理性和完整性的词汇序列的过程。

一般看来英文较容易可通过空格符号分词,中文相对复杂,参考结巴分词、盘古分词、Ansj等工具。

常见的分词算法有:基于字符串匹配的分词方法、基于理解的分词方法、基于统计的分词方法和基于规则的分词方法,每种方法下面对应许多具体的算法。

③词性标注

为自然语言文本中的每个词汇赋予一个词性的过程,如名词、动词、副词等。可以把每个单词(和它周围的一些额外的单词用于上下文)输入预先训练的词性分类模型。

常用隐马尔科夫模型、N 元模型、决策树

④stop word

英文中含大量 a、the、and,中文含大量 的、是、了、啊,这些语气词、助词没有明显的实际意义,反而容易造成识别偏差,可适当进行过滤。

⑤词形还原

偏向于英文中,单数/复数,主动/被动,现在进行时/过去时/将来时等,还原为原型。

⑥统计词频

因为一些频率过高/过低的词是无效的,对模型帮助很小,还会被当做噪声,做个词频统计用于停用词表。

⑦给单词赋予id

给每一个单词一个id,用于构建词典,并将原来的句子替换成id的表现形式

⑧依存句法分析

通过分析句子中词与词之间的依存关系,从而捕捉到词语的句法结构信息(如主谓、动宾、定中等结构关系),并使用树状结构来表示句子的句法结构信息(如主谓宾、定状补等)。

3、特征工程

做完语料预处理之后,接下来需要考虑如何把分词之后的字和词语表示成计算机能够计算的类型。

如果要计算我们至少需要把中文分词的字符串转换成数字,确切的说应该是数学中的向量。有两种常用的表示模型分别是词袋模型和词向量。

①词向量

词向量是将字、词语转换成向量矩阵的计算模型。目前为止最常用的词表示方法是 One-hot,这种方法把每个词表示为一个很长的向量。

②词袋模型

即不考虑词语原本在句子中的顺序,直接将每一个词语或者符号统一放置在一个集合(如 list),然后按照计数的方式对出现的次数进行统计。统计词频这只是最基本的方式,TF-IDF 是词袋模型的一个经典用法。

常用的表示模型有:词袋模型(Bag of Word, BOW),比如:TF-IDF 算法;词向量,比如 one-hot 算法、word2vec 算法等。

4、特征选择

在文本挖掘相关问题中,特征工程也是必不可少的。在一个实际问题中,构造好的特征向量,是要选择合适的、表达能力强的特征。

举个自然语言处理中的例子来说,我们想衡量like这个词的极性(正向情感还是负向情感)。我们可以预先挑选一些正向情感的词,比如good。然后我们算like跟good的PMI,用到点互信息PMI这个指标来衡量两个事物之间的相关性。

特征选择是一个很有挑战的过程,更多的依赖于经验和专业知识,并且有很多现成的算法来进行特征的选择。目前,常见的特征选择方法主要有 DF、 MI、 IG、 CHI、WLLR、WFO 六种。

5、模型训练

在特征向量选择好了以后,接下来要做的事情是根据应用需求来训练模型,我们使用不同的模型,传统的有监督和无监督等机器学习模型,如 KNN、SVM、Naive Bayes、决策树、GBDT、K-means 等模型;深度学习模型比如 CNN、RNN、LSTM、 Seq2Seq、FastText、TextCNN 等。这些模型在分类、聚类、神经序列、情感分析等应用中都会用到。

当选择好模型后,则进行模型训练,其中包括了模型微调等。在模型训练的过程中要注意由于在训练集上表现很好,但在测试集上表现很差的过拟合问题以及模型不能很好地拟合数据的欠拟合问题。同时,也要防止出现梯度消失和梯度爆炸问题。

6、模型评估

在机器学习、数据挖掘、推荐系统完成建模之后,需要对模型的效果做评价。模型的评价指标主要有:错误率、精准度、准确率、召回率、F1 值、ROC 曲线、AUC 曲线等。

7、投产上线

模型的投产上线方式主要有两种:一种是线下训练模型,然后将模型进行线上部署提供服务;另一种是在线训练模型,在线训练完成后将模型 pickle 持久化,提供对外服务。

三、NLP应用方向

1、命名实体识别

指识别自然语言文本中具有特定意义的实体,主要包括人名、地名、机构名、时间日期等。

传统机器学习算法主要有HMM和CRF,深度学习常用QRNN、LSTM,当前主流的是基于bert的NER。

2、情感分析

文本情感分析和观点挖掘(Sentiment Analysis),又称意见挖掘(Opinion Mining)是自然语言处理领域的一个重要研究方向。简单而言,是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程。

情感分析技术可以分为两类,一类是基于机器学习的方法,通过大量有标注、无标注的主观语料,使用统计机器学习算法,通过提取特征,进行文本情感分析。另一类是基于情感词典的方法,根据情感词典所提供的词的情感极性(正向、负向),从而进行不同粒度的(词语、短语、属性、句子、篇章)下的文本情感分析。

3、文章标签

文章标签是利用机器学习算法,对文章进行文字和语义的分析后,提取出若干个重要的词或者短语(关键短语)。关键短语是NLP基础的算法模块,有了关键短语,能为后续的搜索、推荐等更高级的应用提供有力的抓手。

适用场景:1、个性化推荐:通过对文章的标签计算,结合用户画像,精准的对用户进行个性化推荐;2、话题聚合:根据文章计算的标签,聚合相同标签的文章,便于用户对同一话题的文章进行全方位的信息阅读;3、搜索:使用中心词可以对query进行相似度计算、聚类、改写等,可以用于搜索相关性计算。

4、案件串并

①信息抽取

运用实体抽取、关系抽取,从案情中抽取关键信息,如从警情中可以抽取报警人项目、报警人电话、案发地址等信息

②实体对齐

相同的实体在不同的案情中会有不同的表述,会给串并带来困难。可针对地址、人名、组织名进行对齐处理。

③文本聚类

对于关键片段类信息,无法像实体那样对齐,需要借助文本聚类技术进行关联。

④构建图谱

将信息抽取结果存入图谱。每个警情id对应一个节点,实体、属性、关键片段作为节点,对齐的实体、同一类的文本存为同一个节点。

除了来自于从警情中抽取的信息,还可以将其他警务系统中存在的结构化数据导入(如来自户籍信息的人物关系),从而丰富图谱。

⑤图谱检索

完成以上工作,即完成了案件串并的必要基础建设,接下来通过图谱的查询功能自动完成案件的串并。首先需要设定串并的条件,案件串并的条件在警务实战中已有很多的积累,如“具有相似的作案手段”,又如“相似作案手段,嫌疑人有共同联系人”,只需要将这些条件用图谱查询语言表达出来。

什么是Cha Fan接口?

Cha Fan是一种用于中文文本相似度计算的开放式接口。Cha Fan接口使用了自然语言处理(Natural Language Processing,NLP)技术,以及先进的机器学习算法,能够对中文文本进行数据挖掘和信息提取。通过Cha Fan接口,用户可以快速、准确地比较两个中文文本的相似度,并且可以获得文本的实体信息、文本摘要、情感分析等多种信息。

Cha Fan的主要功能

Cha Fan接口主要针对中文文本的处理和分析,具有以下主要功能:

1相似度计算

通过Cha Fan接口,用户可以快速比较两个中文文本的相似度。相似度计算是Cha Fan接口的核心功能,能够通过计算两个文本的相似度分值来判断它们在意义上的相似程度。相似度计算可以被广泛应用于搜索引擎、信息检索、文本分类、文本聚类等领域。

2实体识别

Cha Fan接口可以自动识别文本中出现的人名、地名、机构名等实体,并将其标注出来。实体识别是Cha Fan接口的一个重要功能,通过实体识别可以方便用户获取文本中的实际信息。实体识别技术可以被广泛应用于舆情分析、热点事件监测、广告推荐等领域。

3情感分析

Cha Fan接口可以对一段中文文本进行情感分析,以判断其中所表达的情感是正面的、负面的还是中性的。情感分析是指通过对文本进行分析,来判断文本所表达的情感倾向。情感分析可以广泛应用于舆情分析、品牌营销、疾病监测等领域。

结论

总之,Cha Fan接口是一种强大的中文文本分析工具,它可以帮助用户快速、准确地处理中文文本,并从中提取有用的信息。随着中文互联网的普及和中文文本数据量的增加,Cha Fan接口将会越来越受到广大用户的青睐。

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/qinggan/867560.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-10
下一篇2023-07-10

发表评论

登录后才能评论

评论列表(0条)

    保存