Я пытаюсь очистить некоторые тексты, которые сильно отличаются друг от друга. Я хотел бы удалить заголовки, кавычки, сокращения, специальные символы и точки, которые фактически не завершают предложения.
Пример ввода:
This is a headline
And inside the text there are 'abbreviations', e.g. "bzw." in German or some German dates, like 2. Dezember 2017. Sometimes there are even enumerations, that I might just eliminate completely.
• they have
◦ different bullet points
- or even equations and
Sometimes there are special symbols. ✓
And inside the text there are abbreviations, for example beziehungsweise in German or some German dates, like 2 Dezember 2017. Sometimes there are even enumerations, that I might just eliminate completely. Sometimes there are special symbols.
with open(r'C:\\Users\me\\Desktop\\ex.txt', 'r', encoding="utf8") as infile:
data = infile.read()
data = data.replace("'", '')
data = data.replace("e.g.", 'for example')
#and so on
with open(r'C:\\Users\me\\Desktop\\ex.txt', 'w', encoding="utf8") as outfile:
outfile.write(data)
Мои проблемы (хотя номер 2 самый важный):
Мне просто нужна строка с этим вводом, но она явно разрывается из-за кавычек. Есть ли какой-нибудь способ сделать это, кроме работы с файлами, как я? На самом деле я копирую текст и хочу, чтобы приложение очистило его.
Код кажется очень неэффективным, потому что я просто вручную напишу то, что не забуду удалить/почистить, но не все сокращения знаю наизусть. Как мне, так сказать, очистить его за один раз?
Есть ли способ удалить заголовок, перечисление и точку . , который появляется в этой немецкой дате? Мой код этого не делает.
Изменить: я только что вспомнил такие вещи, как text = re.sub(r" (@\[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/\S+)|^rt|http.+?" , "", text), но регулярное выражение неэффективно для огромных тексты, не так ли?
Я пытаюсь [b]очистить[/b] некоторые тексты, которые сильно отличаются друг от друга. Я хотел бы удалить заголовки, кавычки, сокращения, специальные символы и точки, которые фактически не завершают предложения. Пример ввода: [code]This is a headline
And inside the text there are 'abbreviations', e.g. "bzw." in German or some German dates, like 2. Dezember 2017. Sometimes there are even enumerations, that I might just eliminate completely. • they have ◦ different bullet points - or even equations and Sometimes there are special symbols. ✓ [/code] Пример вывода: [code]And inside the text there are abbreviations, for example beziehungsweise in German or some German dates, like 2 Dezember 2017. Sometimes there are even enumerations, that I might just eliminate completely. Sometimes there are special symbols. [/code] [b]Что я сделал:[/b] [code]with open(r'C:\\Users\me\\Desktop\\ex.txt', 'r', encoding="utf8") as infile: data = infile.read() data = data.replace("'", '') data = data.replace("e.g.", 'for example') #and so on with open(r'C:\\Users\me\\Desktop\\ex.txt', 'w', encoding="utf8") as outfile: outfile.write(data) [/code] [b]Мои проблемы (хотя номер 2 самый важный):[/b] [list] [*] Мне просто нужна строка с этим вводом, но она явно разрывается из-за кавычек. Есть ли какой-нибудь способ сделать это, кроме работы с файлами, как я? На самом деле я копирую текст и хочу, чтобы приложение очистило его.
[*]Код кажется очень неэффективным, потому что я просто вручную напишу то, что не забуду удалить/почистить, но не все сокращения знаю наизусть. Как мне, так сказать, очистить его за один раз?
[*]Есть ли способ удалить заголовок, перечисление и точку . , который появляется в этой немецкой дате? Мой код этого не делает.
[/list] Изменить: я только что вспомнил такие вещи, как text = re.sub(r" (@\[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/\S+)|^rt|http.+?" , "", text), но регулярное выражение неэффективно для огромных тексты, не так ли?