@Archie_7

В какой структуре лучше хранить массивы синонимов номенклатур?

Есть массивы синонимов (в данном случае синоним подразумевает собой тождественно равные элементы номенклатуры из различных справочников, н-р "Яблоко, красное" , "Яблоко красное", "Яб.кр.", "Яблоко №..." "№123456" и т.п.):
Массив-1: "Синоним 1-1", "Синоним 1-2"... "Синоним 1-N"
Массив-2: "Синоним 2-1", "Синоним 2-2"... "Синоним 2-M"
...
Массив-i: "Синоним i-1", "Синоним i-2"... "Синоним i-K"

На ввод передаются две строки. Нужно вернуть True, если они находятся в одном массиве.
Единственное, что я смог придумать, это матрица списков и сравнение в цикле for, но возможно есть более эффективное решение?

Использование библиотек, которые бы сравнивали слова и выдавали, что они похожи, такие как Levenshtein или difflib не вариант, т.к. есть совершенно непохожие, но одинаковые элементы (н-р, "Яблоко, красное" и "№123вв456")
  • Вопрос задан
  • 238 просмотров
Решения вопроса 1
Можно хештаблицу/словарь использовать, где ключом будет синоним, а значением - "каноничное" название / идентификатор.
Каноничное название собственно тоже в ней будет и будет указывать на само себя.

Тогда при запросе ты просто будешь сравнивать, что значение у двух ключей одно и то же.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
Словарь имя: идентификатор набора, т.е
{
    'Синоним 1-1': Массив-1,
    'Синоним 1-2': Массив-1,
    'Синоним 2-1': Массив-2
     ....
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы