首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow.js令牌器

Tensorflow.js令牌器
EN

Stack Overflow用户
提问于 2018-08-02 22:40:12
回答 4查看 5K关注 0票数 8

我是机器学习和Tensorflow的新手,因为我不懂python,所以我决定在那里使用javascript版本(可能更像一个包装器)。

problem是我试图建立一个处理自然语言的模型。因此,第一步是对文本进行标记化,以便将数据提供给模型。我做了很多研究,但大多数人使用的是tensorflow的python版本,它使用的方法是:tf.keras.preprocessing.text.Tokenizer,我在tensorflow.js中找不到类似的方法。我被困在这一步中,不知道如何将文本传输到可以输入到模型的向量。(请帮助:)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-08-03 01:56:09

要将文本转换为向量,有很多方法可以实现,这都取决于用例。最直观的一种方法是使用词频,即给定语料库的词汇量(所有可能的单词),所有文本文档将被表示为一个向量,其中每个条目表示文本文档中单词的出现。

有了这个词汇:

代码语言:javascript
复制
["machine", "learning", "is", "a", "new", "field", "in", "computer", "science"]

案文如下:

代码语言:javascript
复制
["machine", "is", "a", "field", "machine", "is", "is"] 

将被转化为这个向量:

代码语言:javascript
复制
[2, 0, 3, 1, 0, 1, 0, 0, 0] 

这种方法的缺点之一是向量中可能存在大量的0,其大小与语料库的词汇量相同。这就是为什么还有其他的技术。然而,一袋袋话经常被提及。使用tf.idf的版本略有不同。

代码语言:javascript
复制
const vocabulary = ["machine", "learning", "is", "a", "new", "field", "in", "computer", "science"]
const text = ["machine", "is", "a", "field", "machine", "is", "is"] 
const parse = (t) => vocabulary.map((w, i) => t.reduce((a, b) => b === w ? ++a : a , 0))
console.log(parse(text))

还有下面的模块可能有助于实现您想要的

票数 9
EN

Stack Overflow用户

发布于 2019-04-15 17:53:23

嗯,我面对这个问题,并通过以下步骤来处理:

  1. tokenizer.fit_on_texts([data])之后,在您的python代码中打印tokenizer.word_index
  2. 将word_index输出复制并保存为json文件。
  3. 请参考这个json对象来生成标记化的单词,如:function getTokenisedWord(seedWord) { const _token = word2index[seedWord.toLowerCase()] return tf.tensor1d([_token]) }
  4. 饲料到模型:const seedWordToken = getTokenisedWord('Hello'); model.predict(seedWordToken).data().then(predictions => { const resultIdx = tf.argMax(predictions).dataSync()[0]; console.log('Predicted Word ::', index2word[resultIdx]); })
  5. index2wordword2index json对象的反向映射。
票数 4
EN

Stack Overflow用户

发布于 2020-09-17 05:59:32

代码语言:javascript
复制
const vocabulary = ["machine", "learning", "is", "a", "new", "field", "in", "computer", "science"]
const text = ["machine", "is", "a", "field", "machine", "is", "is"] 
const parse = (t) => vocabulary.map((w, i) => t.reduce((a, b) => b === w ? ++a : a , 0))
console.log(parse(text))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51663068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档