将nl字符串转换为向量或一些数字等价物

时间:2015-04-26 16:09:19

标签: javascript string nlp

我试图将字符串转换为数字等价物,因此我可以训练神经网络对字符串进行分类。我尝试了ascii值的总和,但这只会导致更大的数字而不是更小的数字。

例如,我可以在德语中输入一个短字符串,并将其放入英语课程中,因为它训练过的英语单词很短且数量很少。

我正在研究Google的word2vec,这似乎应该可行。但我想在客户端做到这一点。我找到了node.js implementation, here,但只运行了命令行工具。

如何将字符串转换为数字,可能是js中的矢量?

1 个答案:

答案 0 :(得分:1)

我确定你已经考虑过分配你遇到整数的每个新词。你必须在某个地方跟踪,但这是一个选择。

你也可以使用js所拥有的任何内置哈希方法。

如果你不介意一些哈希冲突,并且结果整数的大小无关紧要,我可以推荐一些我曾经使用过几次的技巧。

Frequency of Letters in English

所以e = 2t=3a=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
  • 将与单词中每个字母对应的值相乘

所以,value73*5*31*41*2corresponding37*7*23*23...。每个独特的集合给出了独特的答案。它碰撞了字谜,所以我们不小心建了一个字谜探测器。

但是,实际上并没有一种语言上合理的方法。我怀疑word2vec只是将任意整数分配给字符串。