编码日语字典键中的Unicode



我刚刚开始通过Python2在日语中进行文本聚类。但是,当我基于这些日语单词/术语创建字典时,字典键变成Unicode而不是日语。代码如下:

# load data
allWrdMat10 = pd.read_csv("../../data/allWrdMat10.csv.gz", 
encoding='CP932') 

## Set X as CSR Sparse Matrix
X = np.array(allWrdMat10)
X = sp.csr_matrix(X)
## create dictionary
dict_index = {t:i for i,t in enumerate(allWrdMat10.columns)}
freqrank = np.array(dict_index.values()).argsort()
X_transform = X[:, freqrank < 1000].transpose().toarray()

allWrdMat10.columns的结果仍然是日语,如下所示:

Index([u'?', u'.', u'・', u'%', u'0', u'1', u'10月', u'11月', u'12
月', u'1つ',
...
u'瀋陽', u'疆', u'盧', u'籠', u'絆', u'胚', u'諫早', u'趙', u'鉉', u'鎔
基'],dtype='object', length=8655)

但是,dict_index.keys()的结果为:

[u'u77edu9283',
 u'u5efau3066',
 u'u4f0a',
 u'u5e73u5b89',
 u'u6025u9a30',
 u'u897fu65e5u672c',
 u'u5e03u9663',
 ...]

有什么办法可以将日语单词/术语保留在字典键中?还是有什么办法可以将Unicodes转换回日语单词/术语?谢谢。

当您向解释器询问表达式的值时,它会计算值,然后输出其repr()print语句(V2(或函数(V3(使用该值的str()。因此,如果我选择一个有问题的钥匙,然后询问我的解释器的价值是什么,我会得到您所看到的。但是,如果我 print,我会看到所需的日语字符:

>>> u'u77edu9283'
u'u77edu9283'
>>> print u'u77edu9283'
短銃

因此,您确实拥有所需的值,您只是不明白解释器正在使用不同的表示,保证在ASCII中表示。

您没有在python 2中以u为前缀。unicode_literals import unicode_literals

最新更新