Skip to content

Similarities

Ekaterina Ledeneva edited this page Dec 6, 2020 · 2 revisions

Similarity — базовый класс всех алгоритмов. Конкретные алгоритмы переопределяют метод similarity в соответствии со своей логикой.

  • В конструктор класса можно передать параметры segmentation (True/False) и normalization (full/partial/None), по умолчанию сегментация и нормализация отключены. В сиамскую сеть и WMD эти параметры передавать нельзя, так как это не имеет смысла.
  • Базовый класс имеет метод load, позволяющий загрузить предобученный алгоритм, некоторые алгоритмы переопределяют этот метод.

Интерфейс обученного алгоритма

  • run_similarity(pairs) — принимает список пар комментариев, возвращает список посчитанных сходств.
    • Сиамская сеть, в отличие от остальных алгоритмов, в этом методе требует DataFrame вместо списка, так как использует для вычисления сходства не только сами комментарии, но и их метаинформацию.
  • predict(scores) — принимает список сходств, возвращает список бинарных меток в соответствии с вычисленным на этапе обучения порогом.

Загрузка обученного алгоритма

  • get_algorithm_by_name(name, load=False) — принимает имя алгоритма (см. возможные значения в коде) и флаг, нужно ли загружать результат обучения из кэша (надо установить в True); возвращает алгоритм без сегментации и нормализации.
  • Путь к кэшу алгоритма определён в атрибуте model_cache в соответствующем алгоритму классе и имеет вид cache/models/<alg_name>. Для успешной загрузки алгоритма необходимо обеспечить наличие файла с кэшем в этой папке (в силу большого размера кэши хранятся на гугл диске, надо их локально скопировать).
  • Также для восстановления алгоритма используется файл cache/thresholds.pkl, в котором хранится словарь посчитанных порогов.