{
    "componentChunkName": "component---src-templates-doc-page-js",
    "path": "/docs/ru/classificator/connection_classificator/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Gatsby-doc-engine"}},"markdownRemark":{"id":"2f775410-80a3-5e87-8961-69dbe47808fa","excerpt":"!> Обратите внимание, что использование классификатора на примерах устарело начиная с версии . Подробнее о миграции проектов на CAILA. Для того, чтобы…","html":"<h1>Подключение классификатора к боту <span class=\"tag-heading red\">Устарело</span></h1>\n<hr>\n<p class='tip'>Обратите внимание, что использование классификатора на примерах устарело начиная с версии <code class=\"language-text\">1.10.0</code>. Подробнее о <a href=/1.10.3/docs/ru/NLU_core/project_migration  >миграции проектов на CAILA</a>.</p>\n<p>Для того, чтобы подключить классификатор к боту, выполните следующие шаги:</p>\n</br>\n<ol>\n<li>В конфигурационном файле бота <code class=\"language-text\">chatbot.yaml</code> задайте параметры для nlp-функций платформы:</li>\n</ol>\n</br>\n<h5>morphology</h5>\n<p>Позволяет выбрать библиотеку для морфологического анализа слов. Используется при обработке паттернов <code class=\"language-text\">~</code>, <code class=\"language-text\">$lemma</code>, <code class=\"language-text\">$morph</code>, а так же в функции <code class=\"language-text\">$nlp.parseMorph</code>.</p>\n<p>Укажите одну из библиотек:</p>\n<ul>\n<li><code class=\"language-text\">aot</code> — используется библиотека от <a href=\"http://aot.ru/technology.html\" target=\"_blank\" rel=\"noopener noreferrer\">AOT.ru</a>;</li>\n<li><code class=\"language-text\">myStem</code> — используется утилита <a href=\"https://yandex.ru/dev/mystem/\" target=\"_blank\" rel=\"noopener noreferrer\">myStem</a>;</li>\n<li><code class=\"language-text\">pyMorphy</code> — используется библиотека pyMorphy, наиболее качественный анализатор для русского языка.</li>\n</ul>\n</br>\n<h5>tokenizer</h5>\n<p>Токенизатор позволяет задать правила, используемые для разбиения текста на слова.</p>\n<p>Поддерживаемые типы токенизаторов:</p>\n<ul>\n<li><code class=\"language-text\">regexp</code> — простой токенизатор на регулярных выражениях.</li>\n<li><code class=\"language-text\">srx</code> — конфигурируемый токенизатор на базе <a href=\"https://en.wikipedia.org/wiki/Segmentation_Rules_eXchange\" target=\"_blank\" rel=\"noopener noreferrer\">настраиваемых правил сегментации</a>. При указании данного токенизатора потребуется указать файл грамматики в параметре <code class=\"language-text\">srxPath</code>.</li>\n<li><code class=\"language-text\">myStem</code> — сегментация посредством утилиты myStem. Является предпочтительным токенизатором при сипользовании паттернов и классификатора.</li>\n</ul>\n</br>\n<h5>vocabulary</h5>\n<p>Словарь весов слов по ранжированию паттернов. По умолчанию: <code class=\"language-text\">common-vocabulary.json</code>.</p>\n</br>\n<h5>lengthLimit, timeLimit</h5>\n<p>Позволяет изменить лимиты на размер входящего сообщения и на время обработки nlp-модуля.</p>\n<p>Параметры по умолчанию:</p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">nlp</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">lengthLimit</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">enabled</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n    <span class=\"token key atrule\">symbols</span><span class=\"token punctuation\">:</span> <span class=\"token number\">400</span>\n    <span class=\"token key atrule\">words</span><span class=\"token punctuation\">:</span> <span class=\"token number\">100000</span>\n  <span class=\"token key atrule\">timeLimit</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">enabled</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n    <span class=\"token key atrule\">timeout</span><span class=\"token punctuation\">:</span> <span class=\"token number\">10000</span></code></pre></div>\n<p>Для <code class=\"language-text\">lengthLimit</code>:</p>\n<ul>\n<li><code class=\"language-text\">symbols</code> — устанавливает лимит на количество символов во входящем сообщении. При превышении этого лимита сработает событие <code class=\"language-text\">lengthLimit</code>, которое может быть обработано в сценарии бота тегом <code class=\"language-text\">event: lengthLimit</code>.</li>\n<li><code class=\"language-text\">words</code> — устанавливает лимит на количество слов во входящем сообщении. При превышении этого лимита сработает событие <code class=\"language-text\">lengthLimit</code>, которое может быть обработано в сценарии бота тегом <code class=\"language-text\">event: lengthLimit</code>.</li>\n</ul>\n<p class='tip'>Счетчик <code class=\"language-text\">words</code> приравнивает символы <code class=\"language-text\">! , . : ; ?\" ' ( ) * / [ \\ ] { | }</code> к словам, учитывайте это при указании лимита.</p>\n<p>Для <code class=\"language-text\">timeLimit</code>:</p>\n<ul>\n<li><code class=\"language-text\">timeout</code> — устанавливает максимальное время обработки запроса в nlp-модуле в миллисекундах. При превышении этого лимита сработает событие <code class=\"language-text\">timeLimit</code>, которое может быть обработано в сценарии бота тегом <code class=\"language-text\">event: timeLimit</code>.</li>\n</ul>\n<p>Пример nlp-модуля:</p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">nlp</span><span class=\"token punctuation\">:</span>                                    // параметры для nlp<span class=\"token punctuation\">-</span>функци платформы\n  <span class=\"token key atrule\">morphology</span><span class=\"token punctuation\">:</span> myStem                    // библиотека для морфологического анализа слов\n  <span class=\"token key atrule\">tokenizer</span><span class=\"token punctuation\">:</span> myStem                     // токенизатор<span class=\"token punctuation\">,</span> задает правила для разбиения текста на слова\n  <span class=\"token key atrule\">vocabulary</span><span class=\"token punctuation\">:</span> common<span class=\"token punctuation\">-</span>vocabulary.json    // словарь весов слов для ранжирования паттернов\n  <span class=\"token key atrule\">lengthLimit</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">enabled</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n    <span class=\"token key atrule\">symbols</span><span class=\"token punctuation\">:</span> 400                        // лимит на количество символов во входящем сообщении\n    <span class=\"token key atrule\">words</span><span class=\"token punctuation\">:</span> 100000                       // лимит на количество слов во входящем сообщении\n  <span class=\"token key atrule\">timeLimit</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">enabled</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n    <span class=\"token key atrule\">timeout</span><span class=\"token punctuation\">:</span> 10000                      // максимальное время обработки запроса в nlp<span class=\"token punctuation\">-</span>модуле в миллисекундах</code></pre></div>\n</br>\n<ol start=\"2\">\n<li>Далее задайте параметры классификации:</li>\n</ol>\n<h5>engine</h5>\n<p>Тип классификатора, по умолчанию <code class=\"language-text\">sts</code>.</p>\n</br>\n<h5>noMatchThreshold</h5>\n<p>Значение нижнего порога похожести, при котором нужно считать фразы непохожими. В ходе разработки классификатора было эмпирически определено, что оптимальное значение этого параметра <code class=\"language-text\">0.2</code>.</p>\n</br>\n<h5>parameters: algorithm</h5>\n<p>Тип используемого алгоритма классификации. Используется <code class=\"language-text\">match-aligner</code> — основной тип для sts-классификатора. Также вы можете использовать <code class=\"language-text\">aligner</code> и <code class=\"language-text\">aligner2</code> — альтернативная реализация алгоритма классификации.</p>\n</br>\n<ol start=\"3\">\n<li>Далее сконфигурируйте алгоритм классификатора. Все параметры настроены по умолчанию. Необходимо только указать словарь весов, он совпадает со словарем, указанным в блоке <code class=\"language-text\">nlp</code>. По умолчанию: <code class=\"language-text\">common-vocabulary.json</code>.</li>\n</ol>\n</br>\n<p>Пример конфигурационного файла <code class=\"language-text\">chatbot.yaml</code> с подключенным классификатором:</p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> demo\n\n<span class=\"token key atrule\">entryPoint</span><span class=\"token punctuation\">:</span>\n  <span class=\"token punctuation\">-</span> main.sc\n\n<span class=\"token key atrule\">tests</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">exclude</span><span class=\"token punctuation\">:</span>\n    <span class=\"token punctuation\">-</span> tests.xml\n\n<span class=\"token key atrule\">messages</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">onError</span><span class=\"token punctuation\">:</span> \n        <span class=\"token key atrule\">defaultMessage</span><span class=\"token punctuation\">:</span> Ой<span class=\"token punctuation\">,</span> кажется<span class=\"token punctuation\">,</span> что<span class=\"token punctuation\">-</span>то пошло не так. \n        <span class=\"token key atrule\">locales</span><span class=\"token punctuation\">:</span> \n            <span class=\"token key atrule\">ru</span><span class=\"token punctuation\">:</span> Ой<span class=\"token punctuation\">,</span> кажется<span class=\"token punctuation\">,</span> что<span class=\"token punctuation\">-</span>то пошло не так.\n\n<span class=\"token key atrule\">nlp</span><span class=\"token punctuation\">:</span>                                    // параметры для nlp<span class=\"token punctuation\">-</span>функци платформы\n  <span class=\"token key atrule\">morphology</span><span class=\"token punctuation\">:</span> myStem                    // библиотека для морфологического анализа слов\n  <span class=\"token key atrule\">tokenizer</span><span class=\"token punctuation\">:</span> myStem                     // токенизатор<span class=\"token punctuation\">,</span> задает правила для разбиения текста на слова\n  <span class=\"token key atrule\">vocabulary</span><span class=\"token punctuation\">:</span> common<span class=\"token punctuation\">-</span>vocabulary.json    // словарь весов слов для ранжирования паттернов\n  <span class=\"token key atrule\">lengthLimit</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">enabled</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n    <span class=\"token key atrule\">symbols</span><span class=\"token punctuation\">:</span> 400                        // лимит на количество символов во входящем сообщении\n    <span class=\"token key atrule\">words</span><span class=\"token punctuation\">:</span> 100000                       // лимит на количество слов во входящем сообщении\n  <span class=\"token key atrule\">timeLimit</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">enabled</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n    <span class=\"token key atrule\">timeout</span><span class=\"token punctuation\">:</span> 10000                      // максимальное время обработки запроса в nlp<span class=\"token punctuation\">-</span>модуле в миллисекундах\n\n<span class=\"token key atrule\">classifier</span><span class=\"token punctuation\">:</span>                             // параметры для классификатора\n  <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n  <span class=\"token key atrule\">engine</span><span class=\"token punctuation\">:</span> sts                           // тип классификатора\n  <span class=\"token key atrule\">noMatchThreshold</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0.2</span>\n  <span class=\"token key atrule\">parameters</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">algorithm</span><span class=\"token punctuation\">:</span> aligner2                 // алгоритм классификации\n\n<span class=\"token key atrule\">aligner</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">vocabulary</span><span class=\"token punctuation\">:</span> common<span class=\"token punctuation\">-</span>vocabulary.json\n\n<span class=\"token key atrule\">exampleGroups</span><span class=\"token punctuation\">:</span>\n    <span class=\"token punctuation\">-</span> src/dictionaries/examples.json    // указывается при использовании группы примеров</code></pre></div>","frontmatter":{"title":"","description":null},"headings":[{"value":"Подключение классификатора к боту"}]}},"pageContext":{"slug":"/docs/ru/classificator/connection_classificator/","previous":{"fields":{"slug":"/docs/ru/classificator/e!/"},"frontmatter":{"title":"","description":null}},"next":{"fields":{"slug":"/docs/ru/bot_answers/table_replies/"},"frontmatter":{"title":"","description":null}}}},
    "staticQueryHashes": ["1209419333"]}