如何将字符串转换为缩写

时间:2019-10-23 17:09:53

标签: python machine-learning nlp text-processing

如果我有语音识别系统的文字笔录,我想做这样的事情,我想像这样转换此文本-Triple A转换为AAA。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

重复3次

如果您的意思是将字符串“ 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


注意:该解决方案还具有使重复的关键字的值相乘的效果。那是由于反向解析了字符串。