Установка • Удаление • Как использовать Chatette ? • Шатетт против Чатито ? • Развитие • Кредиты
Chatette — это программа Python, которая генерирует наборы обучающих данных для Rasa NLU на основе файлов шаблонов. Если вы хотите без особых головных болей создавать большие наборы данных с примерами данных для задач понимания естественного языка, Chatette — это проект для вас.
В частности, Chatette реализует доменно-ориентированный язык ( DSL ), который позволяет вам определять шаблоны для генерации большого количества предложений, которые затем сохраняются во входных форматах Rasa NLU .
Используемый DSL представляет собой почти расширенную версию превосходного проекта Chatito, созданного Родриго Пиментелем. ( Примечание: DSL на самом деле является расширенным набором Chatito v2.1.x для Rasa NLU, а не для всех возможных адаптеров. )
Также доступен интерактивный режим:
Чтобы запустить Chatette , вам понадобится установленный Python. Chatette работает как с Python 2.7, так и с Python 3.x (>= 3.4).
Chatette доступен на PyPI и поэтому может быть установлен с помощью pip
:
pip install chatette
Альтернативно вы можете клонировать репозиторий GitHub и установить необходимые требования:
pip install -r requirements/common.txt
Затем вы можете установить проект (как редактируемый пакет) с помощью pip, выполнив следующую команду из каталога Chatette/chatette/
:
pip install -e .
Затем вы можете запустить модуль, используя приведенные ниже команды в клонированном каталоге.
Вы можете просто использовать pip для удаления Chatette :
pip uninstall chatette
Данные, которые Chatette использует и генерирует, загружаются из файлов и сохраняются в них. Таким образом, у вас будет:
Один или несколько входных файлов, содержащих шаблоны. Нет необходимости указывать конкретное расширение файла. Синтаксис DSL для создания этих шаблонов описан в вики.
Один или несколько выходных файлов , которые будут созданы Chatette и будут содержать сгенерированные примеры. Эти файлы могут быть отформатированы в JSON (по умолчанию) или в Markdown и могут быть напрямую переданы в Rasa NLU . Также возможно использовать формат JSONL .
После установки Chatette и создания файлов шаблонов выполните следующую команду:
python -m chatette < path_to_template >
где python
— ваш интерпретатор Python (некоторые операционные системы используют python3
в качестве псевдонима интерпретатора Python 3.x).
Вы можете указать имя выходного файла следующим образом:
python -m chatette < path_to_template > -o < output_directory_path >
указывается относительно каталога, из которого выполняется скрипт. Выходные файлы будут затем сохранены в пронумерованных файлах .json
в
и
. Если вы не указали путь к выходному каталогу, по умолчанию используется output
каталог.
Остальные аргументы программы и описаны в вики.
TL;DR: главное преимущество : с помощью Chatette легче работать с большими проектами , и вы можете преобразовать большинство проектов Chatito в Chatette без каких-либо изменений.
Вполне закономерный вопрос:
Почему существует Chatette , когда Chatito уже выполняет те же цели?
На самом деле эти два проекта преследуют разные цели:
Chatito стремится стать универсальным, но мощным DSL , который должен оставаться очень разборчивым. Хотя это прекрасно подходит для небольших проектов, но когда проекты становятся больше, простота DSL может стать бременем: ваш файл шаблона становится настолько большим, что вы теряетесь внутри него.
Chatette определяет более сложный DSL , чтобы иметь возможность управлять более крупными проектами, и старается обеспечить максимальную совместимость с Chatito . Вот неисчерпывающий список функций, которые есть у Chatette и которых нет у Chatito :
Поскольку DSL Chatette является расширенным набором DSL Chatito , входные файлы, используемые для Chatito, в большинстве случаев полностью пригодны для использования с Chatette (а не наоборот). Следовательно, начать использовать Chatette легко, если вы раньше использовали Chatito .
В качестве примера, данные Chatito :
// This template defines different ways to ask for the location of toilets (Chatito version)
%[ask_toilet]('training': '3')
~[sorry?] ~[tell me] where the @[toilet#singular] is ~[please?]?
~[sorry?] ~[tell me] where the @[toilet#plural] are ~[please?]?
~[sorry]
sorry
Sorry
excuse me
Excuse me
~[tell me]
~[can you?] tell me
~[can you?] show me
~[can you]
can you
could you
would you
~[please]
please
@[toilet#singular]
toilet
loo
@[toilet#plural]
toilets
можно было бы напрямую передать в качестве входных данных в Chatette , но этот шаблон Chatette даст те же результаты:
// This template defines different ways to ask for the location of toilets (Chatette version)
%[&ask_toilet](3)
~[sorry?] ~[tell me] where the @[toilet#singular] is [please?]?
~[sorry?] ~[tell me] where the @[toilet#plural] are [please?]?
~[sorry]
sorry
excuse me
~[tell me]
~[can you?] [tell|show] me
~[can you]
[can|could|would] you
@[toilet#singular]
toilet
loo
@[toilet#plural]
toilets
Версию Chatito , возможно, легче читать, но версия Chatette короче, что может быть очень полезно при работе с большим количеством шаблонов и возможным повторением.
Помните, что, как всегда при машинном обучении, наличие слишком большого количества данных может привести к снижению производительности ваших моделей из-за переобучения. Хотя этот сценарий можно использовать для создания тысяч и тысяч примеров, его не рекомендуется использовать для задач машинного обучения.
Шатетт назван в честь Чатито : -ette на французском языке можно перевести как -ita или -ito на испанском языке. Обратите внимание, что последняя буква «е» в Chatette не произносится (как в случае с «note»).
Для разработчиков вы можете клонировать репозиторий и установить требования разработки: pip install -r requirements/develop.txt
Затем установите модуль как редактируемый: pip install -e
Запустите pylint: tox -e pylint
Запустите pycodestyle: tox -e pycodestyle
Запустите pytest: tox -e pytest
Отказ от ответственности: это побочный проект, за который мне не платят, не ждите, что я буду работать над ним 24/7.
Большое им спасибо!