我希望给R中的文本分配一些不同的可读性分数,比如Flesh。
有谁知道用R把单词分割成音节的方法吗?我不一定需要音节段本身,但需要一个计数。
举个例子:
x <- c('dog', 'cat', 'pony', 'cracker', 'shoe', 'Popsicle')将产生: 1,1,2,2,1,3
每个数字对应单词中的音节数。
发布于 2011-12-18 20:33:35
这里提供了一些用于NLP的工具:
http://cran.r-project.org/web/views/NaturalLanguageProcessing.html
不过,这项任务不是微不足道的。这里有更多提示(包括你可以实现的算法):
发布于 2013-01-11 14:13:37
qdap version 1.1.0执行此任务:
library(qdap)
x <- c('dog', 'cat', 'pony', 'cracker', 'shoe', 'Popsicle')
syllable_sum(x)
## [1] 1 1 2 2 1 3发布于 2011-12-19 01:39:20
gsk3是正确的:如果你想要一个正确的解决方案,那就是非平凡的。
例如,你必须注意单词末尾的不发音e这样的奇怪东西,或者知道它什么时候不发音,就像在结尾一样。
但是,如果您只想要一个快速近似,下面的代码就可以了:
> nchar( gsub( "[^X]", "", gsub( "[aeiouy]+", "X", tolower( x ))))
[1] 1 1 2 2 1 3要了解这些部分是如何工作的,只需从外到内剥离函数调用,从nchar开始,然后是gsub,依此类推……...until这个表达式对你来说很有意义。
但我的猜测是,考虑到R的力量与英语中大量异常之间的斗争,你可能会得到一个像样的答案(也许99%是对的?)解析普通文本,不需要很多工作--见鬼,上面的简单解析器可能会得到正确的90%+。如果你愿意的话,只要多做一点工作,你就可以处理静音e了。
这完全取决于你的应用程序--这是足够好还是你需要更准确的东西。
https://stackoverflow.com/questions/8553240
复制相似问题