豆瓣电影评论情感分析(含代码+数据)
生活随笔
收集整理的這篇文章主要介紹了
豆瓣电影评论情感分析(含代码+数据)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 目的
- 效果
- 云圖
- 直方圖
- 全代碼+數(shù)據(jù)地址
- 核心代碼片斷
- data_analysis.py
- data_tfidf.py
- data_apriori.py
- data_kmeans.py
目的
通過(guò)分析豆瓣用戶電影評(píng)論數(shù)據(jù),來(lái)對(duì)不同國(guó)家在不同時(shí)間內(nèi)的電影進(jìn)行情感分析,并通過(guò)云圖及直方圖進(jìn)行效果展示。
效果
云圖
直方圖
全代碼+數(shù)據(jù)地址
資源鏈接 :https://download.csdn.net/download/zhuqiuhui/85100293
核心代碼片斷
data_analysis.py
分析隨著時(shí)間增長(zhǎng),不同國(guó)家拍攝的電影類型的變化
with open("data/kmeans.csv", 'r') as outfile:data = csv.reader(outfile)li = []years = []movie_dict = {}country = []for item in data:if(item[11]=='nan'):continueelse:li.append(item[11])years.append(item[3])country.append(item[4])if(item[4] not in movie_dict):movie_dict[item[4]]={item[3]:[item[11]]}else:if(item[3] not in movie_dict[item[4]]):movie_dict[item[4]][item[3]]=[item[11]]else:movie_dict[item[4]][item[3]].append(item[11]) for k,v in movie_dict.items():for k1,v1 in v.items():movie_dict[k][k1]=Counter(v1).items()data_tfidf.py
為由用戶電影評(píng)論構(gòu)建 tf-idf 模型抽取的關(guān)鍵短語(yǔ)。分為正向關(guān)鍵短語(yǔ)和負(fù)向關(guān)鍵短語(yǔ)。
def data_clean(SetPath):corpus_pos = []corpus_neg = []corpus = []result = []feature_list = []with open(SetPath) as file:data = file.readlines()for i, item in enumerate(data):row = item.strip().split("\t")if i == 0 or len(row)<5:continueelse:subdata = row[3]substr = jieba.lcut(subdata, cut_all=False, HMM=True) # 默認(rèn)參數(shù)if(row[4]=='pos'):corpus_pos.append(" ".join(substr))else:corpus_neg.append(" ".join(substr))corpus.append(" ".join(substr))data_apriori.py
為由電影風(fēng)格標(biāo)簽抽取的關(guān)聯(lián)規(guī)則
def runApriori(data_iter, minSupport, minConfidence):itemSet, transactionList = getItemSetTransactionList(data_iter)freqSet = defaultdict(int)largeSet = dict()assocRules = dict()oneCSet = returnItemsWithMinSupport(itemSet, transactionList, minSupport, freqSet)currentLSet = oneCSetdata_kmeans.py
通過(guò) kmeans 算法聚類電影。樣本通過(guò) one-hot 編碼為特征,然后再使用 kmeans 算法聚類。共聚4類,通過(guò)云圖展示(見效果)
def data_analysis(Setpath):data = pd.read_csv(Setpath,encoding='gbk') # 讀取文件中所有數(shù)據(jù)X_value = []for cname in data.columns.values:if 'Unnamed' not in cname:X_data = np.array(data[cname])model = preprocessing.LabelEncoder()model.fit_transform(data[cname])X_reshape = X_data.reshape(len(X_data), 1)X_value.append(preprocessing.OneHotEncoder().fit_transform(X_reshape).toarray())value = np.concatenate(X_value,axis=1)y_pred = KMeans(n_clusters=4, random_state=10).fit_predict(value)data['cluster']= y_pred.tolist()data = np.array(data).tolist()歡迎如轉(zhuǎn)載,請(qǐng)注明出處!歡迎關(guān)注微信公眾號(hào):方辰的博客。
總結(jié)
以上是生活随笔為你收集整理的豆瓣电影评论情感分析(含代码+数据)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 批量获取中国所有行政区域经边界纬度坐标(
- 下一篇: 机动目标跟踪——Singer模型