如何做情感分析,以京东评论为例(jieba+sklearn)
来源:互联网 发布:手机淘宝店铺分类链接 编辑:程序博客网 时间:2024/06/07 10:10
1、引言
作为
我的自然语言处理的第一篇博客,就简单的给大家看看用jieba分词,提取特征,利用机器学习的算法做情感分析的过程,照样,我不多做说明,请看代码,代码有注释
2、介绍
我的文本
来自上一篇博客爬取的京东的评论,都放在了我的mysql库里面,所以这里我只要在mysql中提取我想要的数据就行
3、代码
import jiebaimport pymysqlimport collections, itertoolsimport nltk.classify.util, nltk.metricsimport nltkfrom nltk.corpus import movie_reviews, stopwordsfrom nltk.collocations import BigramCollocationFinderfrom nltk.metrics import BigramAssocMeasuresfrom nltk.probability import FreqDist, ConditionalFreqDistfrom sklearn.feature_extraction.text import CountVectorizerfrom sklearn.feature_extraction.text import TfidfTransformerdb = pymysql.connect('localhost', 'root', 'xin123456789', 'test')db.encoding = 'utf-8'cursor = db.cursor()cursor.execute('set names utf8')sql='SELECT * FROM newjd LIMIT 10000'cursor.execute(sql)results = cursor.fetchall()db.commit()cursor.close()db.close()total=[]#####去停用词stopwords = {}.fromkeys(['的', '包括' ,'等', '是',' ',',','。'])all=[]#####用jieba分词for row in results : allcon = jieba.cut(row[0], cut_all=False) allcon = list(allcon) all.append((allcon,row[1]))com=[]label=[]for content in all: com.append(' '.join(content[0])) label.append(content[1])train=com[:300000]trainlabel=label[:300000]test=com[300000:]testlabel=label[300000:]trainvectorizer = CountVectorizer()####转换为词频向量X = trainvectorizer.fit(train)x_=X.transform(train)from sklearn.feature_selection import SelectKBestfrom sklearn.feature_selection import chi2#####选择卡方值最大的1000个词做特征X_new = SelectKBest(chi2, k=1000).fit(x_, trainlabel)X_2=X_new.transform(x_)print(X_2.shape)testvectorizer = CountVectorizer(vocabulary=trainvectorizer.vocabulary_)test=X.transform(test)test=X_new.transform(test)##将词频向量转换为tfidf向量newtrain=traintfidf.transform(X_2)testidf= traintfidf.transform(test)print(newtrain)#查看数据结构 tfidf[i][j]表示i类文本中的tf-idf权重from sklearn import metricsfrom sklearn.naive_bayes import MultinomialNBimport numpy as npclf = MultinomialNB(alpha=0.01)clf.fit(newtrain, np.array(trainlabel))pred = clf.predict(testidf)print(pred)def calculate_result(actual,pred): m_precision = metrics.precision_score(actual,pred) m_recall = metrics.recall_score(actual,pred) print('predict info:' ) print(m_precision) print (m_recall) print (metrics.f1_score(testlabel,pred))calculate_result(testlabel,pred)####svmfrom sklearn.svm import SVCprint ('*************************\nSVM\n*************************')svclf = SVC(kernel = 'linear')#default with 'rbf'svclf.fit(newtrain,trainlabel)pred = svclf.predict(testidf)calculate_result(testlabel,pred)
阅读全文
0 0
- 如何做情感分析,以京东评论为例(jieba+sklearn)
- 苹果手机评论情感分析
- 电影评论情感分析 keras
- 京东商品评论情感分析:数据采集与词向量构造方法
- sklearn源码解析:ensemble模型 零碎记录;如何看sklearn代码,以tree的feature_importance为例
- 怎样做情感分析
- 怎样做情感分析
- 基于机器学习的NLP情感分析(一)---- 数据采集与词向量构造方法(京东商品评论情感分析)
- 如何使用Stanford CoreNlp做中文情感分析
- 商品评论中的实体情感分析
- kaggle 电影评论情感分析 贝叶斯分类
- 电影评论人名抽取与情感分析
- 京东评论情感分类器(基于bag)
- python机器学习----利用sklearn进行情感分析
- 如何科学地蹭热点:用python爬虫获取热门微博评论并进行情感分析
- [NLP]如何进行情感分析
- 电商产品评论数据情感分析代码详解
- 基于R语言对用户评论进行情感分析
- 实用css效果
- JSP 实现 之 读取数据库显示图片
- linux中top和查看程序占用
- dp——vijos1322 解题
- 第六章 跟踪用户动作
- 如何做情感分析,以京东评论为例(jieba+sklearn)
- 开源应用架构之asterisk
- Maven3.5.0错误备忘
- Ubuntu16.04LTS 安装php5.6开发环境
- CollapsingToolbarLayout配合CoordinatorLayout、AppBarLayout,RecyclerView实现伸缩布局
- 这些人的资料多值得去学习
- 第七章 构建在线商店
- 反转链表
- 修改eclipse的默认jdk版本