1

我需要计算 R 中每个句子的日语字符百分比。我将文本分成句子,如下所示:

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

我想获取每个句子中的平假名字符数。我有一个 txt 文件来搜索其中的平假名字符。我可以为一个句子做,但不能适用于所有句子。对于一句话,我这样做:

> 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

1

谢谢大家的解答。我发现了如何解决我的问题。这比我想象的要容易。这是解决方案:

text<-readLines(filename)
text<-unlist(strsplit(text, "。")) #splits text into sentences
nchar(gsub("[ぁ-ん]","",text) #shows hiragana count (also shows katakana characters if you fix ぁ-ん part with katakana ones)
于 2013-11-19T14:39:35.490 回答
0

使用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 回答