gpt4 book ai didi

node.js - TensorflowJS 文本/字符串分类

转载 作者:行者123 更新时间:2023-11-30 08:42:33 25 4
gpt4 key购买 nike

主题

你好。我想使用 NodeJS 中的 Tensorflow.js 实现文本分类功能
它的工作是将字符串与一些预定义的主题进行匹配。

示例:

输入: String :“我的狗喜欢在海滩上散步”
预定义主题: Array<String> :["dog", "cat", "cow"]
输出:有许多我喜欢的输出变体。这些是一些例子,但如果你能提出更好的建议,那就去做吧!

  • String (最有可能的主题) - 示例:“狗”
  • Object (每个主题都有预测分数)
    示例:{"dog": 0.9, "cat": 0.08, "cow": 0.02}

研究

我知道可以通过过滤主题名称的字符串并执行一些算法来实现类似的结果,但也可以通过 ML 来实现。

已经有一些关于使用字符串、对文本进行分类以及使用 TensorFlow 创建自动完成功能的帖子(但不确定 TFjs ),如下所示:

您可以如何提供帮助

我的目标是用 TensorflowJS 进行主题预测。我只需要一个使用字符串训练模型或如何对文本进行分类的最佳方法的示例,然后我将自行扩展其余部分。

最佳答案

文本分类还有一个额外的挑战,那就是首先从单词中找到向量。根据所解决问题的性质,有多种方法。在构建模型之前,可以确保将向量与语料库的所有单词相关联。在语料库中的向量表示遇到另一个稀疏问题之后。因此就需要word embedding 。此任务最流行的两种算法是 Wor2VecGloVe 。 js中有一些实现。或者可以使用概述的词袋创建向量 here .

一旦有了向量,全连接神经网络 FCNN 将足以预测文本的主题。其他需要考虑的事情是决定文本的长度。如果文本太短,可能会有一些填充等...这是一个模型

const model = tf.sequential();
model.add(tf.layers.dense({units: 100, activation: 'relu', inputShape: [lengthSentence]}));
model.add(tf.layers.dense({units: numTopics, activation: 'softmax'}));
model.compile({optimizer: 'sgd', loss: 'categoricalCrossentropy'});

模型的要点

该模型只是将输入连接到分类输出。这是一个非常简单的模型。但在某些场景下,可以考虑在输入层之后添加嵌入层。

model.add(tf.layers.embedding({inputDim: inputDimSize, inputLength: lengthSentence, outputDim: embeddingDims}))

在其他情况下,LSTM层可以是相关的

tf.layers.lstm({units: lstmUnits, returnSequences: true})

关于node.js - TensorflowJS 文本/字符串分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51698131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com