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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

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

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

剛剛接觸R語(yǔ)言和文本分析,為了將二者結(jié)合,試著對(duì)《紅樓夢(mèng)》進(jìn)行分析,首先對(duì)《紅樓夢(mèng)》進(jìn)行分詞處理,并統(tǒng)計(jì)詞頻,同時(shí)畫(huà)出標(biāo)簽云。

其實(shí)文本分析還可以分析其它很多東西,我的下一步打算分析新浪微博。現(xiàn)在先寫一個(gè)小的分析,作為學(xué)習(xí)用。

文本分析是指對(duì)文本的表示及其特征項(xiàng)的選取;文本分析是文本挖掘、信息檢索的一個(gè)基本問(wèn)題,它把從文本中抽取出的特征詞進(jìn)行量化來(lái)表示文本信息。

一.需要加載的包

需要用到rJava,Rwordseg,wordcloud

安裝步驟:

1.安裝java:

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

2.安裝rJava:

在R的命令框輸入

install.packages("rJava")

錯(cuò)誤解決方案:

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

解決方案:換路徑

錯(cuò)誤2.

解決方案:

在R中輸入

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

3.安裝Rwordseg:

下載地址:

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

點(diǎn)這兒下載Rwordseg

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

4.安裝wordcloud

在R的命令框輸入

install.packages("wordcloud")

利用Rwordseg分詞包進(jìn)行分詞

二.分析過(guò)程

(一)基礎(chǔ)導(dǎo)入

library(rJava)

library(Rwordseg)

library(RColorBrewer)

library(wordcloud)

(二)讀入數(shù)據(jù)

將需要分析的文本放入記事本中,保存到相應(yīng)路徑,并在R中打開(kāi)。這兒我導(dǎo)入的是《紅樓夢(mèng)》的文本。

lecture

(三)優(yōu)化詞庫(kù)

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

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

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

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

(四)分詞+統(tǒng)計(jì)詞頻

words=unlist(lapply(X=res, FUN=segmentCN))#unlist將list類型的數(shù)據(jù),轉(zhuǎn)化為vector#lapply()返回一個(gè)長(zhǎng)度與X一致的列表,每個(gè)元素為FUN計(jì)算出的結(jié)果,且分別對(duì)應(yīng)到X中的每個(gè)元素。

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

v=table(unlist(word))#table統(tǒng)計(jì)數(shù)據(jù)的頻數(shù)

(五)對(duì)詞頻進(jìn)行排序

#降序排序

v=rev(sort(v))

(六)創(chuàng)建數(shù)據(jù)框

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

(七)過(guò)濾掉1個(gè)字的結(jié)果和詞頻小于100的結(jié)果

篩選標(biāo)準(zhǔn)大家可以根據(jù)自己的需求進(jìn)行修改

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

(八)詞頻結(jié)果輸出

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

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

詞頻統(tǒng)計(jì)結(jié)果(節(jié)選)如下:

(九)畫(huà)出標(biāo)簽云

1.讀入詞頻統(tǒng)計(jì)數(shù)據(jù)

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

mydata

2.設(shè)置字體類型和字體顏色

mycolors

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

字體下載地址:

http://www.zhaozi.cn/

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

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

3.畫(huà)出標(biāo)簽云

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)#讀入數(shù)據(jù)

lecture

head(lecture)

獲取數(shù)據(jù)集長(zhǎng)度

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

res=lecture[]#分詞+頻數(shù)統(tǒng)計(jì)

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

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

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

words=unlist(lapply(X=res, FUN=segmentCN))#unlist將list類型的數(shù)據(jù),轉(zhuǎn)化為vector#lapply()返回一個(gè)長(zhǎng)度與X一致的列表,每個(gè)元素為FUN計(jì)算出的結(jié)果,且分別對(duì)應(yīng)到X中的每個(gè)元素。

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

v=table(unlist(word))#table統(tǒng)計(jì)數(shù)據(jù)的頻數(shù)#降序排序

v=rev(sort(v))

d=data.frame(詞匯=names(v), 詞頻=v) #創(chuàng)建數(shù)據(jù)框#過(guò)濾掉1個(gè)字和詞頻小于200的記錄

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

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

library(RColorBrewer)

library(wordcloud)

mydata

mycolors

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

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

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

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。