Skip to content

Commit

Permalink
smart words sentence matching algorithm
Browse files Browse the repository at this point in the history
  • Loading branch information
Nakilon committed May 16, 2023
1 parent 92ef5c7 commit e1f2a59
Show file tree
Hide file tree
Showing 2 changed files with 329 additions and 4 deletions.
17 changes: 13 additions & 4 deletions examples/velik_bot/common.rb
@@ -1,3 +1,15 @@
def smart_match query, array
array.min_by do |_|
a, b = [query, yield(_)].map{ |_| _.downcase.squeeze.split }
a.sum do |i|
b[0] ||= ""
k, dist = b.map.with_index{ |j, _| [_, DidYouMean::Levenshtein.distance(i, j)] }.min_by(&:last)
b.delete_at k
dist
end
end
end

require "nethttputils"
require "json"

Expand Down Expand Up @@ -31,8 +43,5 @@ def clip where, input
t = request["clips", broadcaster_id: user_id, first: 100, **(cursor ? { after: cursor } : {})]
t["data"] + t["pagination"]["cursor"].then{ |_| _ ? f[_] : [] }
end
f.call.
sort_by{ |_| -_["view_count"] }.
min_by{ |_| DidYouMean::Levenshtein.distance _["title"].downcase.squeeze, input.downcase }.
then{ |_| _.values_at("title", "url").join " " }
smart_match(input, f.call.sort_by{ |_| -_["view_count"] }){ |_| _["title"] }.values_at("title", "url").join " "
end
316 changes: 316 additions & 0 deletions examples/velik_bot/test.rb
@@ -0,0 +1,316 @@
require_relative "common"

clips = <<~HEREDOC.split("\n")
#zaebis четко
#живиживиживи
(
))))
+хорошей реги
- еще один грибник
-1
-1 грибник!
-2
1
1 рейд
1111
2
2 минус
222
3 босса
300 IQ play
333
47 уровней страданий.
???
akiiz tiaes and a dream
Apatiya 4x4
awww hell
clown
DROPS ON ✅ Lets Go, E💲cape From ETO TI ?🐀
FBI open door
FBI! Open up!
Follow
Go back to lobby rat)
hahahahahahahha
lya kakaya
otkisla kiska
pyk pyk srenlk
SIDIM PERDIM
UWU
Uwu twix
ZASADA
А как убить?
А кто это там под камушком сидит!)
А ты кто?
А умереть?
а умереть?!
А я тут)
Актер без оскара
Алло это Жоска?
Алло, Буянов?
Алло, Никита?)
аххаха
бегу бегу!!!
Бой до последнего!
Большая бутылка
Боты совсем крейзи!
Бурные рукоплескания
Бухлострим ЮХУУУ
Бэтман
В лоби)
в норку
Валерос МАШИНА 2
Видеооператор
Виталик - мужское русское личное имя древнеримского происхождения.
Внезапность - сестра таланта)
Вовчек На турнирчике)))
Волшебники вне Хогварста
Вооооон он
Вопросики
Восседатель кустарный
вот здесь меня и убили
Вот настояший Штурмовик!
все Враки
Все дороги ведут в Тарков. 48 уровней страданий.
Всей своей добротой прошлась по ЧВК!
встреча с легендой
встреча с легендой 2
встреча с легендой 3
вываливаемся с окон
Гуд грена однако!
Да блять)))
да бляяяяяяяять анкал)))
Да все нормально! Это Тарков)))
дали ключ но не дали оружие
Данила и Ко. Онлайн ,без регистрации...
Двоих парней обидела)
Дима тащи патроны
до первой крови давай
Доброй ночи, вы верите в христа спасителя?
донт шут
Допрыгался))
Дроп випон!!!!
ду ю бум-бум
Дыра в шапке
Есть 1
Еще один
Ещё один не понимающий как так то))
Живем)
завтыкал
задымил
Зарубили
Затворная задержка как у м16
Затупили гунны
Заявка на por1hub
значит встречаются два зажиматора...
и прыгает хахах
ить, ить! итсь!
ихих
Кайфовый турик
как отписаться
Как то так
Какая жалость ребяяяята
какая же я глупенькая)
каппа
Каппа? Сюда
Кинули на баллы!
клин, дикий + лут
ключи потерял
Коби
Когда давно не видел ледыксы...
Когда ЧВК хочет жить больше чем стример)
Колдунство!
Конкурс на лучшего актера
Контент достойный стрима)
Кошечка перепила Валерьянки!
Красиво умереть тоже надо уметь)
краснеющий каллиматор
Крыси у рубильника!
кто быстрее залутает 110)
Кто купил?!
лежит смотрит
Лера 18+
Лера и Два Актера!
Лера играет в салочки!
Лера мстит!
Лера против двух фулочек, которые ее бояться)
Лера против советского война!
Лера типа пушит дверь!
Лерон в топ позиции!
Лерон всех убивон)
Лех ты ?
Лушчая игра это Тарков!
маза дал
Мародеры на задании.
Мародеры на задании. Welcome to Hell part/1.
Мародеры на задании. А дождь можно выключить?
Мародеры на задании. Вайп завтра?Гуляем))))
Мародеры на задании. Вечера на хуторе близ Таркова.)))
Мародеры на задании. Выходные кончились ,время пострелять)
Мародеры на задании. Кто умирает первый ,везунчик или красавчик?)
Мародеры на задании. Подарки все купили?)
Мародеры на задании. С новым годом Котикииии :****
Мародеры на задании.День новых испытаний ;)
Мародеры на задании.День новых испытаний;)Смотрим Кибер пук)
Мародеры на задании.Занимайтесь любовью а не войной<3
Мародеры на задании.Квесты , рофлы, Dream Team)
Мародеры на задании/ Мы снова здесь, снова в здании)
Мародеры на задании/ Happy Helloween...Booo
Мародеры на задании/ Mission: Залутать и стримить !
Мародеры на задании/ В руке вепрь, а в сердце светлая Русь!
Мародеры на задании/ Вечерний стрим.
Мародеры на задании/ Выжить любой ценой
Мародеры на задании/ Кто не рискует , тот в Тарков не играет
Мародеры на задании/ На какой стул присядешь?
Мародеры на задании/ Пните в 2ночи по мск пожалуйста.
Мародеры на задании/ Поздний стрим Привет)
Мародеры на задании/ Пятьдесят оттенков ТаркОва....
Мародеры на задании/ Рассинхрон Part.2
Мародеры на задании/ Рассинхрон Part/999/
Мародеры на задании/ С первым днем ЗИМЫЫЫ)))
Мародеры на задании/ Страх и ненависть в Таркове.
Мародеры на задании/ Тарков в хату.
Мародеры на задании/ Тихие вечера
Мародеры на задании/ Тихие вечера, без вебки))
маршрутка
мастер крадун))))
Маугли
машина
МАШИНА ЛЕРА
Минус два, так минус два!
Минус ценной двух хороших парней!
Минус!
Мир,труд,май,Тарков.
Мки!
МММ ДЕЛИШЕС <3
мне п
Мне так бывшая говорила
Молекула
Мстя за Валеру!
Мы просто мимо пройдем
МЫШКА СРАБОТАЛА НА СЛАВУ
Мяу твикса)
НАНИ!?
Напали на сашульку
наэлектризована жопу стулом
не верит =)
не убивают
Нефиг кушать обезбол при Лере)
Ниндзя
Ништяк пацаны , завтра на работу)))
Ништяк пацаны, завтра выходные)))
Ну ты дурак или че?
Ну что? Аванпост,пацаны. 44 уровня страданий)
О херасе, пацан готов.
обещание сводить на лабу от Etenaris
обиделась лерка(
Одним зажимом -2
окно 3 этаж, справа
Он знает когда...
он прыгнул?
они в окнах
Оп Смотри че пакажу)
оп Сюрприз
опа
Операция кусты
Остальные два
Откровение
откуда он кидает гранаты? )
Охота на белку
Пажжаааалуйста UwU
Парень устал
План Эльдара
Подстава
Привет)
приветик))
Пробный стрим перед вайпом, я вернулся)))
Продолжение убивание детей!
Просто смешно сказала))
пруф
пруфы что развяка что? ТОП
прыгну со скалы
Прыжок Веры Брежневой
Прыжок ЛЕРЫ
Прыжок смерти
Радикулит нам не страшен! (прицел забагало)
Разницы никакой
Расслабление Карася
регистрация
С ДР.
СБЭУ ПОБЕДИЛО!!!
Свой или чужой?
свой среди чужих аха
скажите пожалуйста
Скайлайн джтр
Скилл не пропиешь
Скример
снайпер блять)))
снайперская перестрелка
Спортсмен однако!
Страх и ненависть в Таркове
Страшно же так выпригивать
Судороги
Счастливая!
та мне пизда..... а нет ! не пизда!
Тарков ну совсем не страшный!
тарковские крипы
Твикс девушка лежебоки verified
тоже база
Трипер
Турнирчик.)
Тутуту ту ту тутутут
Ты по металлу шлепаешь?
У Леры грены умные)
У нас замена
Убегает с красным стволом
Убивца!
Убила флешкой
Убрали лут с карт. Вайп близко.
УВУ ИВАНА (СИЛЬНО)
Удивление
Улач
улица
умер молодым
устал присел прилёг
Уууу везение))))
Фиркос не блять)))
Хоба
Хорошая
Хорошая попытка Джони)
Хорошо приняла!
Хотел уехать, не получилось
Чаво
чекай
чит
Читак?
Читеров в игре нету)
что
Что с греной?
что тут происходит
Что Что Что????!!!
Что-то узнать хотел
Чудо!
Чупа без Мки теперь
шо
што?
Ыыыы, поржал
Эй парень иди сюда)))
это не размен)))
это тильт
Это ты? Тормози!
Это я
Эээто был ты....
Я вообще-то..
Я кого то убила?!
я не флудил
я нейросеть
Я с Сахалина
я твой мансуль
Ёлочки
№"!"@#!
HEREDOC

fail unless "Алло, Буянов?" == smart_match("буянов", clips, &:itself)
fail unless "это тильт" == smart_match("тильт", clips, &:itself)
fail unless "МАШИНА ЛЕРА" == smart_match("лера машина", clips, &:itself)

p clip "#ta_samaya_lera", "лера машина"

0 comments on commit e1f2a59

Please sign in to comment.