在Python中用于序列建模的int的一致字符

问题描述 投票:0回答:2

我正在实现RNN模型,为此我需要根据以下字典将所有字符转换成整数。

charset={'!',
 '#',
 '(',
 ')',
 '+',
 '-',
 '/',
 '1',
 '2',
 '3',
 '4',
 '=',
 'B',
 'C',
 'E',
 'F',
 'H',
 'I',
 'N',
 'O',
 'P',
 'S',
 '[',
 '\\',
 ']',
 'l',
 'r'}

我使用以下方法根据以下字典将charset转换为整数。

char_to_int = dict((c,i) for i,c in enumerate(charset))

这给了我以下输出。

{'2':0,'F':1,'-':2,'O':3,'1':4,'E':5,'4':6,'!':7,'H':8,'S':9,'/':10,'\':11,'#':12,'l':13,'=':14,'P':15,'C':16,'+':17,'r':18,'B':19,'(':20,')':21,']':22,'3':23,'[':24,'I':25,'N':26}]

现在,我关闭Jupyternotebook,然后再次加载数据,然后再次运行上述两行代码。这次映射不同,如下所示。

{']':0,'\':1,'(':2,'=':3,'!':4,'F':5,'3':6,'S':7,'4':8,'N':9,'+':10,'l':11,'H':12,'E':13,'C':14,'I':15,'-':16,'B':17,')':18,'P':19,'[':20,'r':21,'1':22,'/':23,'2':24,'#':25,'O':26}]

每次再次运行时如何获得一致的char_to_int

python machine-learning character-encoding recurrent-neural-network
2个回答
2
投票

set对象在Python中没有顺序。如果将charset设置为list而不是set,则两次运行之间的结果将保持一致。

© www.soinside.com 2019 - 2024. All rights reserved.