#python #nlp #duplicates #similarity #sentence-similarity
#python #nlp #дубликаты #сходство #предложение-сходство
Вопрос:
Я довольно новичок в Python. Хотя я знаю, что можно дедуплицировать строки в Pandas с помощью drop_duplicates для получения идентичных текстовых результатов, есть ли способ удалить похожие строки текста?
Например, для этой вымышленной коллекции заголовков онлайн-статей, заполненных в хронологическом порядке
1 «Собака съела мою домашнюю работу», — говорит сбитый с толку ребенок в Банбери
2 Смущенный ребенок Банбери говорит, что собака съела домашнее задание
3 Почему собаки такие милые
4 Учитель в недоумении, когда ребенок говорит, что собака съела домашнее задание — Banbury Times
5 Собаки не любят яйца, вот почему
6 В момент принятия старшего бездомного — постарайтесь не плакать
7 контрабандистов собак в Банбери арестованы в ходе полицейской операции
Моим идеальным результатом было бы то, что остались бы только строки 1, 3, 5, 6 и 7, при этом строки 1, 2 и 4 были сгруппированы для сходства, а затем сохранена только 1, самая старая / «первая» запись.
(Как) я мог туда попасть? Даже совет, касающийся подхода к группировке, был бы очень полезен. Я хотел бы иметь возможность запускать это на сотнях строк текста, не имея конкретной, заранее определенной вручную статьи или заголовка для измерения сходства, просто группируйте похожие строки.
Большое вам спасибо за ваши мысли и время!
Комментарии:
1. Что вы пробовали? Какие у вас проблемы?
2. Что, если строка A похожа на строку B, B похожа на C, но A не похожа на C?
3. Вы имели в виду семантическое сходство текстов? Содержит ли ваш набор данных два предложения с разными словами, но одинаковое сходство?
4. @I159 Я начал изучать FuzzyWuzzy, но не был уверен, как искать сходство между строками текста, а не просто сравнивать 2 строки. Не скромничал, что был новичком в этом. Любые указатели на места, с которых можно начать поиск решения, были бы замечательными.
5. @Алекс Холл точно. По вашему опыту, существует ли подход к кластеризации, который мог бы сработать? Я открыт для изучения на этом этапе.
Ответ №1:
Вы пытаетесь получить свои данные с doc2vec
помощью (пример использования), затем сгруппируйте свой текст с косинусным расстоянием с kmedoids
помощью иерархических алгоритмов.