トップ 履歴 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

myLing.R

*disclaimer
602960

  • NICERデータ分析用
    • 作業ディレクトリーを目的のフォルダーに設定
    • 実行すると、一つ上のフォルダーに catresult.txtという名前で結果が保存される。
ファイル名topicscoretypetokenTTRGI平均単語長平均文長
myLing <- function() {
  files <- list.files()
  for (i in files) {
    type <- 0
    token <- 0
    # type と token の変数の初期化
    lines.tmp <- scan(i, what="char", sep="\n")
    #ファイルを選択。
    data.tmp <- grep("\\*(JPN|NS)...:\t", lines.tmp, value=T)
    #*で始まる行のみ。
    body.tmp <- gsub("\\*(JPN|NS)...:\t", "", data.tmp)
    #行頭の記号とタグを削除。
    body.tmp <- body.tmp[body.tmp != ""]
    # 空の要素を削除する「イディオム」
    body.lower <- tolower(body.tmp)
    body.token <- unlist(strsplit(body.lower, "\\W"))
    body.token <- body.token[body.token != ""]
    # 空の要素を削除する「イディオム」
    type <- length(unique(body.token))
    token <- length(body.token)
    TTR <- type/token
    GI <- type/sqrt(token)
    # ファイル名の取得は、i に入っている
    # トピックの取得
    topic.line <- grep("^@Topic:\t", lines.tmp, value=T)
    topic <- gsub("^@Topic:\t", "", topic.line)
    # スコアの取得
    criterion.line <- grep("^@Criterion:\t", lines.tmp, value=T)
    score <- gsub("^@Criterion:\t", "", criterion.line)
    # Average Word Length
    awl <- nchar(paste(body.token, collapse=""))/length(body.token)
    # Average Sentence Length
    asl <- length(body.token)/length(body.tmp)
    #
    #cat(i, topic, score, type, token, TTR, GI, awl, asl, "\n")
    cat(i, topic, score, type, token, TTR, GI, awl, asl, "\n", file="../catresult.txt", append=T)
    #cat は結果を出力する命令(改行が必要なら "\n"も出力する)
  }
}