Python:如何在字符串中的每个发音元音前加上字符串“ub”?

2024-09-30 04:30:19 发布

您现在位置:Python中文网/ 问答频道 /正文

示例:Speak->;spubake,more info here

不要给我一个解决方案,但要指出正确的方向,或者告诉我可以使用哪个python库?我在想regex,因为我必须找到一个元音,但是我可以用哪种方法在元音前面插入'ub'?在


Tags: 方法gtinfo示例heremore解决方案方向
3条回答

正则表达式确实是最好的路径。如果不确定如何继续,请检查捕获组的工作方式,以及如何将它们包含在替换中。在

它比简单的regex e.g.,更复杂

"Hi, how are you?" → "Hubi, hubow ubare yubou?"

简单的regex不会捕捉到eare中不发音。在

您需要提供发音字典的库,如nltk.corpus.cmudict

^{pr2}$

示例:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re

sent = "Hi, how are you?"
subent = " ".join(["".join(map(spubeak, re.split("(\W+)", nonblank)))
                   for nonblank in sent.split()])
print('"{}" → "{}"'.format(sent, subent))

输出

"Hi, how are you?" → "Hubay, hubaw ubar yubuw?"

注:它与第一个例子不同:每个单词都用它的音节代替。在

可以使用正则表达式进行替换。见^{}。在

示例:

>>> import re
>>> re.sub(r'(e)', r'ub\1', 'speak')
'spubeak'

您需要阅读regex组的文档,等等。你还需要弄清楚如何匹配不同的元音,而不仅仅是示例中的元音。在

{a3}这是一个很棒的Python设计的{和一个使用a3}代码的链接

Cainteoir的文本到语音规则引擎设计(尚未完全实现)使用正则表达式。另请参见Cainteoir作者的另一篇文章Pronunciation Dictionaries and Regexes。在

相关问题 更多 >

    热门问题