如果我有语音识别系统的文字笔录,我想做这样的事情,我想像这样转换此文本-Triple A转换为AAA。有人可以帮忙吗?
答案 0 :(得分:1)
如果您的意思是将字符串“ Triple”视为一个关键字,其后一个字符串的值将自己替换为原来的三倍,那么以下内容可以满足您的要求:
def tripler(s):
triples = 0
s = [ss.strip() for ss in s.split()][::-1]
for i in range(len(s) - 1):
if s[i - triples + 1] == 'Triple':
s[i - triples] *= 3
del s[i - triples + 1]
triples += 1
return ' '.join(s[::-1])
要多次重复该参数,可以使用具有不同关键字和相应值的字典:
repeat_keywords = {'Double':2, 'Triple':3}
def repeater(s):
repeats = 0
s = [ss.strip() for ss in s.split()][::-1]
for i in range(len(s) - 1):
if s[i - repeats + 1] in repeat_keywords:
s[i - repeats] *= repeat_keywords[s[i - repeats + 1]]
del s[i - repeats + 1]
repeats += 1
return ' '.join(s[::-1])
输入:
1. Double x Triple y
2. Double Triple y
3.三倍x双倍Double y三倍z Double
输出:
1. xx yyy
2. yyyyyy
3. xxx yyyy zzz Double
注意:该解决方案还具有使重复的关键字的值相乘的效果。那是由于反向解析了字符串。