【发布时间】:2020-02-19 23:56:00
【问题描述】:
如果我有一个语音识别系统的文本记录,我想做这样的事情,我想像这样转换这个文本 - AAA 中的 Triple A 转换。有人可以帮忙吗?
【问题讨论】:
-
可以做一个简单的查找和替换:s/Triple A/AAA/g
标签: python machine-learning nlp text-processing
如果我有一个语音识别系统的文本记录,我想做这样的事情,我想像这样转换这个文本 - AAA 中的 Triple A 转换。有人可以帮忙吗?
【问题讨论】:
标签: python machine-learning nlp text-processing
如果您的意思是将字符串“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. 双 x 三 y
2. Double Triple y
3. Triple x Double Double y Triple z Double
输出:
1. xx yyy
2.yyyyyy
3. xxx yyyy zzz Double
注意:此方案还有将重复关键字的值相乘的效果。这是由于反向解析字符串。
【讨论】: