Регулярное выражение для разделения двух слов, связанных точкой - PullRequest
0 голосов
/ 08 июля 2020

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

['<repdns text="boys.aussi" />']
['<repdns text="interpretation.une" />']
['<repdns text="catastrophe.michelle" />']
['<repdns text="paquerettes.ewan" />']
['<repdns text="amour.hugh" />']

Я на самом деле читаю файл и использую treetagger, чтобы получить лемму, но появляются ошибки, подобные приведенным выше, поэтому мне нужно исправить их перед использованием функции treetagger. Я застрял на том, какое регулярное выражение использовать, потому что я не хочу, чтобы слово с '.com' или '.org' отделялось

a = [' boys.aussi', 'interpretation.une', 'amour.hugh', 'amy.com', 'frenchemabassy.net']

alphabet = "([a-z][...])"
alphabets = "([A-Za-z])"
prefixes = "(Mr|St|Mrs|Ms|Dr)[.]"
suffixes = "(Inc|Ltd|Jr|Sr|Co)[.]"
starters = "(M|Mr|Mme|Sr|Dr)"
acronyms = "([A-Z][.][A-Z][.](?:[A-Z][.])?)"
websites = "[.](com|net|org|io|gov)"
digits = "([0-9])"

# sépare les phrases

def normalize(text):  # do_lower=False):
    text = re.sub(alphabets + "[.]" + alphabets,)
    
    
    return text

normalize(a)

ожидание

a = [' boys. aussi', 'interpretation. une', 'amour. hugh', 'amy.com', 'frenchemabassy.net']

1 Ответ

0 голосов
/ 08 июля 2020

Используйте утверждение отрицательного просмотра вперед в регулярном выражении, чтобы '.' заменяется на '. 'только если за ним не следует какое-либо из специальных доменных имен верхнего уровня Inte rnet:

import re

def normalize(text):
    return re.sub(r'\.(?!(com|net|org|io|gov))', '. ', text)

a = [' boys.aussi', 'interpretation.une', 'amour.hugh', 'amy.com', 'frenchemabassy.net']
a = [normalize(s) for s in a]
print(a)

Выводит:

[' boys. aussi', 'interpretation. une', 'amour. hugh', 'amy.com', 'frenchemabassy.net']

Обратите внимание, что я просто использую список ДВУ, которые у вас были websites переменная; есть и другие, которые вы хотите добавить.

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