Как сделать базовую контекстуализацию в JavaScript с помощью nlp-компромисса?

1

Итак, я видел эту потрясающую обработку естественного языка в javascript, и мне интересно, как я могу сделать базовую контекстуализацию?

Скажем, например, я хочу найти время.

Делая что-то вроде этого:

var word = nlp('What the time')

console.log(word.match('time').found)

Я получаю true логическое значение, так как слово time присутствует. Но то, что я хотел сделать, например,

nlp('What the time') и nlp('What time is it') значение будет истинным, но если nlp('Time is gold') значение будет ложным, так как пользователь не запрашивал время.

Возможно ли это с помощью этой библиотеки? Любая помощь приветствуется.

Теги:
machine-learning
nlp
nlp-compromise

2 ответа

3

Похоже на то, что вы хотите сделать, это Intent Recognition, которое обычно рассматривается как проблема классификации. В этой статье дается обзор одного из способов сделать это; взгляните на данные обучения:

training_data.append({"class":"greeting", "sentence":"how are you?"})
training_data.append({"class":"greeting", "sentence":"how is your day?"})
training_data.append({"class":"greeting", "sentence":"good day"})
training_data.append({"class":"greeting", "sentence":"how is it going today?"})

training_data.append({"class":"goodbye", "sentence":"have a nice day"})
training_data.append({"class":"goodbye", "sentence":"see you later"})
training_data.append({"class":"goodbye", "sentence":"have a nice day"})
training_data.append({"class":"goodbye", "sentence":"talk to you soon"})

training_data.append({"class":"sandwich", "sentence":"make me a sandwich"})
training_data.append({"class":"sandwich", "sentence":"can you make a sandwich?"})
training_data.append({"class":"sandwich", "sentence":"having a sandwich today?"})
training_data.append({"class":"sandwich", "sentence":"what for lunch?"})

Компромисс не имеет функций для классификации текста, поэтому он вам не поможет.

  • 0
    Я посмотрю на это. Спасибо.
1

да, как сказал polm23, это похоже на проблему статистической классификации.

но, если бы вы знали, (или машинные) шаблоны предложений, которые предполагают намерение, вы можете найти их в компромиссе с синтаксисом соответствия

//what time is..
if(doc.has('#QuestionWord time #Copula')){
  return true
}
//time is fun..
if(doc.has('time #Copula #Adjective')){
  return false
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню