замена аббревиатуры на значение с использованием Python - PullRequest
0 голосов
/ 09 мая 2018

у меня словарь такой, что мне нужно заменить акронимы в тексте его значением в словаре. Я использую этот код, но он не дает мне соответствующего результата, когда я тестирую функцию, используя acronyms("we are gr8 and awsm"), это должно дать мне, что мы великолепны и потрясающе

def acronyms(text):
    my_dict = {}
    with open('acronym.txt') as fileobj:
        for line in fileobj:
            key, value = line.split('\t')
            my_dict[key] = value
    acronym_words = []
    words = word_tokenize(text)
    for word in words:
        for candidate_replacement in my_dict:
            if candidate_replacement in word:
                word = word.replace(candidate_replacement, my_dict[candidate_replacement])
                acronym_words.append(word)
    acronym_sentence = " ".join(acronym_words)
    return acronym_sentence

1 Ответ

0 голосов
/ 09 мая 2018

Вы можете использовать split, чтобы разбить предложение на отдельные слова, а затем простое понимание списка для замены желаемых значений:

dct = {'gr8': 'great', 'awsm': 'awesome'}
s = "we are gr8 and awsm"

def acronym(s, dct):
  return ' '.join([dct.get(i, i) for i in s.split()])

print(acronym(s, dct))

Выход:

we are great and awesome
...