• Как найти дубликаты записей по смыслу?

    1. Сначала задайте синонимы
    Метал. = метал. = металлическая
    2. Если слово "металлическая" не важно а важно слово "муфта" то задайте список игнорируемых слов которые удалятся перед анализом
    3. "3-М" в данном случае важно или нет?
    4. Короче отсеиваете неважное, приводите к одному регистру и ищете точные вхождения, или группируете по заданным символам. Модель выделяете в отдельную строку регуляркой и ищете что бы в искомой строк было 2 совпадения и по слову и по модели.
    5. Если слова длинные и есть склонения используете Стеммер Портера, но он плохо работает с короткими словами.
    Всё.

    Пример:
    Муфта металлическая 3-М
    Удаляем "металлическая" и приводим к 1 регистру стало: "муфта 3-м" разбираем пробелом на 2 строки стало: "муфта" и "3-м".
    Поиск в цикле:
    Строка: "Шайба металлическая 3-М". Приводим регистр, стало "шайба металлическая 3-м" проверяем на "муфта" - нет, проверяем на "3-м" - есть - не подходит, надо что бы и то и то совпадало.
    Ну и регулярки юзайте по необходимости
    /муфт[а-яё]+/ismu
    /[0-9]-м/ismu // найдёт все модели от 0-м до 9-м
    Ответ написан
    2 комментария
  • Как красиво организовать работу с little-endian файлами?

    Nipheris
    @Nipheris Куратор тега C++
    > Но хочется как то использовать уже реализованные классы потоков if/ofstream - чего добру то пропадать.
    Их и используйте, я бы на вашем месте сделал обертку вокруг другого istream-а (и ostream-а соответственно). Chaining потоков - классический способ решения такой задачи (и не только в плюсах, разумеется). Точно также, например, делают поток-расшифровщик, или поток-расжиматель, если сжатие было поточное (deflate например).
    > что я не знаю точный список всех таких методов, да и вообще недостаточно хорошо знаю устройство работы if/ofstream, чтоб сильно в них ковыряться.
    Какая-то странная причина. Так разберитесь). Список он вполне конкретный, для этого есть стандарт. Справка высокого качества по стд. библиотеке есть на en.cppreference.com/w
    Ответ написан
    2 комментария
  • Как решаются вопросы дополнения при использовании алгоритмов шифрования?

    gbg
    @gbg
    Любые ответы на любые вопросы
    1. Для современного шифра с доказанной стойкостью нет разницы, какие данные превращать в фарш, поэтому недостающую длину обычно добивают нулями или другим постоянным значением. Нет, на криптостойкость это не влияет.
    2. Это называется буквально "Растягивание ключа" и осуществляется в том числе путем хэширования пароля, возможно - многократного.
    Ответ написан
    Комментировать