这样做的目的是,我希望能够将一个单词不仅转换成它的音素,而且还转换成与之对应的子串。例如,类似于:
from nltk.corpus import cmudict
d = cmudict.dict()
...
print foo('perfect', d['perfect'])
>>> (['p','er','f','e','c','t'], [u'P', u'ER0', u'F', u'EH1', u'K', u'T'])
我希望能找到NLTK的一部分或者一个我可以研究的广泛可用的资源,但是任何能解决这个问题的东西都是受欢迎的。在
另外,我希望任何解决方案都不必在cmudict中查找'perfect'的子字符串。有时子串的发音会与完整单词不同。在
奖金: 我意识到,当多个音素对应一个子串时,这可能会很困难(如果我错了,请纠正我,而不是语言学人士),例如:
^{pr2}$对于上述情况,L和E是否应同时对应AH0和L?在
结果表明,对于字符串和arpabet列表,使用音节语法有点管用。在
它给予
^{pr2}$我意识到,对于我的具体情况,我不需要按每个arpabet音素来区分,只要音节就足够了。 如果有人对更有效/更好的解决方案有什么建议,请告诉我!在
编辑:等等。。。因为我想要的是“per”而不是“perf”,有时顺序会不正确(应该是递归的,这样我就可以检查CVC、CVCC是对的还是V或VC是对的) 我不确定我是否真的懂语言学或音节,也不知道应该有什么样的规则。但是对于我的特定用例,我认为这会正常工作。在
相关问题 更多 >
编程相关推荐