日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python红楼梦人物词频统计_用R进行文本分析初探——以《红楼梦》为例

發布時間:2023/12/15 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python红楼梦人物词频统计_用R进行文本分析初探——以《红楼梦》为例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

剛剛接觸R語言和文本分析,為了將二者結合,試著對《紅樓夢》進行分析,首先對《紅樓夢》進行分詞處理,并統計詞頻,同時畫出標簽云。

其實文本分析還可以分析其它很多東西,我的下一步打算分析新浪微博。現在先寫一個小的分析,作為學習用。

文本分析是指對文本的表示及其特征項的選取;文本分析是文本挖掘、信息檢索的一個基本問題,它把從文本中抽取出的特征詞進行量化來表示文本信息。

一.需要加載的包

需要用到rJava,Rwordseg,wordcloud

安裝步驟:

1.安裝java:

http://www.java.com/zh_CN/download/windows_xpi.jsp

2.安裝rJava:

在R的命令框輸入

install.packages("rJava")

錯誤解決方案:

錯誤1.錯誤: ‘rJava’程輯包或名字空間載入失敗,

解決方案:換路徑

錯誤2.

解決方案:

在R中輸入

Sys.setenv(JAVA_HOME=‘C:/Program Files/Java/jre1.8.0_73‘)? #注意:要根據你的java路徑更改

3.安裝Rwordseg:

下載地址:

https://r-forge.r-project.org/R/?group_id=1054

點這兒下載Rwordseg

解壓后將文件放入R下library文件夾下

4.安裝wordcloud

在R的命令框輸入

install.packages("wordcloud")

利用Rwordseg分詞包進行分詞

二.分析過程

(一)基礎導入

library(rJava)

library(Rwordseg)

library(RColorBrewer)

library(wordcloud)

(二)讀入數據

將需要分析的文本放入記事本中,保存到相應路徑,并在R中打開。這兒我導入的是《紅樓夢》的文本。

lecture

(三)優化詞庫

對于文言文和人物名字分詞結果不是很理想的問題,有一個很好的解決方案,就是導入搜狗細胞詞庫(http://pinyin.sogou.com/dict/),以本例作為例子,分別導入了文言文常用詞庫、紅樓夢常用詞庫、紅樓夢成員名字詞庫,這三個詞庫,讓分詞效果更為理想。

installDict("C:\\Users\\Administrator\\Desktop\\hongloumeng.scel","hongloumeng1")

installDict("C:\\Users\\Administrator\\Desktop\\紅樓夢群成員名字詞庫.scel","hongloumeng2")

installDict("C:\\Users\\Administrator\\Desktop\\常用文言文詞庫.scel","wenyanwen")

(四)分詞+統計詞頻

words=unlist(lapply(X=res, FUN=segmentCN))#unlist將list類型的數據,轉化為vector#lapply()返回一個長度與X一致的列表,每個元素為FUN計算出的結果,且分別對應到X中的每個元素。

word=lapply(X=words, FUN=strsplit, " ")

v=table(unlist(word))#table統計數據的頻數

(五)對詞頻進行排序

#降序排序

v=rev(sort(v))

(六)創建數據框

d=data.frame(詞匯=names(v), 詞頻=v)

(七)過濾掉1個字的結果和詞頻小于100的結果

篩選標準大家可以根據自己的需求進行修改

d=subset(d, nchar(as.character(d$詞匯))>1 & d$詞頻>=100)

(八)詞頻結果輸出

根據自己的具體需求改變路徑和文件名稱

write.csv(d, file="E:/Rtagcloud/hongloumengfcresult.csv", row.names=FALSE)

詞頻統計結果(節選)如下:

(九)畫出標簽云

1.讀入詞頻統計數據

路徑和文件名稱根據自己的需求更改

mydata

2.設置字體類型和字體顏色

mycolors

windowsFonts(myFont=windowsFont("銳字巔峰粗黑簡1.0"))

字體下載地址:

http://www.zhaozi.cn/

大家可以根據自己的喜好選擇喜歡的字體

brewer.pal配色如下,大家可以根據喜好選擇:

3.畫出標簽云

wordcloud(mydata$詞匯,mydata$詞頻,random.order=FALSE,random.color=TRUE,colors=mycolors,family="myFont")

所有代碼:

Sys.setenv(JAVA_HOME=‘C:/Program Files/Java/jre1.8.0_73‘)

library(rJava)

library(Rwordseg)#讀入數據

lecture

head(lecture)

獲取數據集長度

n=length(lecture[,1]);print(n)#文本預處理

res=lecture[]#分詞+頻數統計

installDict("C:\\Users\\Administrator\\Desktop\\hongloumeng.scel","hongloumeng1")

installDict("C:\\Users\\Administrator\\Desktop\\紅樓夢群成員名字詞庫.scel","hongloumeng2")

installDict("C:\\Users\\Administrator\\Desktop\\常用文言文詞庫.scel","wenyanwen")

words=unlist(lapply(X=res, FUN=segmentCN))#unlist將list類型的數據,轉化為vector#lapply()返回一個長度與X一致的列表,每個元素為FUN計算出的結果,且分別對應到X中的每個元素。

word=lapply(X=words, FUN=strsplit, " ")

v=table(unlist(word))#table統計數據的頻數#降序排序

v=rev(sort(v))

d=data.frame(詞匯=names(v), 詞頻=v) #創建數據框#過濾掉1個字和詞頻小于200的記錄

d=subset(d, nchar(as.character(d$詞匯))>1 & d$詞頻>=100)#輸出結果

write.csv(d, file="E:/Rtagcloud/hongloumengfcresult.csv", row.names=FALSE)#畫出標簽云

library(RColorBrewer)

library(wordcloud)

mydata

mycolors

windowsFonts(myFont=windowsFont("銳字巔峰粗黑簡1.0"))

wordcloud(mydata$詞匯,mydata$詞頻,random.order=FALSE,random.color=TRUE,colors=mycolors,family="myFont")

原文:http://www.cnblogs.com/zzhzhao/p/5299876.html

總結

以上是生活随笔為你收集整理的python红楼梦人物词频统计_用R进行文本分析初探——以《红楼梦》为例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。