Поиск повторяющихся фрагментов текста?

Добрый день, может у кого был опыт, необходим алгоритм/подсказка в каком направлении копать.
Есть большие переписки по email, необходима анонимизация переписки, необходимо убрать подписи из текста писем:
Вася Пупкин
Менеджер
телефон 674847585748
адрес 523645653

Можно было бы собрать все в один текст, и вычленить повторяющиеся куски текста, тогда примерно это и были бы подписи, но как найти именно куски (несколько строк) повторяющегося текста.
  • Вопрос задан
  • 303 просмотра
Пригласить эксперта
Ответы на вопрос 2
asteroid_den
@asteroid_den
Питонщик-любитель
Привет. Не до конца уверен, но возможно тебе могут помочь регулярные выражения. Попробуй с ними поработать, может получиться
Ответ написан
@Umpiro
Возможно, вам поможет библиотека textblob. А именно, эта часть: Tutorial: Building a Text Classification System. В качестве примера:
#!/usr/bin/python
from textblob import TextBlob
from textblob.classifiers import NaiveBayesClassifier

train1 = '''
Вася Пупкин
Менеджер
телефон 674847585748
адрес 523645653
'''
train2 = '''
Иван Иванов
Менеджер
телефон 673844589748
адрес 513665053
'''
train3 = '''
Николас Медведев
Менеджер
телефон 674947581748
адрес 526641655
'''
train = [
    (train1, 'pos'),
    (train2, 'pos'),
    (train3, 'pos'),
    ('С уважением, от команды Хабра!', 'neg'),
    ('Купите наших котиков?', 'neg'),
    ('Скидки 120% но Aliexpress.', 'neg'),
]
test = '''
Привет!
Алиса Аксенова
Менеджер
телефон 678942581948
адрес 520671655
'''
cl = NaiveBayesClassifier(train)
blob = TextBlob(test, classifier=cl)
for s in blob.sentences:
    print("'{}' - {}".format(s, s.classify()))

Выдаст такое:
'Привет!' - neg
'Алиса Аксенова
Менеджер
телефон 678942581948
адрес 520671655' - pos
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы