Node.js TensorflowJS文本/字符串分类 主题

Node.js TensorflowJS文本/字符串分类 主题,node.js,tensorflow,machine-learning,text,tensorflow.js,Node.js,Tensorflow,Machine Learning,Text,Tensorflow.js,你好。我想使用NodeJS中的Tensorflow.js实现文本分类功能。 它的任务是将字符串与一些预定义的主题进行匹配 示例: 输入:字符串:“我的狗喜欢在海滩上散步” 预定义的topcics:数组:[“狗”、“猫”、“牛”] 输出:有许多输出变体我都很熟悉。这些是一些例子,但如果你能提出更好的建议,就去做吧 String(最有可能的主题)-例如:“狗” 对象(每个主题都有一个预测分数)示例:{“狗”:0.9,“猫”:0.08,“牛”:0.02} 研究 我知道类似的结果可以通过过滤主题名称

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

示例: 输入
字符串
:“我的狗喜欢在海滩上散步”
预定义的topcics
数组
[“狗”、“猫”、“牛”]

输出:有许多输出变体我都很熟悉。这些是一些例子,但如果你能提出更好的建议,就去做吧

  • String
    (最有可能的主题)-例如:“狗”
  • 对象
    (每个主题都有一个预测分数)
    示例:
    {“狗”:0.9,“猫”:0.08,“牛”:0.02}
研究 我知道类似的结果可以通过过滤主题名称的字符串和执行一些算法来实现,但也可以通过ML来实现

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

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

我正在做类似的工作

我的代码

基于

他们呢

classify('is your shop open today?')
[('opentoday', 0.9264171123504639)]

但是我的代码还不能预测,文本分类还有一个额外的挑战,那就是首先从单词中找到向量。根据所解决问题的性质,有多种方法。在构建模型之前,可以确保向量与语料库中的所有单词相关联。在表示语料库中的向量之后,另一个问题是稀疏性。因此就产生了一种需要。此任务最常用的两种算法是和。js中有一些实现。或者,你可以使用概述的单词包创建向量

一旦有了向量,一个完全连接的神经网络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}))
在其他一些情况下,层可能是相关的

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

抱歉,但您需要向我们展示您试图解决问题的方法。研究是不够的,你需要尝试一些东西。一旦你这么做了,我们可以尽力帮助你。