You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从natural的LogisticRegressionClassifier获取训练用标签短语映射?

获取LogisticRegressionClassifier的标签与对应短语

嘿,我来帮你搞定这个需求!首先得跟你提个小细节:你想要的{"label1":"phrase1","label1":"phrase2",...}这种格式在JavaScript里是行不通的——对象的键必须唯一,后面的label1会直接覆盖前面的,所以咱们得换个合理的结构,比如用标签作为键,对应的值是该标签下所有短语组成的数组,也就是{"label1": ["phrase1", "phrase2"], "label2": ["phrase3"], "label3": ["phrase4"]},这才是合法且实用的格式。

接下来告诉你怎么从classifier实例里提取这些数据:natural库的LogisticRegressionClassifier实例里,你添加的所有文档其实都存在documents属性里,每个元素都是包含label(标签)和text(短语)的对象。我们只需要遍历这个数组,把相同标签的短语收集起来就行。

直接上代码示例:

const natural = require('natural');
const classifier = new natural.LogisticRegressionClassifier();

// 添加你的文档
classifier.addDocument('label1', 'phrase1');
classifier.addDocument('label1', 'phrase2');
classifier.addDocument('label2', 'phrase3');
classifier.addDocument('label3', 'phrase4');

// 构建标签到短语列表的映射
const labelPhrasesMap = {};
classifier.documents.forEach(item => {
  // 如果当前标签还没在映射里,先初始化一个空数组
  if (!labelPhrasesMap[item.label]) {
    labelPhrasesMap[item.label] = [];
  }
  // 把短语添加到对应标签的数组里
  labelPhrasesMap[item.label].push(item.text);
});

console.log(labelPhrasesMap);
// 输出结果:
// {
//   label1: [ 'phrase1', 'phrase2' ],
//   label2: [ 'phrase3' ],
//   label3: [ 'phrase4' ]
// }

不管你是在classifier.train()之前还是之后,都能访问classifier.documents拿到这些原始数据,完全不用担心训练会影响这个属性的内容。

内容的提问来源于stack exchange,提问作者user3310334

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:08:06