pastebin.com/RmPbd1KM

я есть текстовый файл, который содержит список жаргонных слов и их заменителей в реальном английском языке. Я преобразовал этот текстовый файл в словарь, используя «:» в качестве точки разделения, и после печати словаря после преобразования все выглядит нормально.

Однако ошибка, возникающая из этой строки:slangs_re = re.compile('|'.join(slang_dict.keys())) говоритnothing to repeat at position 112207.

При попытке отладки я обнаружил, что ошибка как-то связана со словарем. Это потому, что когда я запустил код прямо ниже, я не получил правильный вывод, но я также не получил ошибку. Ожидаемый результат для этого кода - «пригодность», но фактический результат - «пригодность».

import re

test = "fitess"

slang_dict = {"fitess":"fitness", "damm":"damn"}

slangs_re = re.compile('|'.join(slang_dict.keys()))

def correct_slang(s, slang_dict=slang_dict):
    def replace(match):
        return slang_dict[match.group(0)]

    return slangs_re.sub(replace, s)

test = correct_slang(test)
print(test)

И это код со словарем (извините, но текстовый файл слишком велик для включения. Пример доступенВот). Ожидаемый результат - «пригодность», но фактический результат - ошибка:

import re

test = "fitess"

file = open("slang_conversion.txt","r")

slang_dict = {}

for line in file:
    x = line.split(":")
    a = x[0]
    b = x[1]
    c = len(b) - 1

    b = b[0:c]

    slang_dict[a] = b

slangs_re = re.compile('|'.join(slang_dict.keys())) # <-- error

def correct_slang(s, slang_dict=slang_dict):
    def replace(match):
        return slang_dict[match.group(0)]

    return slangs_re.sub(replace, s)

test = correct_slang(test)

print(test)

Прочитав другие темы SO, я узнал, что в некоторых случаях это ошибка, но в данном случае она не является ошибкой.

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос