我试图将字符串转换为数字等价物,因此我可以训练神经网络对字符串进行分类。我尝试了ascii值的总和,但这只会导致更大的数字而不是更小的数字。
例如,我可以在德语中输入一个短字符串,并将其放入英语课程中,因为它训练过的英语单词很短且数量很少。
我正在研究Google的word2vec,这似乎应该可行。但我想在客户端做到这一点。我找到了node.js implementation, here,但只运行了命令行工具。
如何将字符串转换为数字,可能是js中的矢量?
答案 0 :(得分:1)
我确定你已经考虑过分配你遇到整数的每个新词。你必须在某个地方跟踪,但这是一个选择。
你也可以使用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
所以,value
是73*5*31*41*2
。 corresponding
是37*7*23*23...
。每个独特的集合给出了独特的答案。它碰撞了字谜,所以我们不小心建了一个字谜探测器。
但是,实际上并没有一种语言上合理的方法。我怀疑word2vec
只是将任意整数分配给字符串。