Как сравнить два заголовка (строки), чтобы увидеть, относятся ли они к одной книге?

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

Вот небольшой фон. Я работаю стажером в библиотеке. Персонал здесь отсканировал номер доступа и номер ISBN каждой книги и передал их мне в виде файла csv. Из-за человеческой ошибки некоторые книги получили неправильный ISBN. Я должен найти эти ошибки.

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

В настоящее время я использую SequenceMatcher класс в difflib сделай это:

def similar(seq1, seq2, strength):
    return (difflib.SequenceMatcher(a=seq1.lower(), b=seq2.lower()).ratio()
                > strength)

Но я получаю много ложных срабатываний, как:

"Сети связи: фундаментальные концепции и ключевые архитектуры" => "Сети связи"

"Эксперименты в инженерной физике; лабораторное пособие и рабочая тетрадь> с Viva Voce" => "Эксперименты в инженерной физике"

"Вода: наука и проблемы" => "Вода V1 - V4"

"Схема теории Шаума и проблемы статистики" => "Теория и> проблемы вероятности и статистики"

Есть лучший способ сделать это?

Изменить: Вот вывод моей программы со всеми ложными срабатываниями. Я использовал "##" в качестве разделителя.

0 ответов

Другие вопросы по тегам