автоматически генерировать намерение и сущность из полного предложения - PullRequest
0 голосов
/ 14 мая 2018

Я создаю бота с Rasa.ai . При обучении бота с помощью Rasa NLU мы используем файл обучающих данных, в котором указаны текст, намерение, сущность и т. Д. Например, для простого ресторанного чат-бота обучающий файл data.json может содержать

{
        "text": "central indian restaurant",
        "intent": "restaurant_search",
        "entities": [
          {
            "start": 0,
            "end": 7,
            "value": "central",
            "entity": "location"
          },
          {
            "start": 8,
            "end": 14,
            "value": "indian",
            "entity": "cuisine"
          }
        ]
      }

Мы используем это для обучения модели. Но нам нужно создать этот обучающий файл вручную (или через графический интерфейс).

Есть ли какой-нибудь инструмент, где я могу кормить предложения, и он может автоматически создавать намерение и сущность?

Sample Input: Is there any central Indian restaurant?
Sample Output: The above data.json

EDIT:

Чтобы лучше объяснить этот вопрос - предположим, у меня есть огромный набор журналов обслуживания клиентов. Насколько я понимаю, с Rasa (или другой подобной структурой) - человеку нужно пройти через журнал вызовов и понять все возможные намерения, комбинации сущностей, которые произошли в прошлом, и создать файл, такой как data.json, такой как выше, перед обучением модели. , Это кажется по-настоящему не масштабируемой проблемой. Есть ли способ сгенерировать этот файл data.json из этих журналов вызовов размером в ГБ без участия человека? Я что-то здесь упускаю?

Ответы [ 4 ]

0 голосов
/ 12 августа 2018

То, что я спрашиваю, - это, по сути, обучение без учителя.Введите несколько естественных языков и выведите их в формате намерения / сущности, который требуется Rasa или любому другому подобному инструменту.

Это отсутствует в Расе или подобном инструменте, поскольку они проводят обучение под наблюдением.Один из примеров инструментов, которые могут решить мою проблему: lang.ai

0 голосов
/ 14 мая 2018

Быстрый способ создания произвольно больших обучающих наборов данных с несколькими строками кода: Chatito

  1. Вы записываете типичные предложения и синонимы для сущностей в интуитивно понятном DSL.
  2. Он генерирует для вас все комбинации и перетасовывает их для лучшего обучения.
  3. Он разбивает примеры между 2 файлами: один для обучения и один для тестирования.Таким образом, вы можете измерить точность вашей обученной языковой модели.
0 голосов
/ 10 августа 2018

Идея состоит в том, чтобы предоставить только примеры предложений.Предоставляя образец, вы обучаете модель понимать структуру предложения, где ожидать сущности, какой тип данных сущности и т. Д.

Однако, если вы просто ищете идентификацию именованной сущности, вы можете использовать только spaCy.,Просто бросив предложение, он попытается обнаружить сущности в предложении.Spacy уже обучил модели делать это.

Ссылка: Именованные объекты Spacy

0 голосов
/ 14 мая 2018

Это как раз та задача, которую вы обучаете НСУ Раса.Возьмите предложения и превратите их в структурированный вывод.Приводя примеры, вы учите модель, как это работает.

Таким образом, вам не нужно предоставлять аннотации для гигабайтов пользовательских журналов, а только некоторые, и алгоритм должен обобщать другие предложения, которых он еще не видел.Насколько хорошо это работает, зависит от того, сколько у вас намерений, насколько они сложны и других факторов.

Я бы начал с аннотирования нескольких сотен предложений (на самом деле формат уценки *1006* немного проще), оставил бы около 50 примеров отдельно и посмотрел, насколько хорошо Rasa NLU их предсказывает.Продолжайте аннотировать все больше и больше примеров и добавляйте их в свои учебные данные, пока вы не будете довольны результатами на выдвинутых примерах.

...