首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统计音节

统计音节
EN

Stack Overflow用户
提问于 2011-12-18 07:36:03
回答 4查看 3.5K关注 0票数 16

我希望给R中的文本分配一些不同的可读性分数,比如Flesh。

有谁知道用R把单词分割成音节的方法吗?我不一定需要音节段本身,但需要一个计数。

举个例子:

代码语言:javascript
复制
x <- c('dog', 'cat', 'pony', 'cracker', 'shoe', 'Popsicle')

将产生: 1,1,2,2,1,3

每个数字对应单词中的音节数。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-18 20:33:35

这里提供了一些用于NLP的工具:

http://cran.r-project.org/web/views/NaturalLanguageProcessing.html

不过,这项任务不是微不足道的。这里有更多提示(包括你可以实现的算法):

Detecting syllables in a word

票数 5
EN

Stack Overflow用户

发布于 2013-01-11 14:13:37

qdap version 1.1.0执行此任务:

代码语言:javascript
复制
library(qdap)
x <- c('dog', 'cat', 'pony', 'cracker', 'shoe', 'Popsicle')
syllable_sum(x)

## [1] 1 1 2 2 1 3
票数 11
EN

Stack Overflow用户

发布于 2011-12-19 01:39:20

gsk3是正确的:如果你想要一个正确的解决方案,那就是非平凡的

例如,你必须注意单词末尾的不发音e这样的奇怪东西,或者知道它什么时候不发音,就像在结尾一样。

但是,如果您只想要一个快速近似,下面的代码就可以了:

代码语言:javascript
复制
> nchar( gsub( "[^X]", "", gsub( "[aeiouy]+", "X", tolower( x ))))
[1] 1 1 2 2 1 3

要了解这些部分是如何工作的,只需从外到内剥离函数调用,从nchar开始,然后是gsub,依此类推……...until这个表达式对你来说很有意义。

但我的猜测是,考虑到R的力量与英语中大量异常之间的斗争,你可能会得到一个像样的答案(也许99%是对的?)解析普通文本,不需要很多工作--见鬼,上面的简单解析器可能会得到正确的90%+。如果你愿意的话,只要多做一点工作,你就可以处理静音e了。

这完全取决于你的应用程序--这是足够好还是你需要更准确的东西。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8553240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档