竞赛|商品评论情感预测

这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战

引入

一看题目,商品评论情感预测,咋这么熟悉呢,上学期我的机器学习大作业不就是大众点评的评论情感分析嘛。评论情感分析,说的这么玄乎其实就是文本分类。这道题的情感力度更细一些,是五分类。五分类较二分类难度大大增加了。

题目介绍

image.png

数据介绍

  • 本数据集包括52 万件商品,1100 多个类目,142 万用户,720 万条评论/评分数据

  • 本次练习赛所使用数据集基于JD的电商数据,来自WWW的JD.com E-Commerce Data,并且针对部分字段做出了一定的调整,所有的字段信息请以本练习赛提供的字段信息为准

  • 评分为[1,5] 之间的整数

训练集:

字段 数据 说明
数据ID string 每条数据的唯一id,例如TRAIN_0
用户ID int 用户 id (从 0 开始,连续编号)
商品ID string 即 products.csv 中的 productId
评论时间戳 int 评分的时间戳
评论标题 string 评论的标题
评论内容 string 评论的内容
评分 int 评分,[1,5] 之间的整数
字段 说明
数据ID 每条数据的唯一id,例如TRAIN_0
用户ID 用户 id (从 0 开始,连续编号)
商品ID 即 products.csv 中的 productId
评论时间戳 评分的时间戳
评论标题 评论的标题
评论内容 评论的内容

评价指标

image.png

模型介绍

  • skep_ernie_1.0_large_ch

  • LSTM

  • lgb + tfidf + SMOTE

模型融合

遵循一下几条原则融合:

  1. 少数服从多数

  2. 意见不统一以ernie为准

def get_score(x):
    import collections
    nums = [x['ernie_score'],x['lgb_score'],	x['lstm_score']	]
    ans = []
    cnt = collections.Counter(nums)
    ans = 0
        
    for k, v in cnt.items():
        if v >=2:
            ans = k
            
    return ans if ans else x['ernie_score']
复制代码
df['score'] = df.apply(get_score,axis = 1)
复制代码

结果

Micro-F1 = 0.6541

排名:暂列第九

项目源码:

www.heywhale.com/mw/project/…

aistudio.baidu.com/aistudio/pr…

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享