2

我只是按照这个https://github.com/axa-group/nlp.js/issues/126#issuecomment-444852649

但我得到的分数与示例中的不同。https://runkit.com/jesus-seijas-sp/5c0910e71539810012150767

有什么我想念的规则吗?

我只想使用 BayesClassifier

我在用 :"node-nlp": "^2.4.2"

const { BayesClassifier, NlpManager } = require('node-nlp');

    async function main() {
        const bayes = new BayesClassifier();
        const manager = new NlpManager({
          languages: ['en'],
          classifier: bayes,
          useNeural: false,
        });
        manager.addDocument('en', 'Hello', 'greet');
        manager.addDocument('en', 'Good evening', 'greet');
        manager.addDocument('en', 'Good morning', 'greet');
        manager.addDocument('en', "I've lost my keys", 'keys');
        manager.addDocument('en', "I don't find my keys", 'keys');
        manager.addDocument('en', "I don't know where are my keys", 'keys');
        await manager.train();
        const result = await manager.process('Where are my keys');
        console.log(result);
    }

    main();

结果

{ locale: 'en',
  localeIso2: 'en',
  language: 'English',
  utterance: 'Where are my keys',
  classification:
   [ { label: 'keys', value: 0.055555555555555546 },
     { label: 'greet', value: 0.006172839506172837 } ],
  intent: 'keys',
  domain: 'default',
  score: 0.055555555555555546,
  entities: [],
  sentiment:
   { score: 0,
     comparative: 0,
     vote: 'neutral',
     numWords: 4,
     numHits: 0,
     type: 'senticon',
     language: 'en' } }
4

1 回答 1

0

开发商在这里!2.3.x 和 2.4.x 之间发生了重大变化在 2.3.xa 对每个分类进行了标准化,此标准化的代码在这里: https ://github.com/axa-group/nlp.js/blob/主/lib/nlp/nlp-classifier.js#L241

在 2.4.x 中,仅当结果来自 Brain.js 神经网络时才进行这种归一化,而不是针对内部逻辑回归分类器,因为此 LRC 已经返回 0 到 1 之间的归一化结果。贝叶斯分类器结果未分类,因为这是因为老实说,根据基准,贝叶斯分类提供了最差的结果,而神经网络给出了很好的分数。

但是您可以使用 normalizeNeural 函数对结果进行归一化,值的分布将介于 0 和 1 之间。

于 2019-03-16T15:16:03.153 回答