Pull to refresh

Comments 49

О, наконец-то реально полезный бот:)

Спасибо, буду рад если он кому-то поможет.
Почему ограничено число синонимов? Слово «провод» выдает 13 результатов и многоточие. Узнать что скрыто за многоточием невозможно.
Там GET, у него есть ограничение на длину запроса.
Наверное правильнее будет переписать это в POST дабы иметь запас по размеру отправляемого текста, но в моем случае вполне хватает и этого: все-таки мессенджеры не предназначены для лонгридов.

Переделаю, если бот окажется востробованным.
Вестимо, он станет более востребованным когда переделаете.
Вчера переделал. Теперь, если синонимов слишком много, бот показывает кнопку «Далее».
Пользуясь случаем спрошу:
Каковы лимиты отправки сообщений ботами? В официальной документации сказано
https://core.telegram.org/bots/faq#my-bot-is-hitting-limits-how-do-i-avoid-this
что:
1. Скорость отправки particular chat (юзер или группа?) — не более 1 сообщения/сек. С небольшим burst.
2. При массовой рассылке — не более 30 сообщений/сек.
3. При отправке в группу — не более 20 сообщений/мин. — не не понятно 20 сообщений за календарную минуту или «скользящее среднее»?

Пишу свой игровой бот и иногда, при активной игре бот упирается в лимиты…
UFO just landed and posted this here
Щас к бумажной газете аналоговые идентификаторы попросят припостить… =)
На слово привет — выдает синоним — водка.

Напомните, у нас была водка *привет*? Не помню такой.

А как же! 30 рублей стоила в 1999. Продавщиц очень радовало, когда просовывается в окошко этакая личность и празднично произносит «Привет!».

> 0. Вы устанавливаете вебхук
Дам небольшое предостережение от вебхуков:
1) Если телеграм до вашего сервера не сможет достучаться, то после нескольких (сотен?) попыток в течение довольно короткого вебхук отключается. Ваш бот будет *мёртв*.
2) Не достучаться может по разным причинам — истёк сертификат, либо сервер недоступен. Либо ваш бот затупил и не смог подключиться к перегруженной общей базе данных. Это всё относится к тем ботам, которые хостятся на слабеньких или простеньких хостингах.
3) Из этого следует, что более-менее правильный вариант — писать Long-pooling бота, с запуском через Cron, избавляющий сразу от большой головной боли.
«Long-polling» скорее.
У меня есть небольшой проектик, получающий апдейты по этой технологии… таки я скажу вам шо это кошмар и я мечтаю переселить его на вебхуки или SSE. Пока не придумал как — там есть одна весьма толстая тонкость.

Кстати если хостинг пробудет все время этих нескольких (сотен?) попыток в дауне — ожидает ли бота та же участь?

Крон можно использовать и сейчас. Если вдруг вебхук отключится, он будет поднимать его снова.
Не надоело ещё переизобретать dictd и dict протокол?
В качестве замены бесплатного сервиса проверки орфографии могу предложить NaturalNode/spellcheck. Он инициализируется словарем любого языка, работает хорошо и более-менее шустро

Пример на github
Вах, боюсь что это слишком сложно для чайника-самоучки…
Реализация по-моему насколько интересная, настолько же и сложная, да.
Но в использовании всё просто, у меня она используется так, например:

var natural = require('natural'), 
    dictionary = require('./single-words-354984.json'),  // нагугленный словарь, вручную перекованный на ["слово1", "слово2", ... ]
    spellcheck = new natural.Spellcheck(dictionary);

var topic = "swapign";
if (!spellcheck.isCorrect(topic))
{
    // исправление
    var MAX_DISTANCE = 1;
    var corrections = spellcheck.getCorrections(topic, MAX_DISTANCE);
    if (corrections.length > 0)
        topic = corrections[0];
}

// topic == "swaping"



Любопытства ради: а сколько (примерно) весит этот ваш jsonчик?
В районе 6 мегабайт.
Понял, сохранил, мерсибо!
Ух ты!!! Классная библиотека! Но сложная очень.
На:
Буду благодарен за подсказку: требуется бесплатный сервис проверки орфографии в русском языке с API.

Скажите, плиз, а почему Вас не устраивают Aspell или Hunspell?
Нельзя сказать — устраивают или нет, я не видел их раньше…
У них ведь заточка под английский язык, верно?
Aspell недавно переточили под сложные (флективные) языки (русский и другие), а hunspell изначально написан румыном (hungarian spell checker), сейчас его спонсирует датская компания. В общем, hunspell изначально ковался под сложные языки. И для обоих чекеров есть русскоязычные словари.
Мерси, почитаю о них обязательно.
И вот ещё накопал: Академик.
Предлагают бесплатно установить на свой сайт. Если есть APi для PHP, значит и в Вашем языке можно будет что-то сварганить.
А не видел ли кто сервисов/словарей переносов?
У меня есть задача сформировать изображения из текста, хотелось бы форматировать с переносами…
Думаю, надо покопаться во внутренностях OpenOffice / LibreOffice, они же как-то ставят переносы.
Практически любой алгоритм расстановки переносов будет лишь частично верным, т.к. правила переноса в некоторых случаях учитывают морфемный состав слова.
Не знаю как насчет синонимов, но заметил тенденции на афоризмы. Как вариант ты боту слово, а он тебе 5 :)
Мне кажется чтобы этот продукт стал массовым, ему надо больше функционала. Вот несколько идей, которые можно включить в базу…

1. Правила русского языка.
2. Подбор рифм на слово.
3. Синонимы (и так уже есть)
4. Антонимы.
5. Омонимы.
6. Умное слово на каждый день.

И так далее. Тогда такой продукт станет сильнее.
Это уже будет комбайн с настройками на два экрана и UX ниже плинтуса.
А вот рифмы отдельным ботом — это прикольно. Мерси за идею, надо подумать как их искать. И главное где.
Хороший бот, ждем бота еще с описанием слов по словарю Ожегова.
Спасибо.
Не думаю, что читать словарные статьи (они бывают довольно объемны) на экранчике смартфона это хорошая идея.
Вещь интересная. У меня другая мечта была, запилить бота, который бы делал проверки на правильность слов (брал данные с gramota.ru, например). Но, так как я не программист, это так и осталось мечтой.
Расскажите про идею, если не жалко. Мы занимаемся смежными областями, будет интересно послушать.
Дык явно же спеллчекер, тот же hunspell с большим словарём прикрутить — и порядок.
Если посмотреть на реальную базу ошибок, то иногда делаешь очень интересные открытия. Например:

— очень частая ошибка *робота (вместо рАбота), хотя существует словоформа робота (У меня нет робота, а так хочется. <вместо> Нужно идти на работу, а так не хочется.)

— есть случаи, когда без контекста никак — например воспитаНая и воспитаННая. Обе словоформы могут иметь место в соответствующих контекстах.

— есть ошибки, которые по расстоянию отловить сложно, нужно учитывать фонетические особенности русского языка. Например: *хочица (хочется)

— популярное -тся/-ться в ряде случает опять же требует контекста или пояснения

— паронимы: невежа — невежда, тоже стоит учитывать

В общем работы много, как раз сейчас этим занимаемся :)
Где-нибудь можно следить за ходом работы? Будете ли выкатывать продукт в свободный доступ? :)
Нет, дев-блога нет. Насчёт открытого доступа не скажу — слишком много есть заброшенных проектов, которые никто не поддерживает, потому что реалистично силы не оценили. Плодить их ни к чему.

То, что реалистично сделать, и то, что мы знаем как и зачем поддерживать — это актуальный словарь русской морфологии (слова, словоформы, морфометки). Начнём с этого, посмотрим насколько востребовано, а потом можно будет дальше думать дальше и строить планы.
Не могу упустить возможность и не задать вопрос по схожей тематике:
кто-нибудь из присутствующих пробовал syntaxnet от google?
Если да, то был ли опыт с русской моделью?
UPD: Вчера переписал кое-что.

— Теперь, если синонимов слишком много и они не пролезают по размеру в Telegram API, бот не обрезает ответ, а формирует гарантированно пролезающий ответ и показывает кнопку «Далее». Проверочное слово — «слово», сорри за каламбур.

— Если введенное пользователем слово имеет синонимы, и запрос и ответ складываются в кэш, уменьшая нагрузку на большой словарь.

В приветствии два раза дублируется текст «я бот синоним...»
Привет
Перечитал, не нашел. Прикрутите плиз скрин с багом.
Хм, интересно… А как вы этого добились?

Sign up to leave a comment.

Articles