作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将字符串转换为等价数字,以便我可以训练神经网络对字符串进行分类。我尝试了 ascii 值的总和,但这只会导致较大的数字与较小的数字。
例如,我可以有一个德语短字符串,它会将其放入英语类中,因为它所训练的英语单词很短且数字很小。
我正在研究 Google 的 word2vec,它似乎应该有效。但我想在客户端执行此操作。我发现了一个node.js implementation, here ,但这只是运行命令行工具。
如何将字符串转换为数字,例如 js 中的向量?
最佳答案
我确信您已经考虑过为遇到的每个新单词分配一个整数。你必须在某个地方进行跟踪,但这是一种选择。
您还可以使用 js 具有的任何内置哈希方法。
如果您不介意一些哈希冲突,并且结果整数的大小并不重要,我可以推荐一个我之前使用过几次的技巧。
因此,e = 2
、t=3
、a=5
等,这给了我们:
2 e
3 t
5 a
7 o
11 i
13 n
17 s
19 h
23 r
29 d
31 l
37 c
41 u
43 m
47 w
53 f
59 g
61 y
67 p
71 b
73 v
79 k
83 j
89 x
97 q
101 z
因此,值
为73*5*31*41*2
。 对应的
是37*7*23*23...
。每个独特的集合都给出了独特的答案。它会与字谜词发生冲突,因此我们意外地构建了一个字谜检测器。
不过,实际上并没有一种语言上合理的方法可以做到这一点。我怀疑 word2vec
只是将任意整数分配给字符串。
关于javascript - 将 nl 字符串转换为向量或一些等价的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29880071/
我是一名优秀的程序员,十分优秀!