2016-09-07 41 views
0

是否有一个函数的作用类似于散列码,其中一串或一组位被传入并转换为数字。然而,这种算法的工作原理是,彼此更相似的字符串会导致数字彼此更接近。用数值表示一个字符串,其数值不同于散列码

f("abcdefg") - f("abcdef") < f("lorem ipsum dolor") - f("abcde") 

的算法并不一定是完美的,我只是试图将一些描述成一个数字表示作为一个ML实验一个更多的投入。我知道这个字符串数据对算法有价值,我只是试图想出一些简单的方法将它变成数字。

+0

此外,这个标题可以真正使用一些帮助作为未来的搜索者的目标,所以请随时对此发表评论。 –

+1

关键字可能是**相似性保留哈希**。有很多关于训练神经网络用于图像和合成的工作,最显着的例子可以是“FaceNet”([link](http://www.cv-foundation.org/openaccess/content_cvpr_2015/app /1A_089.pdf))当然,这种方法可以使用Levenshtein-Distance等东西来复制(使用不同的网络架构)和生成的训练数据。 – sascha

+0

您要求的内容与散列函数相反。考虑一下:不管你的散列函数有多好,都有无限多的散列到*相同*值的字符串。你想要“相似”的字符串通常散列到*相同*值?如果没有,那么很难弄清楚你想要什么。也许你可以描述你的应用程序。 –

回答

2

我从你的文章中了解到的非常类似于我的兴趣tpic。有一个伟大的工具或过程来完成你所要求的任务。 我所指的工具被称为word2vec。它给出了字符串中每个单词的矢量化。它被谷歌发现。在这个模型中,每个单词都会根据词汇表中的单词及其附近的单词(下一个单词和prev单词)给出一个vectorizatipon。通过google或youtube浏览这个word2vec主题,你会清楚地了解它。 这个工具的力量是如此之多,你可以做出意想不到的事情。一个例子是 King - Man + Woman = Queen 这个工具主要用于语义分析。

+0

是的,我认为这与我正在寻找的东西非常接近。 word2vec看起来非常有趣。 –

+0

我也在考虑某种评分水平的写作作为一个可能的因素。 –

+0

是的..这是最适合你需要的话题..干杯..它的好处是我可以对这个领域的任何人有所帮助。 –

相关问题