tft每日頭條

 > 情感

 > 文本挖掘和語義挖掘

文本挖掘和語義挖掘

情感 更新时间:2024-11-22 15:00:16

一、案例描述:

本案例基于python與R語言,對豆瓣某電影短評進行簡單情感分析:

實現:

(一)、基于python爬取豆瓣電影短評500條;

[由于豆瓣的反爬措施,用戶需登陸後才能爬取到500條評論]

(爬取方法:1、使用selenium爬取;

2、複制登錄後的cookies,使用requests庫爬取);

(二)、基于R語言進行文本讀取、清洗、分詞、情感打分、可視化;

本案例的代碼、數據集、情感詞典、停用詞請關注私信領取

二、實操過程:

本案例基于兩部分展開:

(一)數據獲取:

【cookies為用戶自行登錄後,于google浏覽器的netWord監督組件中獲取】

文本挖掘和語義挖掘(R文本挖掘情感分析)1

1、數據爬取代碼如下:

文本挖掘和語義挖掘(R文本挖掘情感分析)2

(二)、基于R語言對數據進行情感打分:

1、基于R語言對評論數據進行簡單的情感分析:

實操過程中發現:繁體字對情感打分的影響、停用詞、切詞效果對語句情感得分的影響;

2、過程:數據讀取、數據清洗、詞典導入、分詞、情感打分、詞雲圖;

2.1:數據導入:

在使用R導入數據之前,需用excel将評論中的繁體字評論轉為簡體;

文本挖掘和語義挖掘(R文本挖掘情感分析)3

2.2數據清洗:

本案例的數據清洗部分僅去除評論中的不可見字符【空格、換行符、制表符等】

文本挖掘和語義挖掘(R文本挖掘情感分析)4

2.3詞典導入:

文本挖掘和語義挖掘(R文本挖掘情感分析)5

2.4分詞:

文本挖掘和語義挖掘(R文本挖掘情感分析)6

2.5情感打分:

文本挖掘和語義挖掘(R文本挖掘情感分析)7

2.6繪制詞雲圖:

文本挖掘和語義挖掘(R文本挖掘情感分析)8

Wordfreq:

文本挖掘和語義挖掘(R文本挖掘情感分析)9

詞雲圖:

文本挖掘和語義挖掘(R文本挖掘情感分析)10

三、總結:

1、案例僅簡單對評論數據進行情感打分,局限性在于未對評論中的英文評論進行處理;

2、實操過程中發現停用詞、切詞效果對語句情感得分影響較大;

[停用詞中包含停止詞]

3、效果圖:

文本挖掘和語義挖掘(R文本挖掘情感分析)11

感謝您的閱讀!

附:完整代碼:

#--------------載入所需R包: library(pacman) p_load(readr,jiebaR,jiebaRD,plyr,stringr,stringi,ggplot2,wordcloud2) #-----------------步驟一:數據讀取------------------- text <- read.table("D:/a情感分析/text1.csv", dec = ",", sep = ",",stringsAsFactors = FALSE, header = TRUE, blank.lines.skip = TRUE) str(text) #查看數據類型; #------------------步驟二:數據清洗------------------: #這裡僅僅簡單清理了下空格(包含換行符、制表符等) text$comment<- as.character(sapply(text$comment, str_replace_all, '[\\s]*', '')) #------------------步驟三:讀取情感詞典--------------: #正負詞典中包含文本和得分,負向我标記為-1,正向我标記為1. pos <- read.table("D:/a情感分析/tsinghua.positive.gb.txt", header = F, stringsAsFactors = F,strip.white = T,skip = 1,col.names = "words") pos1 <- read.table("D:/a情感分析/正面評價詞語(中文).txt", header = F, stringsAsFactors = F,strip.white = T,skip = 1,col.names = "words") pos$weight<-1 pos1$weight<-1 #對正面情感詞、評價詞打分; #合并正面情感詞、評價詞: positive<-rbind(pos,pos1) neg <- read.table("D:/a情感分析/tsinghua.negative.gb.txt", header = F, stringsAsFactors = F,strip.white = T,skip = 1,col.names = "words") neg1 <- read.table("D:/a情感分析/負面評價詞語(中文).txt", header = F, stringsAsFactors = F,strip.white = T,skip = 1,col.names = "words") neg$weight<--1 neg1$weight<--1 #合并負面情感詞、評價詞: negative<-rbind(neg,neg1) #合并正、負情感詞典,賦值給mydict對象: mydict<-c(positive,negative) #-----------------------步驟四:分詞-----------------: engine<-worker(stop_word = "D:/a情感分析/chineseStopWords.txt") #設置分詞引擎; #将詞典添加進引擎 new_user_word(engine, mydict$words) #分詞 segwords <- llply(text$comment, segment, engine) str(segwords) #查看分詞; #-----------------------步驟五:情感打分-------------- #自定義情感函數 fun <- function(x,y) x%in% y getscore <- function(x,pwords,nwords){ pos.weight = sapply(llply(x,fun,pwords),sum) neg.weight = sapply(llply(x,fun,nwords),sum) total = pos.weight - neg.weight return(data.frame(pos.weight,neg.weight, total)) } score1 <- getscore(segwords, pos$words, neg$words) #将得分與評論合并到一起:a evalu_score1<- cbind(text, score1) #判斷得分是否大于1,賦予相應标簽: evalu.score1 <- transform(evalu_score1, emotion = ifelse(evalu_score1$total> 0, 'Pos', 'Neg')) #查看效果: View(evalu.score1) # 計算詞頻 wordfreq <- unlist(segwords) wordfreq <- as.data.frame(table(wordfreq )) wordfreq <- arrange(wordfreq , desc(Freq))#排序 head(wordfreq) write.csv(wordfreq,"D:/wordart.csv") # 繪制詞雲: wordcloud2(wordfreq,size=1,shape='star')

小結

本文轉載自學習使我快樂,請支持原創!

感謝大家耐心看完,自己的文章都寫的很細,代碼都在原文中,希望大家都可以自己做一做,請關注後私信回複“數據鍊接”獲取所有數據和本人收集的學習資料。如果對您有用請先收藏,再點贊轉發。

也歡迎大家的意見和建議。

如果你是一個大學本科生或研究生,如果你正在因為你的統計作業、數據分析、論文、報告、考試等發愁,如果你在使用SPSS,R,Python,Mplus, Excel中遇到任何問題,都可以聯系我。因為我可以給您提供最好的,最詳細和耐心的數據分析服務。

如果你對Z檢驗,t檢驗,方差分析,多元方差分析,回歸,卡方檢驗,相關,多水平模型,結構方程模型,中介調節,量表信效度等等統計技巧有任何問題,請私信我,獲取最詳細和耐心的指導。

If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #reports, #composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.

Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??

Then Contact Me. I will solve your Problem...

加油吧,打工人!

往期内容:

R文本挖掘:文本聚類分析

R文本挖掘:中文文本聚類

R文本挖掘:中文詞雲生成

R文本挖掘:社會網絡分析

R文本挖掘:文本主題分析topic analysis

R文本挖掘:手把手教你做詞雲圖,小白教程

R文本挖掘:詞雲圖怎麼做,worldcloud2初識

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关情感资讯推荐

热门情感资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved