Библиотека, которая поможет понять, что «ответы» и «OtBETЫ» — это одно и тоже?

Здравствуйте.
Мне нужно сделать, чтобы программе было понятно, что например "алкаш" = "@лк@ш".
Нужно это для борьбы с рекламой. Алгоритм я уже придумал, но нужно много писать алиасов букв.
Возможно кто-то уже сделал это до меня и есть готовая либа по распознанию такого, чтобы не изобретать велосипед, не подскажите?)
  • Вопрос задан
  • 1117 просмотров
Пригласить эксперта
Ответы на вопрос 7
@BorisKorobkov
Web developer
Этому алгоритму уже более 100 лет: https://ru.wikipedia.org/wiki/Soundex
Ответ написан
samodum
@samodum
Какой вопрос - такой и ответ
"одно и то же" и "одно и тоже" - не одно и то же.

Моя древняя статейка на эту тему
https://m.habr.com/ru/post/86303/
Ответ написан
@webmaxer
Веб разработчик
Алиасы не помогут решить эту проблему. Есть миллионы способов написать слово алкаш:

ал-каш (с точки зрения русского языка всё в норме, звучит как имя из варкрафта какого-нибудь)
олкаш
алкащ
а.л.к.а.ш
а1lкаш (тут вообще буква "л" из двух символов состоит, так какие алиасы могут быть?)
Ответ написан
mindtester
@mindtester
делаю странные вещи..чаще на C#.. иногда за деньги
Алиасы не помогут решить эту проблему. Есть миллионы способов написать слово...

вот тут мы и подходим к версии ИИ:
- надо иметь огромную базу (что реально) краденых паролей, что бы гонять ее по словарям, и учить ИИ (дальше версии для НЕ слабонервных.. или корпораций.. или спецслужб)
- можно тренировать ИИ на визуальное подобие символов в национальных раскладках (допустим a=@ и $=s это универсально, а ч=4 это "по русски".. в=8 .. б=6.. почему нет? ;))) .. о=0 .. ну это во всех языках допустимо..
- можно тренировать ИИ на аудио совпадения. но, это еще мегазатратнее по ресурсам (не обучения, даже исследования (+видеоподобия см пп. выше, думаю, используются на порядки чаще)

ps классический пароль от МС, для обхода старых "строгих" правил, для какого то быстрого теста - P@ssword
улучшенная версия (известная всему миру, хакерскому точно) - P@$$w0rd

.. допустим у вас монитор Panasonic.. немного правил в голове, и шпаргалка всегда под носом - P@na$0ni(
c => (... а че нет то? ;)))
.. или - Pфn@$0ni( .. удачи составителям словарей алиасов ;))
.. для полной картины, допустим Зфт@$0ni( .. и еще раз - удачи! ;)))
Ответ написан
@nrgian
Алгоритм я уже придумал, но нужно много писать алиасов букв.
Возможно кто-то уже сделал это до меня и есть готовая либа по распознанию такого, чтобы не изобретать велосипед, не подскажите?)


Зачем там либа? Это всего-навсего один-единственный ассоциативный массив.

Типа:

conv["t"] = "т"
conv["@"] = "а"


И удобная обвязка под него, типа:

func MyConv(symbol string) string {
   s:= LowerCase(symbol)

   if v, ok:= conv[s] {
       return v
   } else {
       return s
   }
}


И на этом всё!
Ответ написан
dimonchik2013
@dimonchik2013
если всем давать - сломается кровать
в общем случае не решается библиотекой

через Гугл прорываются )) а вы тут изобретаете

но трехподходный метод работает - обычто с той стороны такой же нуб
Ответ написан
LaRN
@LaRN
Senior Developer
Есть вот такой вариант, но он наверное слишком мощный для вас:
https://tech.yandex.ru/speller/

Вот тут интересная статья про трансформацию слов:
https://habr.com/ru/post/270845/
Возможно вам подойдет "Функция оценки похожести пары слов"
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы