句子情感分类
根据社交网络中的句子判断情感倾向
Link: https://www.kaggle.com/c/si650winter11
题目描述
UMICH SI650 情感分类是一个经典的NLP数据集。数据集中的句子全部来源于社交网络和博客,是带有情感色彩的主观性文本。本题的目的在于区分一句话的情感是“积极的”还是“消极的”。
小提示
- 本题的关键在于拿到文本后,如何构造词向量
- 词向量构造完毕后,根据词向量字典,将句子送入神经网络进行预测
先修技能
- 分词
- word2vec
- LSTM
输入格式
训练集train.csv包含5,668个记录,每个记录有两列,含义如下:
- sentence:句子的具体内容
- label: 句子的情感分类,1为积极情感,0为消极情感,即我们要预测的值
测试集test.csv包含1,418个记录,只包含sentence字段,label为需要预测的值,且预测值只能为0或1
输出格式
请按test集给出的顺序进行预测,具体格式如下:
sentence label
Ok brokeback mountain is such a horrible movie. 0
Brokeback Mountain was so awesome. 1
friday hung out with kelsie and we went and sa... 0
I am going to start reading the Harry Potter s... 1
Is it just me, or does Harry Potter suck?... 0
## 评价
你提交的`submission.csv`文件,将使用[准确率(accuracy)](https://www.zhihu.com/question/19645541)作为最后评判标准。
准确率(accuracy)是用来衡量算法预测结果的准确程度,具体指测试集中算法预测正确的数量占总数的比例。
$$ Accuracy=\frac{TP+TN}{TP+FN+FP+TN} $$
其中:
TP(True Positive)是将正类预测为正类的结果数目
FP(False Positive)是将负类预测为正类的结果数目
TN(True Negative)是将负类预测为负类的结果数目
FN(False Negative)是将正类预测为负类的结果数目
数据
train.csv: https://github.com/kdj842969/DataDescriptionBook/blob/master/UMICHSI650/train.csv
test.csv: https://github.com/kdj842969/DataDescriptionBook/blob/master/UMICHSI650/test.csv
result.csv: https://github.com/kdj842969/DataDescriptionBook/blob/master/UMICHSI650/result.csv (非公开)
sample_submission.csv: https://github.com/kdj842969/DataDescriptionBook/blob/master/UMICHSI650/sample_submission.csv
测评配置环境
python
pip install -U numpy
pip install pandas
pip install -U scikit-learn
测评代码
from sklearn.metrics import accuracy_score
import pandas as pd
y_test = pd.read_csv(os.path.join(DATA_DIR, "result.csv")) # 正确答案
y_pred = pd.read_csv(os.path.join(DATA_DIR, "submission.csv")) # 用户预测的答案
ac= accuracy_score(y_test['label'], y_pred['label']) # accuracy 在0到1之间,越大越好