ターム・文書行列を分析するには、双対尺度法が適しているのかなぁ?
石田さんのデータを使って、分析してみた。
> layout(matrix(1:2, 2))
> library(RMeCab)
> res <- docMatrix("writers", pos=c("名詞", "形容詞"), minFreq=50)
file = writers/ogai_gan.txt
file = writers/ogai_kanoyoni.txt
file = writers/ogai_niwatori.txt
file = writers/ogai_vita.txt
file = writers/soseki_eijitsu.txt
file = writers/soseki_garasu.txt
file = writers/soseki_omoidasu.txt
file = writers/soseki_yume.txt
Term Document Matrix includes 2 information rows!
whose names are [[LESS-THAN-50]] and [[TOTAL-TOKENS]]
if you remove these rows, run
result[ row.names(result) != "[[LESS-THAN-50]]" , ]
result[ row.names(result) != "[[TOTAL-TOKENS]]" , ]
> (res <- res[-(1:2),])
docs
terms ogai_gan.txt ogai_kanoyoni.txt ogai_niwatori.txt ogai_vita.txt soseki_eijitsu.txt
こと 52 0 0 55 0
の 125 103 135 134 55
よう 61 86 52 0 53
それ 0 54 0 0 0
秀麿 0 90 0 0 0
さん 0 0 64 0 0
石田 0 0 115 0 0
もの 0 0 0 50 0
僕 0 0 0 92 0
自分 0 0 0 0 91
私 0 0 0 0 0
人 0 0 0 0 0
彼 0 0 0 0 0
事 0 0 0 0 0
時 0 0 0 0 0
余 0 0 0 0 0
docs
terms soseki_garasu.txt soseki_omoidasu.txt soseki_yume.txt
こと 0 0 0
の 92 84 0
よう 0 0 66
それ 51 0 0
秀麿 0 0 0
さん 0 0 0
石田 0 0 0
もの 53 0 0
僕 0 0 0
自分 0 0 95
私 259 0 0
人 50 0 0
彼 96 0 0
事 0 55 0
時 0 50 0
余 0 103 0
> plot(hclust(dist(res), method="ward"), hang=-1)
> source("http://aoki2.si.gunma-u.ac.jp/R/src/dual.R", encoding="euc-jp")
> res2 <- dual(res)
> summary(res2)
Axis-1 Axis-2 Axis-3 Axis-4 Axis-5 Axis-6 Axis-7
eta square 0.745 0.715 0.554 0.474 0.386 0.123 0.009
correlation 0.863 0.846 0.744 0.688 0.621 0.350 0.095
contribution 24.803 23.797 18.430 15.760 12.832 4.081 0.297
cumulative contribution 24.803 48.600 67.029 82.789 95.621 99.703 100.000
Chi square value 3432.342 3150.649 2024.909 1609.991 1222.173 328.273 22.525
degrees of freedom 21.000 19.000 17.000 15.000 13.000 11.000 9.000
P value 0.000 0.000 0.000 0.000 0.000 0.000 0.007
row score
terms Axis-1 Axis-2 Axis-3 Axis-4 Axis-5 Axis-6 Axis-7
こと 0.102 -0.153 1.248 -1.925 -0.263 2.582 1.729
の 0.179 0.027 0.473 -0.150 0.118 0.514 -1.344
よう 0.601 -0.941 -0.371 0.119 0.474 0.729 1.378
それ -0.831 -0.093 -0.351 0.322 1.829 -0.719 0.173
秀麿 0.159 -0.561 -0.022 0.180 3.948 -1.563 0.121
さん 0.590 -0.546 1.879 2.489 -1.072 -0.800 0.625
石田 0.590 -0.546 1.879 2.489 -1.072 -0.800 0.625
もの -1.037 0.230 0.466 -1.121 -0.612 -1.292 0.456
僕 -0.144 0.047 1.701 -2.809 -0.821 -2.846 0.699
自分 1.036 -1.662 -2.154 -0.393 -1.270 -0.788 -0.555
私 -1.879 0.403 -0.698 0.472 -0.414 0.175 0.227
人 -1.879 0.403 -0.698 0.472 -0.414 0.175 0.227
彼 -1.879 0.403 -0.698 0.472 -0.414 0.175 0.227
事 1.554 2.746 -0.859 0.181 -0.104 -0.251 0.550
時 1.554 2.746 -0.859 0.181 -0.104 -0.251 0.550
余 1.554 2.746 -0.859 0.181 -0.104 -0.251 0.550
column score
Axis-1 Axis-2 Axis-3 Axis-4 Axis-5 Axis-6 Axis-7
ogai_gan.txt 0.313 -0.308 0.573 -0.681 0.203 2.915 0.267
ogai_kanoyoni.txt 0.138 -0.474 -0.017 0.124 2.452 -0.547 0.011
ogai_niwatori.txt 0.510 -0.462 1.399 1.713 -0.666 -0.280 0.059
ogai_vita.txt -0.124 0.040 1.266 -1.934 -0.510 -0.997 0.066
soseki_eijitsu.txt 0.791 -1.186 -1.280 -0.275 -0.679 -0.069 -2.731
soseki_garasu.txt -1.622 0.341 -0.520 0.325 -0.257 0.061 0.021
soseki_omoidasu.txt 1.342 2.322 -0.639 0.124 -0.064 -0.088 0.052
soseki_yume.txt 0.993 -1.615 -1.912 -0.266 -0.893 -0.474 2.513
> plot(res2)
> layout(1)