python中是否存在不用字典计算音节的方法?

python中是否存在不用字典计算音节的方法?,python,nlp,nltk,Python,Nlp,Nltk,CMUdict适用于英语,但如果我想计算另一种语言内容的音节,该怎么办 一般来说,没有。对于某些语言可能有,但如果你没有字典,你需要了解这些语言的语言结构。单词的音节划分方式因语言而异。这取决于语言。这听起来似乎是一个显而易见的答案,但归根结底是如何设计正字法。在英语中,音节几乎与单词的书写方式无关,所以你需要一本字典。许多其他语言都是这样的 但某些其他语言(如(韩国)、日语平假名和片假名(但不是汉字))的书写方式使字符本身明显与一个音节或特定数量的音节匹配。在这种情况下,如果您知道这些语言是如

CMUdict适用于英语,但如果我想计算另一种语言内容的音节,该怎么办

一般来说,没有。对于某些语言可能有,但如果你没有字典,你需要了解这些语言的语言结构。单词的音节划分方式因语言而异。

这取决于语言。这听起来似乎是一个显而易见的答案,但归根结底是如何设计正字法。在英语中,音节几乎与单词的书写方式无关,所以你需要一本字典。许多其他语言都是这样的

但某些其他语言(如(韩国)、日语平假名和片假名(但不是汉字))的书写方式使字符本身明显与一个音节或特定数量的音节匹配。在这种情况下,如果您知道这些语言是如何工作的,理论上可以使用Python将书写分解为音节


否则,您需要一本字典,或者其他一些处理这个问题的编译平台。到处看看你能找到什么。

你当然不能用一种通用的方式来处理所有的语言,因为不同的语言对文本的声音呈现方式不同

例如,匈牙利语单词“vagy”在英语使用者看来像两个音节,但它只是一个。英语单词“bike”自然会被许多其他语言的使用者理解为两个音节


此外,对于英语来说,如果没有字典,你可能无法非常准确地做到这一点,因为英语在拼写上有太多奇怪的变化。例如,我们把“poter”中的“oe”发音为两个不同的音节,但“does”中只有一个音节。其他一些语言可能也是如此。

在日语中,你会遇到一个问题,即汉字有两种不同的读物,可能有不同的音节计数。例如山 可以是“san”或“yama”。为了解决这个问题,你不能只看单个汉字……你必须弄清楚一组汉字的实际拼写是什么。“在英语中,音节几乎与单词的书写方式无关”是正确的,但有误导性。对于大量的英语单词,音节的数量等于单词中元音的数量。@StevenBurnap你是对的,这就是为什么我在回答中特别排除了汉字,只提到了片假名和平假名。更新了答案,使其更加明显。@jwpat7做了大量的计算语言学研究,我不同意这种说法。这比这要复杂得多,因为还有一个问题是什么构成元音,区分元音有向图和真正独立的元音,以及解释发音上的差异。不仅如此,我们还不清楚该把音节分在哪里:是
equal
还是
e-qual
?这可能看起来很明显,但事实并非如此。当然,这并没有涉及到英语拼字法的问题,比如单词
巨大--2个元音,但是1个音节。jdotjdot,你误解了我写的东西。我的意思是,在大多数英语文本中,音节的总数在{a,e,I,o,u,y}字母数的百分之几以内。当然,有许多单词(例如,许多以e结尾的单音节单词)的音节数和元音数不同,当然也有元音有向图和可疑元音,但对于大多数单词来说,每个音节只有一个简单的元音。此外,这个问题并不是问如何拆分成音节,而是问如何计算音节。