日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 爬取京東指定商品評論并進行情感分析

瀏覽:181日期:2022-06-14 16:54:51
目錄項目地址運行環境運行方法數據爬取(jd.comment.py)模型訓練(train.py)情感分析(sentiment.analysis.py)詞云輪廓圖商品評論詞云情感分析結果可視化項目地址

https://github.com/DA1YAYUAN/JD-comments-sentiment-analysis

爬取京東商城中指定商品下的用戶評論,對數據預處理后基于SnowNLP的sentiment模塊對文本進行情感分析。

運行環境 Mac OS X Python3.7 requirements.txt Pycharm 運行方法數據爬取(jd.comment.py) 啟動jd_comment.py,建議修改jd_comment.py中變量user-agent為自己瀏覽器用戶代理 輸入京東商品完整URL 得到京東評論詞云,存放于jd_ciyun.jpg(詞云輪廓形狀存放于jdicon.jpg) 得到京東評論數據,存放于jd_comment.csv

import osimport timeimport jsonimport randomimport csvimport reimport jiebaimport requestsimport numpy as npfrom PIL import Imageimport matplotlib.pyplot as pltfrom wordcloud import WordCloud# 詞云形狀圖片WC_MASK_IMG = ’jdicon.jpg’# 評論數據保存文件COMMENT_FILE_PATH = ’jd_comment.txt’# 詞云字體WC_FONT_PATH = ’/Library/Fonts/Songti.ttc’def spider_comment(page=0, key=0): ''' 爬取京東指定頁的評價數據 :param page: 爬取第幾,默認值為0 ''' url = ’https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv4646&productId=’ + key + ’’ ’&score=0&sortType=5&page=%s&pageSize=10&isShadowSku=0&fold=1’ % page kv = {’user-agent’: ’Mozilla/5.0’, ’Referer’: ’https://item.jd.com/’+ key + ’.html’}#原本key不輸入值,默認為《三體》 try:r = requests.get(url, headers=kv)r.raise_for_status() except:print(’爬取失敗’) # 截取json數據字符串 r_json_str = r.text[26:-2] # 字符串轉json對象 r_json_obj = json.loads(r_json_str) # 獲取評價列表數據 r_json_comments = r_json_obj[’comments’] # 遍歷評論對象列表 for r_json_comment in r_json_comments:# 以追加模式換行寫入每條評價with open(COMMENT_FILE_PATH, ’a+’) as file: file.write(r_json_comment[’content’] + ’n’)# 打印評論對象中的評論內容print(r_json_comment[’content’])def batch_spider_comment(): '''批量爬取某東評價''' # 寫入數據前先清空之前的數據 if os.path.exists(COMMENT_FILE_PATH):os.remove(COMMENT_FILE_PATH) key = input('Please enter the address:') key = re.sub('D','',key) #通過range來設定爬取的頁面數 for i in range(10):spider_comment(i,key)# 模擬用戶瀏覽,設置一個爬蟲間隔,防止ip被封time.sleep(random.random() * 5)def cut_word(): ''' 對數據分詞 :return: 分詞后的數據 ''' with open(COMMENT_FILE_PATH) as file:comment_txt = file.read()wordlist = jieba.cut(comment_txt, cut_all=False)#精確模式wl = ' '.join(wordlist)print(wl)return wldef create_word_cloud(): '''44144127306 生成詞云 :return: ''' # 設置詞云形狀圖片 wc_mask = np.array(Image.open(WC_MASK_IMG)) # 設置詞云的一些配置,如:字體,背景色,詞云形狀,大小 wc = WordCloud(background_color='white', max_words=2000, mask=wc_mask, scale=4, max_font_size=50, random_state=42, font_path=WC_FONT_PATH) # 生成詞云 wc.generate(cut_word()) # 在只設置mask的情況下,你將會得到一個擁有圖片形狀的詞云 plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.figure() plt.show() wc.to_file('jd_ciyun.jpg')def txt_change_to_csv(): with open(’jd_comment.csv’, ’w+’, encoding='utf8', newline=’’)as c:writer_csv = csv.writer(c, dialect='excel')with open('jd_comment.txt', ’r’, encoding=’utf8’)as f: # print(f.readlines()) for line in f.readlines():# 去掉str左右端的空格并以空格分割成listline_list = line.strip(’n’).split(’,’)print(line_list)writer_csv.writerow(line_list)if __name__ == ’__main__’: # 爬取數據 batch_spider_comment() #轉換數據 txt_change_to_csv() # 生成詞云 create_word_cloud()模型訓練(train.py) 準備正負語料集online_shopping_10_cats.csv,分別存入negative.txt和positive.txt 啟動train.py,新建文件sentiment.marshal,存入訓練后的模型 找到外部庫中snownlp中sentiment模塊,將訓練得到的sentiment.marshal.3文件覆蓋sentiment模塊中自帶的sentiment.marshal.3

# -*-coding:utf-8-*-def train(): from snownlp import sentiment print('開始訓練數據集...') sentiment.train(’negative.txt’, ’positive.txt’)#自己準備數據集 sentiment.save(’sentiment.marshal’)#保存訓練模型 #python2保存的是sentiment.marshal;python3保存的是sentiment.marshal.3 '訓練完成后,將訓練完的模型,替換sentiment中的模型'def main(): train() # 訓練正負向商品評論數據集 print('數據集訓練完成!')if __name__ == ’__main__’: main()情感分析(sentiment.analysis.py) 啟動sentiment.analysis.py 開始對jd_comment.csv中評論進行數據處理,處理后文件存入processed_comment_data.csv sentiment模塊根據sentiment.marshal.3對評論進行情感評分,評分結果存入result.csv 評分結果可視化,生成文件fig.png

from snownlp import sentimentimport pandas as pdimport snownlpimport matplotlib.pyplot as pltfrom matplotlib.font_manager import FontProperties#from word_cloud import word_cloud_creation, word_cloud_implementation, word_cloud_settingsdef read_csv(): ’’’讀取商品評論數據文件’’’ comment_data = pd.read_csv(’jd_comment.csv’, encoding=’utf-8’, sep=’n’, index_col=None) #返回評論作為參數 return comment_datadef clean_data(data): ’’’數據清洗’’’ df = data.dropna() # 消除缺失數據 NaN為缺失數據 df = pd.DataFrame(df.iloc[:, 0].unique()) # 數據去重 return df # print(’數據清洗后:’, len(df))def clean_repeat_word(raw_str, reverse=False): ’’’去除評論中的重復使用的詞匯’’’ if reverse:raw_str = raw_str[::-1] res_str = ’’ for i in raw_str:if i not in res_str: res_str += i if reverse:res_str = res_str[::-1] return res_strdef processed_data(filename): ’’’清洗完畢的數據,并保存’’’ df = clean_data(read_csv())#數據清洗 ser1 = df.iloc[:, 0].apply(clean_repeat_word)#去除重復詞匯 df2 = pd.DataFrame(ser1.apply(clean_repeat_word, reverse=True)) df2.to_csv(f’{filename}.csv’, encoding=’utf-8’, index_label=None, index=None)def train(): ’’’訓練正向和負向情感數據集,并保存訓練模型’’’ sentiment.train(’negative.txt’, ’positive.txt’) sentiment.save(’seg.marshal’)#python2保存的是sentiment.marshal;python3保存的是sentiment.marshal.3sentiment_list = []res_list = []def test(filename, to_filename): ’’’商品評論-情感分析-測試’’’ with open(f’{filename}.csv’, ’r’, encoding=’utf-8’) as fr:for line in fr.readlines(): s = snownlp.SnowNLP(line) #調用snownlp中情感評分s.sentiments if s.sentiments > 0.6:res = ’喜歡’res_list.append(1) elif s.sentiments < 0.4:res = ’不喜歡’res_list.append(-1) else:res = ’一般’res_list.append(0) sent_dict = {’情感分析結果’: s.sentiments,’評價傾向’: res,’商品評論’: line.replace(’n’, ’’) } sentiment_list.append(sent_dict) print(sent_dict)df = pd.DataFrame(sentiment_list)df.to_csv(f’{to_filename}.csv’, index=None, encoding=’utf-8’, index_label=None, mode=’w’)def data_virtualization(): ’’’分析結果可視化,以條形圖為測試樣例’’’ font = FontProperties(fname=’/System/Library/Fonts/Supplemental/Songti.ttc’, size=14) likes = len([i for i in res_list if i == 1]) common = len([i for i in res_list if i == 0]) unlikes = len([i for i in res_list if i == -1]) plt.bar([1], [likes], label=’喜歡’)#(坐標,評論長度,名稱) plt.bar([2], [common], label=’一般’) plt.bar([3], [unlikes], label=’不喜歡’) x=[1,2,3] label=[’喜歡’,’一般’,’不喜歡’] plt.xticks(x, label) plt.legend()#插入圖例 plt.xlabel(’評價種類’) plt.ylabel(’評價數目’) plt.title(u’商品評論情感分析結果-條形圖’, FontProperties=font) plt.savefig(’fig.png’) plt.show()’’’def word_cloud_show(): #將商品評論轉為高頻詞匯的詞云 wl = word_cloud_creation(’jd_comment.csv’) wc = word_cloud_settings() word_cloud_implementation(wl, wc)’’’def main(): processed_data(’processed_comment_data’)#數據清洗 #train() # 訓練正負向商品評論數據集 test(’jd_comment’, ’result’) print(’數據可視化中...’) data_virtualization() # 數據可視化 print(’python程序運行結束。’)if __name__ == ’__main__’: main()詞云輪廓圖

python 爬取京東指定商品評論并進行情感分析

商品評論詞云

python 爬取京東指定商品評論并進行情感分析

情感分析結果可視化

python 爬取京東指定商品評論并進行情感分析

以上就是python 爬取京東指定商品評論并進行情感分析的詳細內容,更多關于python 爬取京東評論并進行情感分析的資料請關注好吧啦網其它相關文章!

相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产激情精品一区二区三区| 91成人网在线观看| 97成人超碰| 国产精品任我爽爆在线播放| 国产精品久久久网站| 麻豆91小视频| 老牛影视精品| 亚洲精品在线观看91| 精品不卡一区| 亚洲91精品| 视频一区中文字幕国产| 欧美日本不卡高清| 精品国产a一区二区三区v免费| 精品日韩一区| 亚洲国产综合在线看不卡| 爽爽淫人综合网网站| 国产精品一区二区三区美女| 国产一区二区三区四区| 午夜久久久久| 久久精品72免费观看| 久久中文字幕一区二区| 亚洲精品一级二级| 伊人久久大香伊蕉在人线观看热v| 日本大胆欧美人术艺术动态| 国产精品久久乐| 欧美天堂视频| 亚洲美女久久| 久久国产精品美女| 国产 日韩 欧美 综合 一区| 成人看片网站| 日本h片久久| 18国产精品| 久久国产中文字幕| 蜜臀久久99精品久久久画质超高清| 亚洲精品一区二区在线播放∴| 国内精品麻豆美女在线播放视频| 国产在线一区不卡| 国产亚洲精品自拍| 日本aⅴ亚洲精品中文乱码| 中文字幕在线视频久| 色综合视频一区二区三区日韩 | 91国语精品自产拍| 国产高清日韩| 中文欧美日韩| 欧美日韩一区二区三区不卡视频| 久久婷婷久久| 久久爱www成人| 免费日韩一区二区| 国产精品13p| 欧美精品国产一区| 国产精品毛片在线| 中文字幕在线视频久| 亚洲人www| 麻豆视频在线观看免费网站黄 | 久久不卡国产精品一区二区| 亚洲激情av| 青青草国产成人99久久| 悠悠资源网久久精品| 国产激情在线播放| 久久成人av| 欧美综合精品| 免费成人在线影院| 欧美成人精品| 毛片在线网站| 麻豆精品在线| 日韩精品欧美大片| 久久国产精品久久久久久电车| 国产66精品| 久久精品欧洲| 国产精品久久久久9999高清| 日韩高清一区| 成人日韩精品| 国产欧美亚洲精品a| 午夜一级久久| 欧美久久精品一级c片| 私拍精品福利视频在线一区| 成人日韩av| 久久尤物视频| 国产精品三级| 麻豆国产欧美一区二区三区| 国产日本亚洲| 日本不卡视频在线观看| 日韩精品一级中文字幕精品视频免费观看 | 色一区二区三区| 久久精品72免费观看| 亚洲ww精品| 婷婷综合电影| 日韩黄色av| 日本精品国产| 欧美日韩调教| 日本va欧美va精品发布| 奇米亚洲欧美| 国产精品久久久亚洲一区| 日韩欧美中文在线观看| 亚洲开心激情| 少妇精品久久久一区二区| 免费在线观看日韩欧美| 亚洲资源网站| 国产探花在线精品一区二区| 蜜桃av一区二区| 日韩手机在线| 日韩精品第二页| 国产视频一区二| 免费在线亚洲| 91av亚洲| 蜜臀91精品国产高清在线观看| 久久精品国产www456c0m| 精品一区亚洲| 麻豆9191精品国产| 日韩av一区二区在线影视| 国产精品九九| 另类欧美日韩国产在线| 日韩电影在线视频| 欧美日韩国产高清电影| 婷婷成人基地| 日韩精品社区| 国产精品亚洲产品| 国产成人久久| 国产综合精品| 亚洲丝袜啪啪| 日韩成人精品一区二区三区 | 精品国产三区在线| 国模大尺度视频一区二区| 丝袜美腿诱惑一区二区三区| 欧美aa在线观看| 午夜电影亚洲| 国产精品社区| 日韩二区三区在线观看| 国产一区精品福利| 久久影视一区| 日韩国产精品久久久久久亚洲| 久久精品欧洲| 亚洲成人精品| 日韩中文字幕在线一区| 国产成人精品一区二区三区视频| 色综合五月天| 免费看的黄色欧美网站| 国产精品亲子伦av一区二区三区| 免费观看亚洲| 午夜性色一区二区三区免费视频| 里番精品3d一二三区| av中文字幕在线观看第一页| 石原莉奈在线亚洲二区| 精品视频亚洲| 亚洲欧洲一区二区天堂久久| 国产精品国产三级在线观看| 久久亚洲国产| 国产精品亚洲二区| 91成人精品视频| 麻豆精品在线观看| 亚洲欧美日韩精品一区二区| 久久女人天堂| 亚洲一区二区三区在线免费| 久久免费视频66| 免费人成精品欧美精品| 日本久久精品| 亚洲美洲欧洲综合国产一区| 国产欧美日韩精品一区二区免费| 999久久久免费精品国产| 日韩国产欧美一区二区三区| 亚洲福利免费| 精品久久亚洲| 亚州av日韩av| 亚洲欧洲午夜| 国产福利片在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久久久久婷| 欧美日韩中出| 久久av在线| 久久久国产亚洲精品| 久久av免费| 久久精品91| 精品久久一区| 国产欧美三级| 蜜桃视频一区二区三区| 美女少妇全过程你懂的久久| 日韩1区2区| 精品一区91| 国产欧美大片| 午夜性色一区二区三区免费视频| 欧美精品一卡| 久久久国产亚洲精品| 精品日韩一区| 久久超碰99| 国产欧美大片| 亚洲色图综合| 久久激情中文| 国产精品亚洲一区二区三区在线观看| 麻豆精品蜜桃视频网站| 国产亚洲人成a在线v网站| 亚洲视频国产| 日韩午夜精品| 91超碰国产精品| 久久天堂精品| 免费高潮视频95在线观看网站| 久久亚洲精品中文字幕| 欧美日本三区| 国产伦乱精品| 国产欧美激情| 欧美激情精品|