НЛП (обработка естественным языком) Как определить вопрос любым методом? - PullRequest
0 голосов
/ 07 ноября 2018

Я ищу метод машинного обучения, обнаружив некоторый вопрос

Пример,

 User: Please tell me your name ?     
 AI  : (AI find User want to know his name)   
       My name is [AI's name]. 

Мой набор данных выглядит следующим образом.

[label], [question]    
   1   , What's your name?    
   1   , Tell me your name.
   ...

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

Пример,

User: Hello, my name is [User name]
AI  : (this is not a question)    
      (throw another process)
      (->) Nice to meet you.

Количество категорий Вопроса составляет 10 ~ 20, но число предложений, которые не являются вопросом, слишком много.

Знаете ли вы, как решить этот вопрос или любую задачу, связанную с этим?

1 Ответ

0 голосов
/ 07 ноября 2018

Возможно, вы захотите разделить проблему на три части.

  • Сначала вы захотите отобразить последовательность текста произвольной длины на вектор фиксированной длины. Для этого вы можете обратиться к Ле и Миколову "Распределенное представление предложений и документов"
  • Если у вас есть это, проблема сводится к простой задаче классификации. У вас есть набор векторов и категорий, в которые отображается каждая карта. Сеть с одним скрытым слоем и выходным слоем softmax, вероятно, должна быть достаточной. Это даст вам распределение по категориям.
  • Наконец, вам нужно определить уровень достоверности для каждого прогноза. На ум приходят два широких подхода.
    1. Во-первых, вы можете ввести новую категорию «Разное» и добавить к ней любые предложения, которые не вписываются в одну из «реальных» категорий. Слабость этого подхода заключается в том, что этот класс на самом деле является объединением многих не связанных между собой классов и, следовательно, может быть трудным для изучения, поскольку точки будут разбросаны по всему пространству векторов абзаца, а не будут существовать в хорошем кластере.
    2. В качестве альтернативы вы можете посмотреть значения выходных нейронов до , которые вы нормализуете с помощью softmax, и вывести «неизвестную категорию», если значение для наиболее вероятной категории не превышает некоторый порог. Возможно, вы захотите настроить пороговое значение, чтобы максимизировать точность по сравнению с набором проверки.

Я не могу гарантировать, что это сработает, но такой подход я бы попробовал первым.

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