*disclaimer
1198412
myIndices4.R
R
myIndices4.R(318)
myIndices4 <- function(){
#copyleft 2019-01-17 sugiura@nagoya-u.jp
output.file = choose.files()
#結果を保存するファイル名を指定する。保存場所に注意
#(ファイル名を聞かれたら適当に名前を付ける。例えば jpn.txt)
files <- list.files()
for (i in files) {
Tokens <- 0
Types <- 0
NoS <- 0
TTR <- 0
GI <- 0
AWL <- 0
ASL <- 0
wttr <- 0
ttrsum <- 0
MATTR <- 0
Score <- ""
lines.tmp <- scan(i, what="char", sep="\n")
#ファイルを選択。
Criterion <- grep("@Criterion:\t", lines.tmp, value=T)
Score <- gsub("@Criterion:\t", "", Criterion)
Score <- as.integer(Score)
data.tmp <- grep("\\*(JPN|NS)...:\t", lines.tmp, value=T)
#*で始まり
# JPNかNS があって、
# その後ろに、3文字あって、
# その後ろに、コロンの記号とタブ記号がある行のみ。
body.tmp <- gsub("\\*(JPN|NS)...:\t", "", data.tmp)
#行頭の記号とタブ記号を削除。
body.tmp <- body.tmp[body.tmp != ""]
# 空の要素を削除(空でない要素のみを残す)する「イディオム」
body.lower <- tolower(body.tmp)
# 小文字にして
body.nopunc <- gsub("\\W", " ", body.lower)
# 記号をスペースに
body.single <- gsub(" +", " ", body.nopunc)
# 重複スペースを一つに
body.clear <- gsub(" $", "", body.single)
# 文末スペースの削除
body.token <- unlist(strsplit(body.clear, " "))
#
body.token <- body.token[body.token != ""]
# 空の要素を削除する「イディオム」
body.type <- unique(body.token)
Tokens <- length(body.token)
Types <- length(body.type)
NoS <- length(body.tmp)
TTR <- Types/Tokens
GI <- Types/sqrt(Tokens)
AWL <- nchar(paste(body.token, collapse=""))/Tokens
ASL <- Tokens/NoS
body.token2 <- c(body.token, body.token)
for(j in 1:Tokens){
mado <- body.token2[j:(99+j)]
wttr <- length(unique(sort(mado)))/100
ttrsum <- ttrsum + wttr
}
MATTR <- ttrsum/Tokens
cat(i, Score, Tokens, Types, NoS, TTR, GI, MATTR, AWL, ASL, "\n", file=output.file, append=T)
}
}
https://sugiura-ken.org/wiki/