我想从这里使用Ron Begleiter的代码:http://www.cs.technion.ac.il/~ronbeg/vmm/code_index.html,以便对某些顺序数据执行某些预测。
代码基于字符比较,即它读取上下文(字符序列)以及字符,它返回概率P(char | context),表示在给定上下文时char将出现的概率。
我的问题是我的字母表由0到1023之间的整数组成。这样的比较如P(1 | 111)不构成唯一的查询。目前尚不清楚是否要求P(1 | 1 1 1)(1e)或P(1 | 1 11)(1跟随11)或P(1 | 11 1)(11跟随1)。这种比较是模糊的,所以我想将每个数字映射到唯一的字符以消除歧义。
特别是我想探索如何为0到1023之间的每个数字唯一地分配唯一字符.Unicode是从我读过的方式开始的,我不打算打印它们,分配仅用于比较目的。换句话说,我想循环遍历0-1023并将每个数字分配给唯一的Unicode字符。
我认为这对许多人来说是可能和微不足道的,但不适合我。
指教?
答案 0 :(得分:0)
你说“我不打算打印它们”,但也说这是出于输入目的,消除“111”和“1,1,1”和“11,1”等之间的歧义。所以他们必须是可读/可打印的字符...你有几个选择,然后:
使用像@BobTheBuilder建议的固定多字符输入。 “000100010001”和“0011001”之间的区别非常明显,尽管对于人类来说可能不是最容易阅读的。
使用分隔符来分隔输入,就像我在上面第一段中所做的那样。 “111”vs“11,1”等
可能会缩短一些内容。 1024 = 32 * 32因此,如果您有一个32个字符的“字母”,则每个可能的值只需要两个字符。 CheckBox
,取消0-9A-Z
,I
,O
和Q
(我只挑选了这四个,以减少与Z
的混淆,{ {1}}和1
)可以很好地工作。然后,您可以将“1MFF”或“1M,FF”写为两个单独的值0
和2
。
从Unicode中找到1024个连续的可打印字符。 CJK range是我第一次想到的地方,但是您可以让用户使用随机中文字符输入此信息。也许这会奏效,但我对此表示怀疑。在我使用后者之一之前,我会选择前两个选项之一;没有1024个不同的字符可以用西方键盘轻松输入。