示例 :说-> Spubeak,更多信息在这里
不要给我一个解决方案,而是指向正确的方向或告诉我可以使用哪个python库?我正在考虑使用正则表达式,因为我必须找到一个元音,但是我可以使用哪种方法在元音前面插入“
ub”呢?
比一个简单的正则表达式更复杂,例如,
"Hi, how are you?" → "Hubi, hubow ubare yubou?"
简单的正则表达式将无法捕获e
未在中发音的正则表达式are
。
您需要一个提供发音词典的库,例如nltk.corpus.cmudict
:
from nltk.corpus import cmudict # $ pip install nltk
# $ python -c "import nltk; nltk.download('cmudict')"
def spubeak(word, pronunciations=cmudict.dict()):
istitle = word.istitle() # remember, to preserve titlecase
w = word.lower() #note: ignore Unicode case-folding
for syllables in pronunciations.get(w, []):
parts = []
for syl in syllables:
if syl[:1] == syl[1:2]:
syl = syl[1:] # remove duplicate
isvowel = syl[-1].isdigit()
# pronounce the word
parts.append('ub'+syl[:-1] if isvowel else syl)
result = ''.join(map(str.lower, parts))
return result.title() if istitle else result
return word # word not found in the dictionary
例:
#!/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))
“你好你好吗?” →“ Hubay,hubo ubar yubuw?”
注意:它与第一个示例不同:每个单词都用其音节替换。
我必须编写一个小程序来删除作为输入的字符串中的重音。我还必须创建一个函数,将每个带重音的字符替换为相应的不带重音的字符,我有一个循环,为main中的每个字符调用该函数: 问题是,如果我在main中提供字符串“é”作为输入,则该字符串被视为大小为2的字符串(参见下面的示例),并且上面的函数被调用两次而不是一次。此外,作为函数输入的char不是正确的。我想我在函数中遇到了相同的大小问题。这个重音不应该
问题内容: 我需要一条SQL更新语句来更新所有行的特定字段,并在现有值的前面添加一个字符串“ test”。 例如,如果现有值为“ try”,则应变为“ testtry”。 问题答案: 您可以使用CONCAT函数来执行此操作: 如果您想更聪明地只更新尚未预先测试的列,请尝试
我试图计算每个字符串中的元音,我想根据count变量交换字符串,但我做不到。在接受字符串后,我用toCharArray()函数将其转换为char数组,并将每个字符与小写和大写元音进行比较。 我收到一个错误。编写代码部分的任何帮助都将不胜感激。 输入: 输出:
输入20个字符串的数组。制作一个程序,打印出辅音多于元音的字符串,其中字母“r”至少重复3次。 我相信问题出在我的 if 循环中,但不知何故我不明白为什么它不能正常工作。它会打印我输入的每个字符串。 这是我写的代码:
问题内容: 我有一个包含二进制数字的字符串。如何将其分成几对数字? 假设字符串是: 我想在每2个字符后添加一个分隔符,例如“:”(即冒号)。 我希望输出为: 我怎么能在Swift中做到这一点? 问题答案: Swift 5.1•Xcode 11或更高版本 测试中
本文向大家介绍如何在Python中从字符串中删除辅音?,包括了如何在Python中从字符串中删除辅音?的使用技巧和注意事项,需要的朋友参考一下 对于此问题,使用正则表达式是最简单的。您可以使用“ |”分隔多个字符 并使用re.sub(chars_to_replace,string_to_replace_with,str)。例如: 注意:您也可以使用[]创建要在正则表达式中替换的字符组。 如果只想保