kaggle 影评情感分析(1)—— TF-IDF+Logistic回归/朴素贝叶斯/SGD

前言

kaggle的这个starting competition (Bag of words meet bags of popcorns) 其实是一个word2vec-tutorial, 但是本篇文章没有用到 word2vec, 只用了 TF-IDF 的方式将句子向量化,再分别用logistic regression、multinomial Naive Bayes、 SGDClassifier 进行训练和预测。用LR得到的结果在kaggle上提交,得分是0.88+,排名已经将近300了。但是作为一个最初的尝试还是可以的,胜在简单。

简单介绍一下TF-IDF, TF是词频即一个词在其所处的句子里出现的频率,IDF(word) = log(N/N(word)+α),N是句子总数,N(word) 是出现了某个词的句子数,α是为了保证分母不为0。一个词的TF-IDF越大,说明这个词在所处的句子里出现频率很高,在其他句子里却不怎么出现,也就是说TF-IDF衡量了一个词能够在多大程度上代表他所处的这个句子。

代码实现

参考:https://github.com/jmsteinw/Notebooks/blob/master/NLP_Movies.ipynb

# coding: utf-8
import pandas as pd
import os
from lxml import etree
import re
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer as TFIV
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import GridSearchCV
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import SGDClassifier


#load the data
path = "H:\PyCharmProjects\Popcorn\data"
t_set_df = pd.read_csv(os.path.join(path,"labeledTrainData.tsv"), header=0, sep='\t')
test_df = pd.read_csv(os.path.join(path,"testData.tsv"), header=0, sep='\t'
  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值