getwd()
[1] “C:/(中略)/NICER1_3_2/2020-11-24NICER1_3_2/NICER_NNS”
[1] "C:/(中略)/NICER1_3_2/2020-11-24NICER1_3_2
setwd("NICER_NNS")
tmp0 <- readLines("JPN501.txt") # JPN501.txtの読み込み
## Warning in readLines("JPN501.txt"): 'JPN501.txt'
## で不完全な最終行が見つかりました
tmp1 <- grep("\\*JPN", tmp0, value=T) # 本文部分の *JPNで始まる行を取る
tmp2 <- gsub("\\*JPN501:\t", "", tmp1) # 不要な部分の削除
tmp3 <- strsplit(tmp2, " ") # 文を単語ごとに切り分ける
tmp4 <- unlist(tmp3) # 「リスト」の「枠を」はずして、すべての単語をフラットに
tmp5 <- sort(tmp4) # アルファベット順に並べ替え
length(tmp5) # 単語リストの要素数を数える:「述べ語数」(Token)
## [1] 322
tmp6 <- table(tmp5) # 一覧表の作成
length(tmp6) # 見出し語の数が「異なり語数」(Type)
## [1] 166
write.table(tmp6, "../tmp6.txt") # 一覧表をファイルに保存
setwd("NICER_NS")
tmp0 <- readLines("NS501.txt") # NS501.txtの読み込み
tmp1 <- grep("\\*NS", tmp0, value=T) # 本文部分の *NSで始まる行を取る
tmp2 <- gsub("\\*NS501:\t", "", tmp1) # 不要な部分の削除
tmp3 <- strsplit(tmp2, " ") # 文を単語ごとに切り分ける
tmp4 <- unlist(tmp3) # 「リスト」の「枠を」はずして、すべての単語をフラットに
tmp5 <- sort(tmp4) # アルファベット順に並べ替え
length(tmp5) # 単語リストの要素数を数える:「述べ語数」(Token)
## [1] 736
tmp6 <- table(tmp5) # 一覧表の作成
length(tmp6) # 見出し語の数が「異なり語数」(Type)
## [1] 404
write.table(tmp6, "../tmp6_ns501.txt") # 一覧表をファイルに保存
setwd("NICER_NNS")
tmp0 <- readLines("JPN501.txt") #
## Warning in readLines("JPN501.txt"): 'JPN501.txt'
## で不完全な最終行が見つかりました
tmp1 <- grep("\\*JPN", tmp0, value=T) #
tmp2 <- gsub("\\*JPN501:\t", "", tmp1) #
tmp2b <- gsub("[[:punct:]]", "", tmp2) # 句読点の削除
tmp2c <- tolower(tmp2b) # 全部小文字に変換
tmp3 <- strsplit(tmp2c, " ") # 文を単語ごとに切り分ける
tmp4 <- unlist(tmp3) # 「リスト」の「枠を」はずして、すべての単語をフラットに
tmp4 <- tmp4[tmp4 != ""] # 空の要素の削除
tmp5 <- sort(tmp4) # アルファベット順に並べ替え
length(tmp5) # 単語リストの要素数を数える:「述べ語数」(Token)
## [1] 319
tmp6 <- table(tmp5) # 一覧表の作成
length(tmp6) # 見出し語の数が「異なり語数」(Type)
## [1] 134
write.table(tmp6, "../tmp6.txt") # 一覧表をファイルに保存
file.zenbu <- list.files() # ディレクトリー内の全ファイルのリスト作成
ruiseki <- "" # 結果を入れる入れ物を準備(文字列)
for (i in file.zenbu){ # ファイルのリストから一つずつ取り出して i に入れる
yomikomi <- readLines(i, warn=F) # i から読み込んだものを、yomikomi に入れる
ruiseki <- c(ruiseki, yomikomi) # 読み込んだ結果を、ruisekiの中に c()を使って追加していく
}
setwd("NICER_NNS")
file.zenbu <- list.files() #
ruiseki <- "" #
for (i in file.zenbu){ #
yomikomi <- readLines(i, warn=F) #
ruiseki <- c(ruiseki, yomikomi) #
}
#tmp0 <- readLines("JPN501.txt") # ファイル一つ読み込む代わりに
tmp1 <- grep("\\*JPN", ruiseki, value=T) # 全部読みこんだ ruiseki を対象に
tmp2 <- gsub("\\*JPN...:\t", "", tmp1) # 数字3桁は、文字三つを正規表現で
tmp2b <- gsub("[[:punct:]]", "", tmp2) #
tmp2c <- tolower(tmp2b) #
tmp3 <- strsplit(tmp2c, " ") #
tmp4 <- unlist(tmp3) #
tmp4 <- tmp4[tmp4 != ""] #
tmp5 <- sort(tmp4) #
length(tmp5) #
## [1] 104932
tmp6 <- table(tmp5) #
length(tmp6) #
## [1] 4619
write.table(tmp6, "../jpn_all_goi.txt") # ファイル名を指定
setwd("NICER_NS") # ディレクトリーを指定
file.zenbu <- list.files() #
ruiseki <- "" #
for (i in file.zenbu){ #
yomikomi <- readLines(i, warn=F) #
ruiseki <- c(ruiseki, yomikomi) #
}
tmp1 <- grep("\\*(JPN|NS)", ruiseki, value=T) # (JPN|NS)
tmp2 <- gsub("\\*(JPN|NS)...:\t", "", tmp1) #
tmp2b <- gsub("[[:punct:]]", "", tmp2) #
tmp2c <- tolower(tmp2b) #
tmp3 <- strsplit(tmp2c, " ") #
tmp4 <- unlist(tmp3) #
tmp4 <- tmp4[tmp4 != ""] #
tmp5 <- sort(tmp4) #
length(tmp5) #
tmp6 <- table(tmp5) #
length(tmp6) #
write.table(tmp6, "../ns_all_goi.txt") # ファイル名を指定
Type: 異なり語(重複なし)
Token: 述べ語(重複あり)
異なり語数を述べ語数で割った比率
たくさんの種類の単語を使ってるほど、1に近くなる。
“I like apples. I like oranges. I like bananas.”
Token: 9
Type: 5
TTR: 5/9= 0.56
“I like apples. I love oranges. I adore bananas.”
Token: 9
Type: 7
TTR: 7/9= 0.78
setwd("NICER_NNS") # ディレクトリーを指定
file.zenbu <- list.files() #
ruiseki <- "" #
for (i in file.zenbu){ #
yomikomi <- readLines(i, warn=F) #
ruiseki <- c(ruiseki, yomikomi) #
}
tmp1 <- grep("\\*(JPN|NS)", ruiseki, value=T) #
tmp2 <- gsub("\\*(JPN|NS)...:\t", "", tmp1) #
tmp2b <- gsub("[[:punct:]]", "", tmp2) #
tmp2c <- tolower(tmp2b) #
tmp3 <- strsplit(tmp2c, " ") #
tmp4 <- unlist(tmp3) #
tmp4 <- tmp4[tmp4 != ""] #
token.list <- sort(tmp4) # 並べ替え終わった時点でtokenの単語リスト
type.list <- unique(token.list) # tokenの重複をなくしてtypeの単語リスト
token <- length(token.list)
type <- length(type.list)
token
## [1] 104932
type
## [1] 4619
## [1] 0.04401898
## [1] 0.1011158
setwd("NICER_NNS") # ディレクトリーを指定
file.zenbu <- list.files() #
ruiseki <- "" #
for (i in file.zenbu){ #
yomikomi <- readLines(i, warn=F) # i番目のファイルを読み込んだ状態
# ruiseki <- c(ruiseki, yomikomi) # 累積しないで、ファイルごとにTTRを出す
# } # ココで閉じない。
#tmp1 <- grep("\\*(JPN|NS)", ruiseki, value=T) # 変数名に注意
tmp1 <- grep("\\*(JPN|NS)", yomikomi, value=T) # 変数名に注意
tmp2 <- gsub("\\*(JPN|NS)...:\t", "", tmp1) #
tmp2b <- gsub("[[:punct:]]", "", tmp2) #
tmp2c <- tolower(tmp2b) #
tmp3 <- strsplit(tmp2c, " ") #
tmp4 <- unlist(tmp3) #
tmp4 <- tmp4[tmp4 != ""] #
token.list <- sort(tmp4) # 並べ替え終わった時点でtokenの単語リスト
type.list <- unique(token.list) # tokenの重複をなくしてtypeの単語リスト
token <- length(token.list)
type <- length(type.list)
TTR <- type/token # typeをtokeで割る
print(TTR) # 画面に出力する命令 print()
} # ここでforを閉じる
結果を累積して保存していく
kekka <- c(kekka, TTR)
setwd("NICER_NNS") # ディレクトリーを指定
kekka <- NULL # 結果を保存する変数を中身なしで用意しておく
file.zenbu <- list.files() #
ruiseki <- "" #
for (i in file.zenbu){ #
yomikomi <- readLines(i, warn=F) #
tmp1 <- grep("\\*(JPN|NS)", yomikomi, value=T) #
tmp2 <- gsub("\\*(JPN|NS)...:\t", "", tmp1) #
tmp2b <- gsub("[[:punct:]]", "", tmp2) #
tmp2c <- tolower(tmp2b) #
tmp3 <- strsplit(tmp2c, " ") #
tmp4 <- unlist(tmp3) #
tmp4 <- tmp4[tmp4 != ""] #
token.list <- sort(tmp4) #
type.list <- unique(token.list) #
token <- length(token.list)
type <- length(type.list)
TTR <- type/token # typeをtokeで割る
kekka <- c(kekka, TTR) # 結果を累積していく
} #
write.table(kekka, "../TTR.NNS.kekka.txt") # ファイルに保存
#write.table(kekka, "../TTR.NNS.kekka.txt", col.names=F, row.names=F) # 見出しと行番号を書き出さないオプション
ファイル名、Typeの数、Tokenの数
ファイル名は、i
要素を連結する命令: paste()
sep="\t"
write.table() のオプション , quote = F 引用符を付けない
setwd("NICER_NNS") # ディレクトリーを指定
kekka <- NULL # 結果を保存する変数を中身なしで用意しておく
file.zenbu <- list.files() #
ruiseki <- "" #
for (i in file.zenbu){ #
yomikomi <- readLines(i, warn=F) #
tmp1 <- grep("\\*(JPN|NS)", yomikomi, value=T) #
tmp2 <- gsub("\\*(JPN|NS)...:\t", "", tmp1) #
tmp2b <- gsub("[[:punct:]]", "", tmp2) #
tmp2c <- tolower(tmp2b) #
tmp3 <- strsplit(tmp2c, " ") #
tmp4 <- unlist(tmp3) #
tmp4 <- tmp4[tmp4 != ""] #
token.list <- sort(tmp4) #
type.list <- unique(token.list) #
token <- length(token.list)
type <- length(type.list)
TTR <- type/token #
TTR.index <- paste(i, type, token, TTR, sep="\t") # ファイル名, Type, Token, TTRの連結
kekka <- c(kekka, TTR.index) #
} #
write.table(kekka, "../TTR.JPN.kekka.txt", col.names=F, row.names=F, quote = F) # 見出しと行番号を書き出さないオプション
独自の名前 <- function(){
この間にスクリプトを書いておく
この間にスクリプトを書いておく
この間にスクリプトを書いておく
}
独自の名前 <- function(){
この間にスクリプトを書いておく
この間にスクリプトを書いておく
この間にスクリプトを書いておく
return(結果)
}
myTTR <- function(){ # 独自の命令function()ここから
# ------------------------------------------この部分は上と同じ
kekka <- NULL #
file.zenbu <- list.files() #
ruiseki <- "" #
for (i in file.zenbu){ #
yomikomi <- readLines(i, warn=F) #
tmp1 <- grep("\\*(JPN|NS)", yomikomi, value=T) #
tmp2 <- gsub("\\*(JPN|NS)...:\t", "", tmp1) #
tmp2b <- gsub("[[:punct:]]", "", tmp2) #
tmp2c <- tolower(tmp2b) #
tmp3 <- strsplit(tmp2c, " ") #
tmp4 <- unlist(tmp3) #
tmp4 <- tmp4[tmp4 != ""] #
token.list <- sort(tmp4) #
type.list <- unique(token.list) #
token <- length(token.list) #
type <- length(type.list) #
TTR <- type/token #
TTR.index <- paste(i, type, token, TTR, sep="\t")
kekka <- c(kekka, TTR.index) #
} # forを閉じている
#---------------------------------------------ここまで上と同じ
return(kekka) # function()の結果を出力する
} # 独自の命令function()ココまで
setwd("NICER_NS")
result <- myTTR() # TTRの指標の結果を保存して、
write.table(result, "../TTR.NS.kekka.txt", col.names=F, row.names=F, quote = F)
https://sugiura-ken.org/sgr/nice-nagoya-interlanguage-corpus-of-english/nice-2-3/
●NICE Set 1: 当初の科研で収集した500語目安の指示が有ったデータのうち、
<font color="red">NICE Set 1A: 同一著者による執筆が初回のもの(161ファイル)</font>
NICE Set 1B: 同一著者による執筆が2回目、3回目のもの( 29ファイル)
●NICE Set 2: NICE 2.0で追加した500語目安の指示が無かったデータのうち、
NICE Set 2A: 同一著者が二つのトピックで執筆しているもの(120ファイル)
NICE Set 2B: 同一著者が一つのトピックで執筆しているもの(13ファイル)
●NS
NS1: 当初の200
NS2: その後の追加10
COCA: 950 million words (有料)
COCA Samples: 8.9 mw(無料) 全体の100分の1で、約900万語
ミシガン大学の学生の学期末レポート(母語話者・留学生とも)
https://lsa.umich.edu/eli/language-resources/micase-micusp.html