基于词典的情感分析实验
基于詞典的情感分析實(shí)驗(yàn)
做了下初步實(shí)驗(yàn),因?yàn)楝F(xiàn)在還是有點(diǎn)蒙,所以決定先寫初稿理理思路。
數(shù)據(jù)說(shuō)明
實(shí)驗(yàn)數(shù)據(jù)來(lái)源于各大平臺(tái)五臺(tái)山景區(qū)游記評(píng)論
詞典說(shuō)明
- 清華大學(xué)——李軍中文褒貶義詞典
- 臺(tái)灣大學(xué)NTUSD
- 知網(wǎng)Hownet
- 常用停用詞
- 中文情感詞匯本體庫(kù)
中文情感詞匯本體
中文情感詞匯本體庫(kù)是大連理工大學(xué)信息檢索研究室在林鴻飛教授的指導(dǎo)下經(jīng)過(guò)全體教研室成員的努力整理和標(biāo)注的一個(gè)中文本體資源。該資源從不同角度描述一個(gè)中文詞匯或者短語(yǔ),包括詞語(yǔ)詞性種類、情感類別、情感強(qiáng)度及極性等信息。
中文情感詞匯本體的情感分類體系是在國(guó)外比較有影響的Ekman的6大類情感分類體系的基礎(chǔ)上構(gòu)建的。在Ekman的基礎(chǔ)上,詞匯本體加入情感類別“好”對(duì)褒義情感進(jìn)行了更細(xì)致的劃分。最終詞匯本體中的情感共分為7大類21小類。
構(gòu)造該資源的宗旨是在情感計(jì)算領(lǐng)域,為中文文本情感分析和傾向性分析提供一個(gè)便捷可靠的輔助手段。中文情感詞匯本體可以用于解決多類別情感分類的問(wèn)題,同時(shí)也可以用于解決一般的傾向性分析的問(wèn)題。
本體格式介紹
情感詞匯本體中,一般的格式為。
表一 情感詞匯本體格式舉例| 無(wú)所畏懼 | idiom | 1 | 1 | PH | 7 | 1 |
| 手頭緊 | idiom | 1 | 1 | NE | 7 | 0 |
| 周到 | adj | 1 | 1 | PH | 5 | 1 |
| 言過(guò)其實(shí) | idiom | 1 | 1 | NN | 5 | 2 |
情感分類及情感強(qiáng)度
情感分類按照論文《情感詞匯本體的構(gòu)造》所述,情感分為7大類21小類。
情感強(qiáng)度分為1,3,5,7,9五檔,9表示強(qiáng)度最大,1為強(qiáng)度最小。
| 1 | 樂(lè) | 快樂(lè)(PA) | 喜悅、歡喜、笑瞇瞇、歡天喜地 |
| 2 | 安心(PE) | 踏實(shí)、寬心、定心丸、問(wèn)心無(wú)愧 | |
| 3 | 好 | 尊敬(PD) | 恭敬、敬愛(ài)、畢恭畢敬、肅然起敬 |
| 4 | 贊揚(yáng)(PH) | 英俊、優(yōu)秀、通情達(dá)理、實(shí)事求是 | |
| 5 | 相信(PG) | 信任、信賴、可靠、毋庸置疑 | |
| 6 | 喜愛(ài)(PB) | 傾慕、寶貝、一見(jiàn)鐘情、愛(ài)不釋手 | |
| 7 | 祝愿(PK) | 渴望、保佑、福壽綿長(zhǎng)、萬(wàn)壽無(wú)疆 | |
| 8 | 怒 | 憤怒(NA) | 氣憤、惱火、大發(fā)雷霆、七竅生煙 |
| 9 | 哀 | 悲傷(NB) | 憂傷、悲苦、心如刀割、悲痛欲絕 |
| 10 | 失望(NJ) | 憾事、絕望、灰心喪氣、心灰意冷 | |
| 11 | 疚(NH) | 內(nèi)疚、懺悔、過(guò)意不去、問(wèn)心有愧 | |
| 12 | 思(PF) | 思念、相思、牽腸掛肚、朝思暮想 | |
| 13 | 懼 | 慌(NI) | 慌張、心慌、不知所措、手忙腳亂 |
| 14 | 恐懼(NC) | 膽怯、害怕、擔(dān)驚受怕、膽顫心驚 | |
| 15 | 羞(NG) | 害羞、害臊、面紅耳赤、無(wú)地自容 | |
| 16 | 惡 | 煩悶(NE) | 憋悶、煩躁、心煩意亂、自尋煩惱 |
| 17 | 憎惡(ND) | 反感、可恥、恨之入骨、深惡痛絕 | |
| 18 | 貶責(zé)(NN) | 呆板、虛榮、雜亂無(wú)章、心狠手辣 | |
| 19 | 妒忌(NK) | 眼紅、吃醋、醋壇子、嫉賢妒能 | |
| 20 | 懷疑(NL) | 多心、生疑、將信將疑、疑神疑鬼 | |
| 21 | 驚 | 驚奇(PC) | 奇怪、奇跡、大吃一驚、瞠目結(jié)舌 |
極性標(biāo)注
每個(gè)詞在每一類情感下都對(duì)應(yīng)了一個(gè)極性。其中,0代表中性,1代表褒義,2代表貶義,3代表兼有褒貶兩性。
注:褒貶標(biāo)注時(shí),通過(guò)詞本身和情感共同確定,所以有些情感在一些詞中可能極性1,而其他的詞中有可能極性為0。
前期準(zhǔn)備
數(shù)據(jù)預(yù)覽
import pandas as pdweibo_df = pd.read_excel('F:\\BaiduNetdiskDownload\\論文\\###論文數(shù)據(jù)\\pythonProject2\\Ensio\\論文\\詞典文件保存路徑\\攜程旅行游記攻略6837.xlsx')weibo_df.head(100)情感詞本體預(yù)覽
# 讀取import pandas as pddf = pd.read_excel('F:\BaiduNetdiskDownload\論文\###論文數(shù)據(jù)\詞典匯總\三個(gè)情感詞典匯總\其他詞典和分類\情感詞匯本體\情感詞匯本體.xlsx')df.head(10)實(shí)驗(yàn)過(guò)程
提取可用數(shù)據(jù)特征
df = df[['詞語(yǔ)', '詞性種類', '詞義數(shù)', '詞義序號(hào)', '情感分類', '強(qiáng)度', '極性']]df.head()情感詞加載
Happy = []Good = []Surprise = []Anger = []Sad = []Fear = []Disgust = []for idx, row in df.iterrows():if row['情感分類'] in ['PA', 'PE']:Happy.append(row['詞語(yǔ)'])if row['情感分類'] in ['PD', 'PH', 'PG', 'PB', 'PK']:Good.append(row['詞語(yǔ)']) if row['情感分類'] in ['PC']:Surprise.append(row['詞語(yǔ)']) if row['情感分類'] in ['NA']:Anger.append(row['詞語(yǔ)']) if row['情感分類'] in ['NB', 'NJ', 'NH', 'PF']:Sad.append(row['詞語(yǔ)'])if row['情感分類'] in ['NI', 'NC', 'NG']:Fear.append(row['詞語(yǔ)'])if row['情感分類'] in ['NE', 'ND', 'NN', 'NK', 'NL']:Disgust.append(row['詞語(yǔ)'])Positive = Happy + Good +SurpriseNegative = Anger + Sad + Fear + Disgustprint('情緒詞語(yǔ)列表整理完成') print(Positive) print(Negative)庫(kù)、數(shù)據(jù)、詞典加載
from string import digits import jieba # 分詞 import re # 過(guò)濾特殊字符 import numpy as np # 輔助處理 import pandas as pd # 處理 import emoji # 過(guò)濾表情 import jieba.analyse # 分級(jí)級(jí)別權(quán)重 import imageio # 圖片 import jieba.posseg as pseg # 詞性標(biāo)注 from wordcloud import WordCloud # 詞云 import os import matplotlib.pyplot as plt # 畫布 import difflib # 相似度判斷path = 'F:\\BaiduNetdiskDownload\\論文\\###論文數(shù)據(jù)\\pythonProject2\\Ensio\\論文\\詞典文件保存路徑\\result\\juzi_1.txt'# 臺(tái)灣大學(xué)積極詞典 pos_dict_path = 'F:\\BaiduNetdiskDownload\\論文\\###論文數(shù)據(jù)\\pythonProject2\\Ensio\\論文\\詞典文件保存路徑\\ntusd-positive.txt' # 臺(tái)灣大學(xué)消極詞典 neg_dict_path = 'F:\\BaiduNetdiskDownload\\論文\\###論文數(shù)據(jù)\\pythonProject2\\Ensio\\論文\\詞典文件保存路徑\\ntusd-negative.txt' # 臺(tái)灣大學(xué)停用詞 no_dict_path = 'F:\\BaiduNetdiskDownload\\論文\\###論文數(shù)據(jù)\\pythonProject2\\Ensio\\論文\\詞典文件保存路徑\\not.txt' # 常用中文停用詞 cn_stopwords = 'F:\\BaiduNetdiskDownload\\論文\\###論文數(shù)據(jù)\\pythonProject2\\Ensio\\論文\\詞典文件保存路徑\\cn_stopwords.txt' # 宋體字體 simsun_path = 'F:\\BaiduNetdiskDownload\\論文\\###論文數(shù)據(jù)\\pythonProject2\\Ensio\\論文\\詞典文件保存路徑\\simsun.ttc' # 詞云背景圖片 bg_path = 'F:\\BaiduNetdiskDownload\\論文\\###論文數(shù)據(jù)\\pythonProject2\\Ensio\\論文\\詞典文件保存路徑\\五臺(tái)山字.jpg'# 評(píng)論元數(shù)據(jù) excel_path = 'F:\\BaiduNetdiskDownload\\論文\\###論文數(shù)據(jù)\\pythonProject2\\Ensio\\論文\\詞典文件保存路徑\\攜程旅行游記攻略6837.xlsx' # 情感分析結(jié)果輸出 初始文件為空 Sentiment_analysis_ioPath = 'F:\\BaiduNetdiskDownload\\論文\\###論文數(shù)據(jù)\\pythonProject2\\Ensio\\論文\\詞典文件保存路徑\\result\\攜程旅行游記攻略6837-情感分析結(jié)果.txt' # 評(píng)論格式化寫出 初始文件為空 comment_ioPath = 'F:\\BaiduNetdiskDownload\\論文\\###論文數(shù)據(jù)\\pythonProject2\\Ensio\\論文\\詞典文件保存路徑\\result\\攜程旅行游記攻略-純文本6837.txt' # 句子級(jí)寫出 juzi_path = 'F:\\BaiduNetdiskDownload\\論文\\###論文數(shù)據(jù)\\pythonProject2\\Ensio\\論文\\詞典文件保存路徑\\result\\juzi_1_1.txt' # 詞云保存路徑 初始文件為空 wordcloud_ioPath = 'F:\\BaiduNetdiskDownload\\論文\\###論文數(shù)據(jù)\\pythonProject2\\Ensio\\論文\\詞典文件保存路徑\\result\\五臺(tái)山詞云.png' # 五臺(tái)山關(guān)鍵字詞典 初始不為空 wts_dict_path = 'F:\\BaiduNetdiskDownload\\論文\\###論文數(shù)據(jù)\\pythonProject2\\Ensio\\論文\\詞典文件保存路徑\\五臺(tái)山關(guān)機(jī)鍵詞典.txt'元數(shù)據(jù)預(yù)處理
weibo_text = weibo_comment[0] weibo_text = "".join(weibo_text.split()) weibo_text = re.sub(u"([^\u4e00-\u9fa5\u0030-\u0039\u0041-\u005a\u0061-\u007a])", "",weibo_text) print(weibo_text)元數(shù)據(jù)預(yù)處理二
def filter_emoji(test_str):result = emoji.demojize(test_str)return emoji.emojize(result) def pretreatment():# 加載excelexcel = pd.read_excel(excel_path) #encoding = utf-8# punt_list = ',.!?;~。!?;~… '.encode('utf8').decode('utf8')# 暫時(shí)留取時(shí)間,不做處理data = excel[['Title', 'Notes']]# 生成單維DataFrame 并刪除重復(fù)行datafreame = pd.DataFrame(data).dropna(how='any').drop_duplicates(subset='Notes')# 去除空值 NaNdataToTwo = datafreame.dropna(axis=0)# 存放comment列----》字符串列表dataToTwoStr = []for i in dataToTwo['Notes']:dataToTwoStr.append(filter_emoji(str(i))) # 表情處理#print(dataToTwoStr)return dataToTwoStr pretreatment()情感值計(jì)算方法
import jiebaimport timedef emotion_caculate(text):positive = 0negative = 0anger = 0disgust = 0fear = 0sad = 0surprise = 0good = 0happy = 0wordlist = jieba.lcut(text)wordset = set(wordlist)wordfreq = []for word in wordset:freq = wordlist.count(word)if word in Positive:positive+=freqif word in Negative:negative+=freqif word in Anger:anger+=freqif word in Disgust:disgust+=freqif word in Fear:fear+=freqif word in Sad:sad+=freqif word in Surprise:surprise+=freqif word in Good:good+=freqif word in Happy:happy+=freqemotion_info = {'length':len(wordlist),'positive': positive,'negative': negative,'anger': anger,'disgust': disgust,'fear':fear,'good':good,'sadness':sad,'surprise':surprise,'happy':happy,}indexs = ['length', 'positive', 'negative', 'anger', 'disgust','fear','sadness','surprise', 'good', 'happy']return pd.Series(emotion_info, index=indexs) weibo_comment = weibo_df['Notes']實(shí)例
emotion_caculate(text='景區(qū)人太多了吧,物價(jià)還死貴死貴的,買瓶水要5塊,隨處可見(jiàn)的垃圾,讓人心情不好!!')去除停用詞,冗余數(shù)據(jù),進(jìn)行分詞
# 相似度計(jì)算 def get_equal_rate_1(str1, str2):return difflib.SequenceMatcher(None, str1, str2).quick_ratio() # 對(duì)比關(guān)鍵字詞典 def comment_base_split(wts_lst, comment_base):index = []for i in wts_lst:if i in comment_base:sall_index = [r.span() for r in re.finditer(i, comment_base)]index.append(sall_index)index_commnet = list(index)t = []# print(index_commnet)for i in index_commnet:for j in i:tutle = list(j)if tutle[0] < 10:tutle[0] = 0else:tutle[0] = tutle[0] - 30if tutle[1] < 10:tutle[1] = 20else:tutle[1] = tutle[1] + 30t.append(tutle)for s in range(len(index_commnet)):index_commnet[s] = t# print(index_commnet)comment_base_split_dict = []for i in index_commnet:for j in i:comment_base_split_dict.append(comment_base[j[0]:j[1]])for i in comment_base_split_dict:for j in comment_base_split_dict:if get_equal_rate_1(i, j) > 0.85: # 相似度大于0.85 刪除comment_base_split_dict.remove(j)breakreturn comment_base_split_dict# 加載關(guān)鍵字詞典 def wts_dict():wts_lst = []with open(wts_dict_path, encoding='utf-8') as f:for line in f:line = line.replace("\n", "").replace("\r", "")wts_lst.append(line)return wts_lst # 加載詞典 def dict_load(path):print("文件加載!")dt = []with open(path, encoding='utf-8-sig') as f:for line in f:if line.strip() != '': # 去除空格dt.append(line.strip())return (dt) def first_Load():neg_dict = [] # 消極情感詞典pos_dict = [] # 積極情感詞典no_dict = [] # 否定詞詞典pos_dict = dict_load(pos_dict_path)# print(pos_dict)neg_dict = dict_load(neg_dict_path)# print(neg_dict)no_dict = dict_load(no_dict_path)# print(no_dict)return pos_dict, neg_dict, no_dict# dicts = {,{,[]}} def batchProcessing():with open(juzi_path, 'a', encoding='utf-8') as f:# 加載五臺(tái)山關(guān)鍵字詞典wts_lst = wts_dict()# 三個(gè)情感分析詞典加載pos_dict, neg_dict, no_dict = first_Load()# 獲取評(píng)論 字符串列表inputs = pretreatment()lsts = []lst = []#print(inputs)for i in inputs:comment_base = i.replace("\n", "")lst.append(comment_base_split(wts_lst, comment_base))breakfor i in lst:for j in i:base = re.sub(u"([^\u4e00-\u9fa5\u0030-\u0039\u0041-\u005a\u0061-\u007a])", "", j)remove_digits = str.maketrans('', '', digits)res =base.translate(remove_digits)emo = emotion_caculate(text=res)lsts.append(emo)f.write(res + '\n')print("句子級(jí)寫入完成!")return lsts #batchProcessing()情感值預(yù)覽
lsts = batchProcessing() # s = lsts[0] # length 31 # positive 2 正向 # negative 0 負(fù)向 # anger 0 憤怒 # disgust 0 厭惡 # fear 0 恐懼 # sadness 0 悲傷 # surprise 0 驚喜 # good 2 好 # happy 0 快樂(lè) # dtype: int64 pos_scores = [] neg_scores = [] for i in lsts:pos_scores.append(int(i[1]))neg_scores.append(int(i[2]))final_scores = sum(pos_scores) - sum(neg_scores) # 情感分 print(final_scores) lsts計(jì)算結(jié)果
第1天2014-09-05前記:山西游的想法來(lái)自于父親,他說(shuō)幾乎游遍了祖國(guó)的大好河山,現(xiàn)在全中國(guó)的省份只有山西、西藏和寧夏沒(méi)有去過(guò)。我琢磨著想和爸爸一起旅游,所以便說(shuō)我們帶你去山西吧,老爸隨即說(shuō)了他特別想去的幾個(gè)景點(diǎn),我上網(wǎng)查山西地圖,可以啊,這幾個(gè)景點(diǎn)幾乎縱貫山西,從南到北。。。好吧,反正說(shuō)都說(shuō)了,就走吧!寫這篇游記的初衷:之前去過(guò)不少地方旅游,從來(lái)沒(méi)有寫過(guò)游記,但是這次去山西,感觸太深了。每次 做攻略都會(huì)上網(wǎng)參照網(wǎng)友的旅游信息,自己也得益不少,這次去了山西以后,發(fā)現(xiàn)有不少信息,主要是交通方面的,都已經(jīng)不是最新的了,所以想把自己認(rèn)為是最新的消息提供出來(lái),方便之后想去山西(僅限我去過(guò)的地方哈:))的朋友們。 第一天都是在路上度過(guò)的,因?yàn)榈谝徽救x城皇城相府,而上海沒(méi)有直接到晉城的火車,所以我選擇了離晉城相對(duì)較近而且長(zhǎng)途車班次較多的鄭州作為中轉(zhuǎn)站。上海到鄭州的動(dòng)車大概7個(gè)半小時(shí)左右,長(zhǎng)途汽車站就在火車站對(duì)面,鄭州到晉城的長(zhǎng)途車差不多一個(gè)小時(shí)一班,最晚到6點(diǎn)。我們下午2點(diǎn)半到達(dá)鄭州,買到了3點(diǎn)半前往晉城的車票,車程說(shuō)是3個(gè)半小時(shí),不過(guò)從汽車站開(kāi)到高速入口這一路堵的不行,足足多出了40分鐘,最后快8點(diǎn)才到達(dá)晉城客運(yùn)東站。需要注意的是,現(xiàn)在晉城的長(zhǎng)途汽車已經(jīng)全部從客運(yùn)東站始發(fā)和到達(dá),之前的省運(yùn)和市運(yùn)已退出歷史舞臺(tái),據(jù)說(shuō)是為了緩解市內(nèi)交通。客運(yùn)東站地點(diǎn)比較偏,離我們住的地方也就4,5公里路,正常的出租費(fèi)用在11元左右, 不過(guò)出租車司機(jī)都不愿意去,畢竟在汽車站候客的出租車總想拉個(gè)遠(yuǎn)差,問(wèn)了一個(gè)黑車,說(shuō)20能走,這樣的價(jià)錢我還是能接受的。之后在各地的火車站和汽車站都碰到了出租車不愿去酒店的情形,稍后再說(shuō)。晉城的酒店定在錦江之星金廣快捷七星廣場(chǎng)店,因?yàn)槲矣绣\江之星的會(huì)員卡,而且我覺(jué)得錦江之星在全國(guó)各地的分店設(shè)施都差不多,屬于滿規(guī)范化的連鎖快捷酒店,價(jià)錢折后也在150之內(nèi),所以這次旅行地只要有錦江之星的,我都會(huì)預(yù)訂。上海鄭州晉城,第2天2014-09-06晉城 美好的一天從美好的早餐開(kāi)始,這是在山西的第一頓早飯,山西的豆腐很出 名,這看上去太贊了。吃完早飯,出發(fā)去此行的第一個(gè)景點(diǎn)——皇城相府。晉城晉城 晉城到皇城相府的車子每天從早上6點(diǎn)半開(kāi)始,幾乎一個(gè)小時(shí)一班,最后一般是晚上6點(diǎn)半。車費(fèi)15,車程一個(gè)半小時(shí)。因?yàn)槿ネ昊食窍喔?#xff0c;我們還是要回到晉城客運(yùn)東站再坐車前往臨汾,所以一早我們就帶了行李,直接把行李寄放在了汽車站,4元一件。皇城相府 皇城相府是康熙的老師、《康熙字典》總閱官、清代名相陳廷敬的府邸。明清時(shí)期生活在這里的陳氏家族科甲鼎盛,有多達(dá)38人走上仕途,而且大多政績(jī)顯赫,可謂是翰林世家。導(dǎo)游說(shuō),皇城相府后來(lái)是讓老百姓居住的,直到1998年才被國(guó)家收回作為旅游景點(diǎn)開(kāi)發(fā)。說(shuō)到導(dǎo)游,我之前去買票的時(shí)候忘了找在售票處旁邊的導(dǎo) 游,結(jié)果進(jìn)了景區(qū),被告之有實(shí)習(xí)導(dǎo)游,50一次(導(dǎo)游是80),不過(guò)實(shí)習(xí)導(dǎo)游和正式導(dǎo)游還是有差距的,我蹭聽(tīng)了好多別人家的導(dǎo)游。皇城相府皇城相府皇城相府皇城相府皇城相府 彩旗飄揚(yáng)的地方是階梯,長(zhǎng)長(zhǎng)的階梯一共53格(應(yīng)該沒(méi)有記錯(cuò)),陳廷敬當(dāng)官53載,巧合!皇城相府 從皇城相府回晉城的車,在景區(qū)門口是沒(méi)有站的,不過(guò)可以有幾種方式回去,一種就是在景區(qū)門口等開(kāi)往皇城相府的車,然后車會(huì)把你帶到北留鎮(zhèn)上,皇城相府是屬于北留鎮(zhèn)的,再?gòu)谋绷翩?zhèn)上坐車回晉城;還有一種就是在景區(qū)門口叫面的,3元一人,也是把你拉到北 留鎮(zhèn)上的汽車點(diǎn)。兩種方式花費(fèi)一樣,唯一不同的是,可能第一種方式需要等很長(zhǎng)時(shí)間才會(huì)有車來(lái),而第二種應(yīng)該是招手即有的。我比較幸運(yùn),出了景點(diǎn)就有一部到站的汽車,所以我們就上了。回到晉城客運(yùn)東站,直接買票去臨汾,好巧的是買到了5分鐘后的汽車,時(shí)間算的太好了。 從晉城開(kāi)往臨汾大概需要4個(gè)小時(shí)左右,途徑一個(gè)休息站休息的時(shí)候,看到一張山西全省的旅游景點(diǎn)地圖。我給老爸指了指要去的那些景點(diǎn),老爸說(shuō),離的那么遠(yuǎn)啊,你太偉大了,哈哈。 臨汾沒(méi)有錦江之星,所以預(yù)訂了離汽車站不遠(yuǎn)的堯都區(qū)政府商務(wù)酒店,三人套房,兩個(gè)房間,還不錯(cuò),比周圍的那些酒店看上去好,反正湊活一夜,明天一早就上路了。,第3天2014-09-07 前往壺口瀑布的交通不是很方便,我在淘寶上覓得壺口小李,成人190一位,包含來(lái)去車費(fèi)和門票及保險(xiǎn),享受免票政策的人群120一位。全程高速,車上備有WIFI,有免費(fèi)的接送站服務(wù),他們還會(huì)提前一天和當(dāng)天早上電話確認(rèn),性價(jià)比滿高的,最最主 要是方便。其實(shí)這就是包車,不過(guò)人家信譽(yù)做出來(lái)了,就比較可靠。聽(tīng)說(shuō)從今年9月開(kāi)始,自己的車不能開(kāi)進(jìn)景區(qū)了,從售票處到景點(diǎn)還有4公里的路,所以必須坐景點(diǎn)提供的所謂環(huán)保車,20一人,好吧。黃河壺口瀑布風(fēng)景名勝區(qū) 壺口瀑布的雄偉只有自己去了才能感受到,我們?cè)谀抢镒阕愦袅?個(gè)多小時(shí),只是呆呆地看。我們運(yùn)氣好好,包車的司機(jī)說(shuō)這幾天水特別大,只要靠近圍欄將近10米左右,就感覺(jué)像下雨一般,密密的,這直接導(dǎo)致了我們?nèi)頋裢?#xff0c;而且干了以后到處留下了泥印。 水中冒煙的奇景描述的就是這種畫面吧。黃河壺口瀑布風(fēng)景名勝區(qū)黃河壺口瀑布風(fēng)景名勝區(qū)黃河壺口瀑布風(fēng)景名勝區(qū)黃河壺口瀑布風(fēng)景名勝區(qū)黃河壺口瀑布風(fēng)景名勝區(qū) 每頭毛驢頭上都貼著它們的名字。黃河壺口瀑布風(fēng)景名勝區(qū) 這位叫壺口老什么來(lái)著,還看到過(guò)壺口花花,壺口小花什么的。黃河壺口瀑布風(fēng)景名勝區(qū) 壺口瀑布一游非常順利,前一天晚上到我們出發(fā)一直都在下大雨,車子上了高速,開(kāi)到一半,雨停了。路上幾乎都沒(méi)有車,超爽。車程2個(gè)小時(shí),再加上景區(qū)呆2個(gè)多小時(shí),我們是早上8點(diǎn)出發(fā)的,下午3點(diǎn)不到已經(jīng)回到了市區(qū)。我買了下午4點(diǎn)臨汾到平遙的火車,本想去看看能夠改簽到早一班的伐,不過(guò)沒(méi)有座位了,只好等咯。平遙古城的住宿是定在錦江之星平遙古城店,離火車站不遠(yuǎn),靠近西大門,住宿正好是周日和周一兩天,還搶到了錦江之星的百元房,實(shí)在是劃算。 積極傾向值:56 消極傾向值:64 情感傾向:積極 ------------------詞云
詞云繪制
def toWordCloud():# 停用詞fr = open(cn_stopwords, 'r', encoding='utf-8')stop_word_list = fr.readlines()new_stop_word_list = []for stop_word in stop_word_list:stop_word = stop_word.replace('\ufeef', '').strip()new_stop_word_list.append(stop_word)with open(path, 'r', encoding='utf-8') as f:words = f.read()word_dict = {}word_list = ''words_arr = words.split('\n')words_jiebas = []for i in words_arr:words_jiebas.append(jieba.lcut(i))for words_jieba in words_jiebas:for word in words_jieba:if (len(word) > 1 and not word in new_stop_word_list):word_list = word_list + ' ' + wordif (word_dict.get(word)):word_dict[word] = word_dict[word] + 1else:word_dict[word] = 1##print(word_list)# print(word_dict)# 按次數(shù)進(jìn)行排序sort_words = sorted(word_dict.items(), key=lambda x: x[1], reverse=True)print(sort_words[0:101]) # 輸出前0-100的詞#color_mask = imageio.imread(bg_path)wc = WordCloud(background_color="white", # 背景顏色max_words=1000, # 顯示最大詞數(shù)font_path=simsun_path, # 使用字體min_font_size=20,max_font_size=500,random_state=42, # 隨機(jī)數(shù)collocations=False, # 避免重復(fù)單詞width=1600,height=1200,margin=10,#mask=color_mask) # 圖幅寬度)#wc.recolor([random_state, color_func, colormap])wc.generate(word_list)wc.to_file(wordcloud_ioPath)plt.figure(dpi=100)# 以圖片的形式顯示詞云plt.imshow(wc,interpolation='catrom',vmax=1000)# 關(guān)閉圖像坐標(biāo)系plt.axis("off")plt.show()詞語(yǔ)預(yù)覽
不足之處
- 實(shí)驗(yàn)過(guò)程有大量冗余代碼沒(méi)有過(guò)濾優(yōu)化。
- 詞典構(gòu)建只是簡(jiǎn)簡(jiǎn)單單的對(duì)三個(gè)詞典進(jìn)行了合并。
- 現(xiàn)階段只是做初步試驗(yàn)。
總結(jié)
以上是生活随笔為你收集整理的基于词典的情感分析实验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: gcc -fPIC选项
- 下一篇: 如何将PDF转成高清JPG图片