2

我编写了一个脚本来生成可能的 twitter 句柄并检查它们的可用性。它只是遍历允许的符号的不同组合:a-z, 0-9, _. 目前它已经检查了 1926220 个组合,即每个包含 1-5 个符号的组合。以下是简要结果:01、2 和 3 个符号的免费帐户,4 个免费帐户,5 个免费750帐户442711

我想知道是否有可能编写一个算法来分析这些列表并在其中找到人类可读的单词。这是一个例子:

elnsv
elnt8
eloq4
elosu
elq0_
elq15
elq46

这个词elosu与其他词不同,事实证明西班牙甚至有一个小镇叫埃洛苏。人类如何区分这些词?我想我可以尝试制作一本不同语言的音节标签字典,并尝试将单词与之进行比较。你能帮我用公式或其他想法吗?

更新:对于那些想要尝试实现它的人,这里是5-symbol handles的链接。

4

3 回答 3

3

我会尝试利用群众的智慧来解决这个问题。

  1. 谷歌显示包含查询的页面的大致数量,例如,对我来说elnsv,您的示例中的查询(不使用“您的意思是..”)给出了大约 60k 个结果,查询elq0_有大约 23k 个页面,并且“真实”单词elosu有约 330k 匹配页面。这是一个强烈的含义,表明这个词比其他词更可能有意义。所以,基本上这种方法意味着:使用一些搜索引擎并使用它的结果来确定什么是有意义的,什么是没有意义的。

  2. 这个词elosu有一篇维基百科文章,虽然它不是你的意思,但它仍然有帮助。请注意,维基百科的方法将非常好并且非常准确地确定哪个术语是有意义的单词,但是对于消除术语会有问题,所以我将它用作管道中的第一级“判断”,并将其余部分提供给其他法官。

于 2013-08-11T08:51:48.197 回答
2

好吧,在编程时,您可能必须像人类一样思考,当您查看字符串时,您首先会识别出什么字符串。对于这样的算法,您应该使用人工智能或使用谷歌 API 进行搜索。

让我们以上面给定的单词为例。你有 5 个带数字的字母单词。

因此,具有最少数字字符的单词的概率很容易被人类识别。在您的情况下,我将遵循此规则并为其创建一个程序。

降序优先级较高的词

具有 5 个字母的单词优先级更高。

有 4 个字母的单词(例外:数字不应该在前 4 位)

包含 3 个字母的单词(例外:数字不应位于前 3 位)

等等....

最后优先级将是在第一个或最后一个具有特殊字符的单词。

单词中间包含特殊字符的单词不应该优先。

我可能正在使用 API 搜索谷歌并尝试 elnsv,结果将该词更改为 ensv,这是 ENSERVCO CORP 的股票代码。所以我要么跳过这个词,要么添加关系。

在您的情况下,算法是这样的,对确实有意义的单词以及它们的外观进行统计数据,具有数字的单词是否有意义。将它们添加到数组中并使用插入排序算法对其进行排序。使用字典数组查找关系并忘记字典中带有特殊字符的单词。对于带有特殊字符或数字的单词,如果存在含义,您应该尝试基于网络的搜索,基本上最后留下的单词不应被人或机器识别,因此您应该借助任何搜索引擎。

不知道我的回答是否正确,所以肯定会在您提供的列表中尝试我的代码。

于 2013-08-11T06:46:13.647 回答
2

学习英语单词的马尔可夫模型(使用字母、二元组等)并检查生成单词的概率。当然,这并非万无一失,但应该会给您带来不错的结果。

生成可发音密码的问题非常相似,并且已经在该领域进行了一些工作。参见例如这个相关的问题

于 2013-08-11T13:08:43.347 回答