首页 > 解决方案 > node-nlp v4 不提取实体

问题描述

从文本中提取电子邮件似乎不起作用,或者我遗漏了一些重要的东西。

import { dockStart } from '@nlpjs/basic';

const dock = await dockStart({ use: ['Basic'] });
const nlp = dock.get('nlp');
nlp.addLanguage('en');
// Adds the utterances and intents for the NLP
nlp.addDocument('en', 'goodbye for now', 'greetings.bye');
nlp.addDocument('en', 'bye bye take care', 'greetings.bye');
nlp.addDocument('en', 'okay see you later', 'greetings.bye');
nlp.addDocument('en', 'bye for now', 'greetings.bye');
nlp.addDocument('en', 'i must go', 'greetings.bye');
nlp.addDocument('en', 'hello', 'greetings.hello');
nlp.addDocument('en', 'hi', 'greetings.hello');
nlp.addDocument('en', 'howdy', 'greetings.hello');

nlp.addAnswer('en', 'greetings.bye', 'Till next time');
nlp.addAnswer('en', 'greetings.hello', 'Greetings!');

await nlp.train();
const response = await nlp.process('en', 'My email address is john@doe.com');
console.log(response);

这不输出任何实体

{
  locale: 'en',
  utterance: 'My email address is john@doe.com',
  languageGuessed: false,
  localeIso2: 'en',
  language: 'English',
  nluAnswer: { classifications: [ [Object] ], entities: undefined },
  classifications: [ { intent: 'None', score: 1 } ],
  intent: 'None',
  score: 1,
  sourceEntities: [],
  entities: [],
  answers: [],
  answer: undefined,
  actions: [],
  sentiment: {
    score: 0,
    numWords: 0,
    numHits: 0,
    average: 0,
    type: undefined,
    locale: 'en',
    vote: 'neutral'
  }
}

因此,在挖掘较旧的示例时,我还发现了extractEntities曾经在 V3 中工作的方法,但现在似乎没有。与上面相同的代码,但只有一行代码:

const response = await nlp.extractEntities('en', 'My email address is john@doe.com');

这仍然不返回任何实体:

{
  locale: 'en',
  utterance: 'My email address is john@doe.com',
  context: undefined,
  settings: {},
  sourceEntities: [],
  entities: []
}

有人知道我做错了什么吗?

标签: node.jsnlp

解决方案


推荐阅读