Сергей
дам
Eugene
Chuvi
Ясно, печаль, пойду в другом чате людей попытаю...
AlekVolsk
Я спрашиваю как лучше нивелировать опечатки
ты хочешь свой орфословарь забабахать? ))) ну-ну )))
Eugene
уверен есть готовые решения, которые поддерживаются комьюнити, а ты собираешься писать свое с 0
AlekVolsk
вообще потому и используют браузерный автокомплит, потому что он зависит от словарей операционки, это, мать его, та еще технология
Chuvi
Я и другую раскладку в этом случае учитываю даже.
AlekVolsk
еще раз: самое быстрое - это регулярка, иначе то, что ты напишешь - по сути будет той же регуляркой, но сделанной через назад
Chuvi
Ох, ну давай начнём ещё раз этот разговор.
Chuvi
Привет, чат!
Есть тут самураи регулярок?
Подскажите, пожалуйста, выражение, которое проверит строку на наличие всех символов из заданного набора.
Например: при наборе символов "опля", должны пройти проверку строки "поля","заполярный","яблопо" (я не опечатался), но не должны "тополь", "поле", "колбаса", "лоперамидол".
Chuvi
AlekVolsk
да читал, там был нормальный пример
Chuvi
AlekVolsk
и онлайн-генератор тебе давали, давно бы сам тестами выявил бы
Chuvi
Chuvi
Я тут три дня сидел, выявлял. Выяви мне, пожалуйста, если ты так хорош в них.
AlekVolsk
http://baco.su/articles/regulyarnye-vyrajeniya/
AlekVolsk
а ты думал, за тебя все делать будут? на стакоферфлоу поищи тогда, там все халявщики тусуются
Chuvi
Что за меня делать-то я кого-то попросил?
Нет регулярки которая мне бы подошла, понимаешь? Я попробовал все варианты из этого чата, которые мне предложили, весь стэк оверфлоу и вагон всякой хрени которая не сработала, или сработала, но не так как хотелось бы. Плюс они медленные.
Я переписал всё на for через массив, всё отлично, быстро, опечатки детектирует, раскладку переводит, но хотелось бы чуть более точного вычисления опечаток. И соответственно как результат - чуть более релевантную выдачу.
Chuvi
Поэтому я и пришёл с абстрактным вопросом о детектировании опечаток при вводе.
AlekVolsk
Eugene
https://en.wikipedia.org/wiki/Levenshtein_distance
Anonymous
Что за меня делать-то я кого-то попросил?
Нет регулярки которая мне бы подошла, понимаешь? Я попробовал все варианты из этого чата, которые мне предложили, весь стэк оверфлоу и вагон всякой хрени которая не сработала, или сработала, но не так как хотелось бы. Плюс они медленные.
Я переписал всё на for через массив, всё отлично, быстро, опечатки детектирует, раскладку переводит, но хотелось бы чуть более точного вычисления опечаток. И соответственно как результат - чуть более релевантную выдачу.
Я не читал тред и не знаю, что ты делаешь, но подойдет ли тебе индекс схожести? Можно условно обозвать процентом, если на 90% совпадает - то ок.
Сделать это не сложно. Оптимизировать тоже можно, сначала отбросить все слова, которые, отличаются по длине, возможно с амплитудой +-1, а дальше их сравнивать
Anonymous
Регуляркой "примерно подходит" не получится
Eugene
для мисспелов обычно используют алгоритм - "Расстояние Левенштейна"
ну так говорит stackoverflow :)
Chuvi
Вот тут уже стало интереснее, спасибо братцы, ща вкурю.
Eugene
https://gist.github.com/andrei-m/982927 вот реализация на js, есть еще на mysql
Eugene
https://github.com/gustf/js-levenshtein
Chuvi
Ну, да, то что надо. )
Щас погоняю.
Eugene
удачи :)
Chuvi
удачи :)
Ну чо. Производительность упала всего в два раза, а точность... Ну я хз во сколько раз выросла. )
Спасибо огромное за идею с расстоянием Левенштейна. Чот как то раньше не встречалс мне этот принцип.
Eugene
Eugene
просто интересно если будет 500+ городов/объектов, как оно будет отрабатывать
можешь на генерировать ?)
Eugene
просто у меня плохая ассоциация с браузерами и их производительностью, мне кажется такой алгоритм должен на бэкэнде обрабатывать и отдавать результат
Eugene
Eugene
о, а пробовал в localstorage? xd
Chuvi
По слову из десяти букв с двумя опечатками поиск отлично отрабатывает за 55 мсек.
Chuvi
Chuvi
Всё равно сбрасывать.
Chuvi
о, а пробовал в localstorage? xd
Ну и sessionStrage доступен всегда, если поддерживается, а localStorage - нет. В incognito-mode например, он закрыт вообще, ни записать ни прочитать...
Eugene
ах да
Eugene
Chuvi
15346 записей.
Chuvi
В связи с тем что темпы появления новых географических объектов на территории России невысок (вроде после Крыма ничего отжать не планируют же) да и всяких баз отдыха тоже не плодится как грибов после дождя - я не ожидаю взрывного роста базы в ближайшее время. Если что-то поменяется, возмжно придётся пересмотреть алгоритм. )))
Chuvi
cookies?
Chuvi
А в чём вопрос?
Eugene
ток не путай куки серверные и браузерные ;0
Chuvi
В тех, когда надо что-то хранить у пользователя из того, что надо бы получить на сервере без лишнего мозготрахства. Идентификаторы какие-нить некритичные. Настройки интерфейса, например. Ну или когда ничего более емкого нет. Типа localStorage того же. Но он только для js, на сервер из него передавать придётся аяксом...
Chuvi
Да, но - он очистил куки и поехали заново.
Chuvi
Да. И куки тоже не помешают. С такими целями чем больше загородок тем лучше. )
Chuvi
Обойти всё равно не проблема, но чем больше заборов, тем дольше обходить. )
Chuvi
Ты имеешь ввиду VPN всё же наверное...
Chuvi
Если браузер тот же, то смена IP не сильно поможет. Можно ж по куки, по local/sessionStorage, по user-agent проверять. Есть вон методики сверки пользователя по железу в его компе, но она посложнее конечно. )))
Chuvi
В зависимости от потребностей - её обычно хватает чтобы усложнить жизнь неискушённым пользователям...
Chuvi
Если интересно как вообще можно затрэкать кого угодно - сходи проверься на https://panopticlick.eff.org/, там результаты фингерпринта показывают, по ним понятно как именно отслеживают пользователей в сети. )
Chuvi
Не понял вопроса. Можешь в одном предложении?
Anonymous
Ребят, у кого есть клиенты на лендинг/сайт/интернет-магазин, есть предложение аппселла без трудозатрат вообще.
Подробности спрашивайте в лс)
Anonymous
https://t.me/stream_consciousness
Anonymous
Anonymous
@rejjin
Максим
ну так и что за ошибки? функции существуют?
Anonymous
Кавычки?
Максим
так и он же четко говорит, что setMode не объявлена!
Максим
Anonymous
Ну дык, SetMode() и setTemp() вначале пропиши перед этой функой...
Максим
Не знаю что у тебя там в учебнике, но в чем проблема я тебе сказал. Ищи листинг указанных функций в учебнике
Anonymous
Пацаны, тут есть кто?
Нужна помощь с адаптивкой
Anonymous
Спят верстальщеги, заказов многа у них))
roma
Anonymous
Вдруг кто придёт и предложит решение, буду очень рад.
Anonymous
Anonymous
Пытаюсь неровный край (after / before сделал) адаптивным сделать - при смене ширины блоки эти начинают разъезжаться (точнее, выходить из контейнера родительского, из-за чего появляется полоса прокрутки), сейчас залью на гитпэйджс
Anonymous
У меня основнам проблема в этом просто