比赛链接:https://www.kesci.com/home/competition/5cb80fd312c371002b12355f

预选赛题——文本情感分类模型
本预选赛要求选手建立文本情感分类模型,选手用训练好的模型对测试集中的文本情感进行预测,判断其情感为「Negative」或者「Positive」。所提交的结果按照指定的评价指标使用在线评测数据进行评测,达到或超过规定的分数线即通过预选赛。
比赛数据
数据样本格式:

其中,训练集的样本规模为6328,测试集的样本规模为2712。为保证比赛结果的真实性。每周一中午12点,将替换为新的测试集数据,供队伍答题使用。
提交结果
选手提交.csv的结果文件,文件名可以自定义,但文件内的字段需要对应。其中,ID表示文本唯一标识,pred表示预测该条文本的情感状态是否为「Positive」。

结果文件的内容示例:

解答
这个题目我是当作了一个二分类问题,之前参加比赛使用过Fasttext感觉还不错,就想到了用这个尝试一下,下面附上代码。(没有系统学习过Python和机器学习,代码有些丑,见谅)

首先是预处理,去掉数据集中的符号并且将数据转化为fasttext要求的格式。
fasttext的使用较为简单,要求的格式为 “内容xxxxxx __label__标签"

import re
import fasttext
import pandas as pd
from sklearn.model_selection import train_test_split# train处理
train_pre = open('../data/train_pre.csv', 'w', encoding='utf-8')
cnt = 0
for line in open('../data/train.csv', 'r'):  # 打开文件cnt = cnt + 1if cnt == 1:train_pre.write('review,label\n')line = line.replace('ID,review,label', '')line = line.replace('\r', '')  # 替换换行符line = line.replace(',', '')line = line.replace('\n', '')if (line == '\n'):line = ''comp = re.compile('[^A-Z^a-z\n ]')line = comp.sub('', line)line = line.replace('Positive', ', __label__Positive\n')line = line.replace('Negative', ', __label__Negative\n')train_pre.write(line)

之后就可以愉快地调用fasttext啦,不过为了训练效果更好,我使用train_test_split进行乱序划分测试集和训练集,以便查看分类效果。代码如下

data = pd.read_csv('../data/train_pre.csv')
x = data['review']
y = data['label']
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=12345)
train_true = open('../data/train_true.csv', 'w', encoding='utf-8')
for i in zip(x_train, y_train):t = str(i[0]) + ' ' + str(i[1]) + '\n'train_true.write(t)
train_true = open('../data/train_test.csv', 'w', encoding='utf-8')
for i in zip(x_test, y_test):t = str(i[0]) + ' ' + str(i[1]) + '\n'train_true.write(t)

之后就是真正地调用fasttext进行分类了

classifier = fasttext.supervised('../data/train_true.csv', 'classifier.model')
result = classifier.test('../data/train_test.csv')
print("准确率:", '{:.2%}'.format(result.precision))

由于比赛还没结束,supervised涉及到很多参数调整可以优化分类效果,这里我就不公布参数了。
分享一个fasttext的参数介绍:https://blog.csdn.net/qq_32023541/article/details/80845913

最后,调用训练好的模型对测试集进行预测并保存

import fasttext
import pandas as pd
import reclassifier = fasttext.load_model("classifier.model.bin", label_prefix="__label__")
test = pd.read_csv('../data/test.csv', header=0)
t = list(test['review'])
print(t)
comp = re.compile('[^A-Z^a-z\n ]')
num = 0
result = open('../data/result.csv', 'w', encoding='utf-8')
result.write('ID,Pred\n')
for i in t:num = num + 1line = comp.sub('', i)pred = classifier.predict_proba([line], 1)myType = pred[0][0][0]myPrec = pred[0][0][1]if myType == 'Negative':myPrec = 1 - myPrecresult.write(str(num)+','+str(round(myPrec,6))+'\n')

提交通过

祝各位比赛顺利~

另外附上我之前在服创比赛的博客链接,欢迎大家
https://blog.csdn.net/qq_36178727/article/details/89712858

【Kesci】【预选赛】2019中国高校计算机大赛——大数据挑战赛(基于FastText的文本情感分类)相关推荐

  1. 【Kesci】【正式赛】2019中国高校计算机大赛——大数据挑战赛(基于FastText的新闻点击率预测qauc=0.558)

    比赛连接 https://www.kesci.com/home/competition/5cc51043f71088002c5b8840 正式赛题--文本点击率预估(5月26日开赛) 搜索中一个重要的 ...

  2. 【预选赛】2019中国高校计算机大赛——大数据挑战赛

    # -*- coding: UTF-8 -*- import pandas as pd import numpy as np import re from bs4 import BeautifulSo ...

  3. 2016中国高校计算机大赛——大数据挑战赛极客奖:COM团队

    摘要:2016中国高校计算机大赛--大数据挑战赛是由教育部和全国高等学校计算机教育研究会联合主办,清华大学和阿里云联合承办,在"天池大数据众智平台"上开展的高端算法竞赛.本次赛题是 ...

  4. 2018中国高校计算机大赛—大数据挑战赛(top2解题方案)

    比赛链接:https://www.kesci.com/home/competition/5ab8c36a8643e33f5138cba4/leaderboard/1 相关链接:https://mp.w ...

  5. 全球最大的AI创意梦工厂!2019中国高校计算机大赛-人工智能创意赛开始报名啦!...

    寻找"最创意"的 AI 新锐! 做"最技术"的创意发现! 提供"最豪华"的资源支持! 争夺"最丰厚"的竞赛奖励! 每一个 ...

  6. 2019年计算机网络管理员大赛,【重磅】信息工程学院代表队入围2019年中国高校计算机大赛网络技术挑战赛晋级赛...

    在7月22日结束的2019年中国高校计算机大赛网络技术挑战赛选拔赛中,由信息工程学院物联网应用工程实验室李浩教授指导的2支代表队经过激烈角逐,在参赛的1317支队伍中脱颖而出,2支代表队分别荣获一等奖 ...

  7. 中南大学计算机学院竞赛,中南大学AIMADS团队获2019中国高校计算机大赛-人工智能创意赛特等奖...

    本网讯 11月23日,2019中国高校计算机大赛-人工智能创意赛(C4-AI)全国总决赛在浙江德清举行.由我校自动化学院谢斌副教授指导,19级博士生何小宇.18级硕士生丘文杰.19级硕士生孙铭蔚三位同 ...

  8. 2020中国高校计算机大赛网络技术挑战赛,中国高校计算机大赛-网络技术挑战赛的新跨越...

    原标题:中国高校计算机大赛-网络技术挑战赛的新跨越 导语 摩课云竞赛平台助力中国高校计算机大赛-网络技术挑战赛,实现高校竞赛新跨越. 中国高校计算机大赛-网络技术挑战赛 9月15日,2019" ...

  9. 中国高校计算机大赛--网络技术挑战赛(C4-Network Technology Challenge)

    2022 年第七届"中国高校计算机大赛-网络技术挑战赛"规程 2022 年"中国高校计算机大赛-网络技术挑战赛" 竞赛规程 一. 制定依据 中国高校计算机大赛( ...

最新文章

  1. 业界丨2018,人工智能革命走向风口浪尖
  2. 数据库索引类型及实现方式
  3. python课件_讲座直播 | Python在线课堂第二周
  4. python中处理日期和时间的标准模块是-Python time模块参考手册
  5. android 高级画布绘图
  6. JVM 面试题 87 题详解
  7. L 1 ,L 2 参数正则化
  8. contentprovider java_创建Contentprovider,
  9. Kafka 源码解析:Server 端的运行过程
  10. 10个精妙的Java编码最佳实践
  11. [转][.NET 基于角色安全性验证] 之一:基础知识
  12. 郭天祥的10天学会51单片机_第六节
  13. 一款备受九零后喜爱的独特界面,VC++屏幕保镖(锁屏程序)附源码
  14. C语言 负数对正数取余,负数取余/整除,Python和C语言的不同
  15. 计算机重做系统有什么好处,电脑卡重装系统有用吗|电脑太卡可以重装系统解决吗...
  16. 修改docker ip网段
  17. 小游戏——打鱼还是晒网
  18. 企业级 zabbix 监控项目实战
  19. Linux内核cgroup使用介绍
  20. fastadmin后台多表联查

热门文章

  1. SAP MRP元素代码、描述、缩写及元素说明(中文)
  2. html5_禁止复制网站内容
  3. 逻辑为基、数企赋能(NO.3)-逻辑定律
  4. IplImage的使用
  5. 修改 Zynq 7000 系列 CPU 主频到 800HMz(7045 和 7100)
  6. 大白话系列之 —— 一语点破Java中的静态static关键字
  7. LoRa扩频技术RF芯片SX1276
  8. java生成一维码和二维码,mybatis原理和实现机制
  9. Springer 或者 IJCV 期刊 Latex 参考文献排版溢出,以及插入图片颜色失真,变色等问题的解决方案
  10. 2023劲牌持正堂药业合作商大会成功召开