*disclaimer
1198231
R.scripts Rのちょっとしたスクリプト
検索
- grepは、検索文字列が含まれる要素を返す。
- 文字列が「単語」で、要素が「文」の場合、
- その「文」の中に「単語」が含まれているかどうかを探す。
- 含まれている「文」を返す。
- 注意点:「文」の中に「単語」が2回使われている場合
- grepしたらその「文」を返すだけ。その「文」にはその「単語」が含まれている
- 「文」の中に「単語」が2回含まれていることは答えてくれない。
myGrep
- ウインドウが開いて検索対象ファイルをえらぶ(例: myGrep("had some")
myGrep <- function(a){
lines.tmp <- scan(choose.files(), what="char", sep="\n")
grep(a, lines.tmp, value=T)
}
myGrep2
- ファイル名も指定する(例: myGrep2("had some", "JPN005.txt)
- ただし、作業ディレクトリーが検索対象ファイルのあるディレクトリー(フォルダ)にあること
myGrep2 <- function(a, b){
lines.tmp <- scan(b, what="char", sep="\n")
grep(a, lines.tmp, value=T)
}
myGrep3.R
- ディレクトリー内のすべてのファイルに対し、対象とする文字列が何回出現するかの一覧表を出力
myGrep3.R(525)
myGrep3 <- function(a){
#copyleft 2019-01-24 sugiura@nagoya-u.jp
output.file = choose.files()
#結果を保存するファイル名を指定する。保存場所に注意
#(ファイル名を聞かれたら適当に名前を付ける。例えば jpn.txt)
files <- list.files()
for (i in files) {
hit <- vector()
lines.tmp <- scan(i, what="char", sep="\n")
#ファイルを選択。
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 != ""]
# 空の要素を削除する「イディオム」1
hit <- grep(a, body.token)
cat(i, length(hit), "\n", file=output.file, append=T)
}
}
myGrep4.R
Type(異なり語)の一覧の出力
myAllTypes.R
- NICE形式のファイルの異なり語の一覧の出力
- 作業ディレクトリーをフォルダー内に
- 結果を保存するファイルをフォルダー外に作成
Token(延べ語)の一覧の出力
myAllTokens.R(548)
- NICE形式のファイルの延べ語の一覧の出力
- 作業ディレクトリーをフォルダー内に
- 結果を保存するファイルをフォルダー外に作成
語彙リストの作成
テキストファイルを選んで作成
WordFreqList.R
カレント・ディレクトリー内のすべてのテキストファイルから作成
- 作業ディレクトリーを目的のディレクトリーに移動していること
- getwd()で確認
- テキストファイルだけが入っていることを確認
- list.files()で確認
- 標準出力(コンソール画面)に出力される
- オブジェクトに保存すればそのままdata.frameとして使用可能
sample.df <- myWordList()
myWordList.R(518)
単語リストのチェック
checkWordList.R
- Wordリストにあるかどうかチェック
- ないものだけを出力
言語特徴量を算出
myTextIndex.R
- ディレクトリー内のすべてのテキストファイルの基礎的言語特徴量を算出
myIndexNICER3
- ファイル名・スコア・言語指標を取り出す
https://sugiura-ken.org/wiki/