Как заменить некоторые слова в тексте другим словом - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь заменить слово "звуковая система" на "sound_sytem" в python, используя словарь. Однако это не работает.

Вот мой код:

dictionary = {'audio system': 'audio_system'}
def replace_word(text):
  return " ".join([dictionary.get(w,w) for w in text.split()])

text = "adding a little more to an audio system,improve the audio system to be better"

print(replace_word(text))

Вот мой вывод:

adding a little more to an audio system,improve the audio system to be better

1 Ответ

2 голосов
/ 17 апреля 2020

Попробуйте использовать replace():

for i in dictionary:
    text.replace(i,dictionary[i])

, это просто заменяет ключ значением.
Ваш код не работает, потому что функция разделения по умолчанию разделяется на пробел, а audio system разделяется как audio и system.


Давайте сделаем это по-своему, используя join:

dictionary = {'audio system': 'audio_system'}
def replace_word(text):
  return [dictionary[j].join([text.split(i) for i in dictionary][0]) for j in dictionary][0]

text = "adding a little more to an audio system,improve the audio system to be better"

print(replace_word(text))
...