这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战
引入
一看题目,商品评论情感预测,咋这么熟悉呢,上学期我的机器学习大作业不就是大众点评的评论情感分析嘛。评论情感分析,说的这么玄乎其实就是文本分类。这道题的情感力度更细一些,是五分类。五分类较二分类难度大大增加了。
题目介绍
数据介绍
-
本数据集包括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 |
评论时间戳 | 评分的时间戳 |
评论标题 | 评论的标题 |
评论内容 | 评论的内容 |
评价指标
模型介绍
-
skep_ernie_1.0_large_ch
-
LSTM
-
lgb + tfidf + SMOTE
模型融合
遵循一下几条原则融合:
-
少数服从多数
-
意见不统一以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
排名:暂列第九
项目源码:
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END