1

Rのすべての文の日本語の文字の割合を数える必要があります。テキストを文に分割すると、次のようになります。

> text  
[1]  "若い人が仕事がつまらない会社が面白くないというのはなぜか"
[2]  "それは要するに自分のやることを人が与えてくれると思っているからです"
[3]  "でも会社が自分にあった仕事をくれるわけではありません"

各文のひらがなの文字数を取得したい。ひらがなを検索するtxtファイルがあります。1 つの文についてはできますが、すべての文に適用することはできません。1 つの文については、次のようにします。

> hiragana<-scan("hiragana.txt",what="char")
> hiragana<-unlist(strsplit(hiragana,"")) #hiragana list to search in sentences
> b<-text[3]
> b<-unlist(strsplit(b,"")) # so that I can search characters in the sentence
> b
[1] "若" "い" "人" "が" "仕" "事" "が" "つ" "ま" "ら" "な" "い" "会" "社"
[15] "が" "面" "白" "く" "な" "い" "と" "い" "う" "の" "は" "な" "ぜ" "か"
> b[(b %in% hiragana)]
[1] "い" "が" "が" "つ" "ま" "ら" "な" "い" "が" "く" "な" "い" "と" "い"
[15] "う" "の" "は" "な" "ぜ" "か"
> length(b[(b %in% hiragana)])
[1] 20

私の質問は、どうすれば複数の文で機能させることができるかです。次のような出力が必要です。

>output
[1]  20
[2]  28
[3]  20

私の問題はこれに似ていますが、これを特定の文ではなく各文に適用したいと思います。

ご意見はありますか?

4

2 に答える 2

0

を使用すると、ひらがなファイルを 1 行ずつ読み取るループでreadLinesコードをラップするだけです。for

conn <- file("hiragana.txt", "rt")
nLines <- system("wc -l hiragana.txt")
output <- rep(0, nLines)
for (i in 1:nLines) {
  line <- readLines(conn, n=1, warn=FALSE)
  chars <- strsplit(line, "")[[1]]
  nHiragana <- sum(chars %in% hiragana, na.rm=TRUE)
  output[i] <- nHiragana   
}
close(conn)
output
于 2013-10-26T12:51:13.860 に答える