NLP之TEA之NB/LoR:基于Kaggle IMDB影评数据集(国外类似豆瓣电影)利用NB和LoR算法实现情感分类

394 篇文章 281 订阅

NLP之TEA之NB/LoR:基于Kaggle IMDB影评数据集(国外类似豆瓣电影)利用NB和LoR算法实现情感分类

目录

相关文章

NLP之TEA之NB/LoR:基于Kaggle IMDB影评数据集(国外类似豆瓣电影)利用NB和LoR算法实现情感分类

NLP之TEA之NB/GBT:基于Kaggle IMDB影评数据集(国外类似豆瓣电影)利用朴素贝叶斯(count/tfidf+网格搜索+4fCrva)、梯度提升树(w2c+网格搜索+4fCrva)算法实现文本情感分析(情感二分类预测)

基于Kaggle IMDB影评数据集(国外类似豆瓣电影)利用NB和LoR算法实现情感分类

数据集下载

Dataset之IMDB影评数据集:IMDB影评数据集的简介、下载、使用方法之详细攻略

输出结果

核心代码


相关文章

NLP之TEA之NB/LoR:基于Kaggle IMDB影评数据集(国外类似豆瓣电影)利用NB和LoR算法实现情感分类

https://yunyaniu.blog.csdn.net/article/details/103817833

NLP之TEA之NB/GBT:基于Kaggle IMDB影评数据集(国外类似豆瓣电影)利用朴素贝叶斯(count/tfidf+网格搜索+4fCrva)、梯度提升树(w2c+网格搜索+4fCrva)算法实现文本情感分析(情感二分类预测)

https://yunyaniu.blog.csdn.net/article/details/88412012

基于Kaggle IMDB影评数据集(国外类似豆瓣电影)利用NB和LoR算法实现情感分类

数据集下载

Dataset之IMDB影评数据集:IMDB影评数据集的简介、下载、使用方法之详细攻略

输出结果

核心代码

#1、读取数据并做一些基本的预处理(比如说把评论部分的html标签去掉等等)
def review_to_wordlist(review):
    '''
    把IMDB的评论转成词序列
    '''
    review_text = BeautifulSoup(review,"lxml").get_text()  # 去掉HTML标签,拿到内容
    review_text = re.sub("[^a-zA-Z]"," ", review_text)   # 用正则表达式取出符合规范的部分
    words = review_text.lower().split()   # 小写化所有的词,并转成词list
    return words   # 返回words

# 使用pandas读入训练和测试csv文件
train = pd.read_csv('F:/File_Python/Resources/Kaggle Film critic emotion/labeledTrainData.tsv', header=0, delimiter="\t", quoting=3)
test = pd.read_csv('F:/File_Python/Resources/Kaggle Film critic emotion/testData.tsv', header=0, delimiter="\t", quoting=3 )
y_train = train['sentiment']  # 取出情感标签,positive/褒 或者 negative/贬
train_data = []               # 将训练和测试数据都转成词list
for i in range(0,len(train['review'])):
    train_data.append(" ".join(review_to_wordlist(train['review'][i])))
test_data = []
for i in range(0,len(test['review'])):
    test_data.append(" ".join(review_to_wordlist(test['review'][i])))
print(train_data)
print(y_train)

#2、特征处理:从数据里面拿到有区分度的特征,采用TF-IDF向量方法
from sklearn.feature_extraction.text import TfidfVectorizer as TFIV
# 初始化TFIV对象,去停用词,加2元语言模型
tfv = TFIV(min_df=3,  max_features=None, strip_accents='unicode', analyzer='word',token_pattern=r'\w{1,}', ngram_range=(1, 2), use_idf=1,smooth_idf=1,sublinear_tf=1, stop_words = 'english')

X_all = train_data + test_data  # 合并训练和测试集以便进行TFIDF向量化操作
len_train = len(train_data)

tfv.fit(X_all)    
X_all = tfv.transform(X_all)

X = X_all[:len_train]   # 恢复成训练集和测试集部分
X_test = X_all[len_train:]


# 3、利用NB算法,多项式朴素贝叶斯
from sklearn.naive_bayes import MultinomialNB as MNB

model_NB = MNB()
model_NB.fit(X, y_train) #特征数据直接灌进来
MNB(alpha=1.0, class_prior=None, fit_prior=True)

from sklearn.cross_validation import cross_val_score
import numpy as np
print ("多项式贝叶斯分类器20折交叉验证得分: ", np.mean(cross_val_score(model_NB, X, y_train, cv=20, scoring='roc_auc')))



#4、利用LoR算法
from sklearn.linear_model import LogisticRegression as LR
from sklearn.grid_search import GridSearchCV

# 设定grid search的参数
grid_values = {'C':[30]}  
# 设定打分为roc_auc
model_LR = GridSearchCV(LR(penalty = 'L2', dual = True, random_state = 0), grid_values, scoring = 'roc_auc', cv = 20) 
# 数据灌进来
model_LR.fit(X,y_train)
# 20折交叉验证,开始漫长的等待...
GridSearchCV(cv=20, estimator=LogisticRegression(C=1.0, class_weight=None, dual=True, 
             fit_intercept=True, intercept_scaling=1, penalty='L2', random_state=0, tol=0.0001),
        fit_params={}, iid=True, loss_func=None, n_jobs=1,
        param_grid={'C': [30]}, pre_dispatch='2*n_jobs', refit=True,
        score_func=None, scoring='roc_auc', verbose=0)
#输出结果
print (model_LR.grid_scores_)


相关文章推荐

NLP系列(4)_朴素贝叶斯实战与进阶

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Kaggle是一个开放的数据科学竞赛平台,它提供了丰富的数据集和机器学习问题,吸引了全球各地的数据科学家和机器学习爱好者参与其中。 其中一个有趣的竞赛是英文影评情感分类。这个问题的目标是根据给定的英文影评,判断该影评情感是积极还是消极。为了解决这个问题,参赛者需要利用机器学习和自然语言处理技术来构建模型,对影评进行分类。 在这个竞赛中,参赛者可以获得一个包含大量英文影评数据集。每个影评都会有一个情感标签,即积极或消极。参赛者需要使用这些标注好的数据来训练他们的模型,并最终对未标注的影评进行分类。 为了解决这个问题,参赛者可以使用各种机器学习算法和技术。一种常用的方法是使用文本分类算法,如朴素贝叶斯、支持向量机和深度学习模型,如卷积神经网络。这些算法可以提取影评中的特征,并将其用于分类。 完成模型的训练后,参赛者需要用测试集进行评估,并提交他们的预测结果。根据预测结果的准确性,评估指标通常是准确率、精确率和召回率等。 通过参与这个竞赛,参赛者能够学习到如何应用机器学习和自然语言处理技术解决实际问题。此外,他们还可以与其他数据科学家和机器学习爱好者交流和分享经验,进一步提高自己的技术。 总之,Kaggle的英文影评情感分类竞赛是一个有趣而具有挑战性的比赛,参赛者可以通过解决这个问题,提高自己的数据科学和机器学习技能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个处女座的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值