朴素贝叶斯之自然语言语义分析(三):评论情感分类 - 差评、中评、好评

一、需求说明

(1)应用背景

我们在做用户画像的时候,需要获得用户对某商品、品牌的评价记录这样的事实标签。这个值获取很麻烦,不好根据一句标语得出一个分值

在这里插入图片描述
在这里插入图片描述

我们可以为评价的偏好得分,定义一个规则:

  • 好评 --> 得 5分
  • 中评 --> 得 0分
  • 差评 --> 得 - 5分
(2)带来的问题

业务系统中有大量的用户商品评价,存在于商品评论表中:

sku_id user_id comment
sku0001 user0008 穿的舒服,卖家发货挺快的,服务态度也很好
sku0001 user0006 东西质量不错,性价比高,特别轻便,舒适透气,宝贝与描述完全一致。
sku0002 user0003 版型挺好看的,穿起来挺合身的。这个价买到相当值!
sku0003 user0012 穿了没几天就坏了,客服还不理人,不会再买了!

如何让程序,输入一句评语后,能自动判别出是好评还是中评、差评呢?

无法通过sql编程实现,必须使用机器学习算法,比如朴素贝叶斯!


二、实现步骤

  1. 人工收集并标注样本训练集
  2. 开发朴素贝叶斯算法的模型训练程序
  3. 开发模型的预测程序并用测试数据进行模型效果评估
  4. 用调好的模型,去对未知数据进行预测分类

三、关键要点

(1)特征向量化方案
  • 中文分词:HanLP工具包、分词去噪 ★★★★★
  • 词特征位置映射:Hash映射
  • 词特征值选取:TF-IDF
(2)分类算法
  • 朴素贝叶斯算法
  • 预测评估 ★★

四、代码开干

(1)导入HanLP依赖

HanLP使用说明 -> 官网:http://www.hanlp.com/

<dependency>
    <groupId>com.hankcs</groupId>
    <artifactId>hanlp</artifactId>
    <version>portable-1.7.4</version>
</dependency>
(2)不要怂
package cn.ianlou.bayes
import java.util
import com.hankcs.hanlp.HanLP
import com.hankcs.hanlp.seg.common.Term
import org.apache.log4j.{
   Level, Logger}
import org.apache.spark.broadcast.Broadcast
import org.apache.spark.ml.classification.{
   NaiveBayes, NaiveBayesModel}
import org.apache.spark.ml.feature.{
   HashingTF, IDF, IDFModel}
import org.apache.spark.sql.{
   DataFrame, Dataset, Row,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值