Замена слова в Python - PullRequest
       2

Замена слова в Python

0 голосов
/ 12 октября 2018

Я работаю с 4000 символьными текстовыми строками, содержащими информацию обратной связи с клиентом.Информация подготовлена ​​сотрудником и заполнена жаргоном, таким как коды продуктов.Мне нужно расширить эти коды продуктов.В настоящее время я использую некоторый код, используемый в Sarkar (2016), который расширил сокращения.

Большую часть времени код работает, хотя будут случаи, когда он не работает.Лучше всего показать код, чтобы объяснить, что происходит.

ABBREVIATION_MAP = {
 "xxxx" : "Product X",
 "yyyy" : "Product Y",
 "zzzz" : "Product Z"
 }

def expand_abbreviations(sentence, abbreviation_mapping):
    abbreviations_pattern = re.compile('({})'.format('|'.join(abbreviation_mapping.keys())),
                                      flags=re.DOTALL)

def expand_match(abbreviation):
    match=abbreviation.group(0)
    first_char = match[0]
    expanded_abbreviation = abbreviation_mapping.get(match)\
                            if abbreviation_mapping.get(match)\
                            else abbreviation_mapping.get(match.lower())
    expanded_abbreviation = first_char+expanded_abbreviation[1:]
    return expanded_abbreviation

    expanded_sentence = abbreviations_pattern.sub(expand_match, sentence)
    return expanded_sentence


df1['after'] = df1['before'].apply(lambda x: expand_abbreviations(x, ABBREVIATION_MAP))

Если мы посмотрим на преобразование xxxx в Product x, 90% времени, когда оно работает.

Однако в некоторых записях оно остаетсяxxxx.

Иногда я получаю xxxx, преобразованный в xroduct X. Что-то для yyyy, иногда я получаю y.

Я экспериментировал с использованием альтернатив 'xxxx' -> 'xxxx',«xxxx» и «xxxx» безрезультатно.

Я рассмотрел расположение слова, требующего преобразования в тестовой строке (например, начало, середина, конец), и нет никаких подсказок относительно того, почемукод не работает во всех случаях.

Если xxxx встречается дважды в строке, иногда оба преобразуются, иногда один, иногда ни один.

Любая помощь приветствуется.В своем ответе, пожалуйста, учтите, что я 20-летний пользователь SAS, 4-недельный пользователь Python, вам нужно будет его замять.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...