将1024个数字映射为唯一字符



我想从这里使用Ron Begleiter的代码:http://www.cs.technion.ac.il/~ronbeg/vmm/code_index.html,以便对一些序列数据进行一些预测。

该代码基于字符比较,即,它读取上下文(字符序列)和字符,并返回概率p(char|context),这意味着在给定上下文的情况下出现字符的概率。

我的问题是我的字母表是由0到1023的整数组成的。因此,诸如P(1|111)之类的比较不构成唯一查询。目前还不清楚一个人是在要求P(1|1 11)(即1)还是P(1|111)(1后接11)或P(1|11 1)(11后接1)。这种比较是模糊的,所以我想把每个数字映射到唯一的字符来消除模糊。

我特别想探索如何为0到1023的每个数字唯一地分配唯一的字符。Unicode是我所读内容的发展方向,我不想打印它们,这项任务只是为了进行比较。换句话说,我想在0-1023上循环,并将每个数字分配给一个唯一的Unicode字符。

我认为这对很多人来说是可能的,也是微不足道的,但对我来说不是

建议?

你说"我不想打印它们",但也说这是出于输入目的,以消除"111"one_answers"1,1,1"以及"11,1"之间的歧义。因此,它们必须是可读/可打印的字符。。。那么你有几个选择:

  1. 使用固定的多字符输入,如@BobTheBuilder所建议的。"000100010001"one_answers"0011001"之间的差异非常明显,尽管对于人类来说可能不是最容易阅读的。

  2. 使用分隔符来分隔输入,就像我在上面第一段中所做的那样。"111"与"11,1"等

  3. 一些组合可以缩短时间。1024=32*32,所以如果你有一个32个字符的"字母表",那么每个可能的值只需要两个字符。0-9A-Z,去掉IOQZ(我只选择了这四个,以减少可能与102混淆)会非常好地工作。然后可以写"1MFF"或"1M,FF"来表示两个单独的值53495

  4. 从Unicode中查找1024个连续可打印字符。CJK范围是我最初想看的地方,但后来你会让你的用户使用随机汉字输入这些信息。也许这会奏效,但我对此表示怀疑。在选择后一种选择之前,我会选择前两种选择中的一种;没有1024个不同的字符可以用西方键盘轻松输入。

最新更新