作者TZULIU (消费券收购商)
看板Python
标题Re: [问题] Python2 unicode转日文
时间Tue Jun 6 01:22:30 2017
※ 引述《TZULIU (消费券收购商)》之铭言:
: 想请问各位一下,
: 近日我正在使用日文进行text clustering,
: 但当我将日文字/词转换成dictionary之後,
: dictionary key就变成unicode而非日文,
: 请问该如何解决此问题?
: Code 如下:
: ## 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)}
其实我本来也是用Python3来处理这个问题,
不过不知为何下行".argsort()"并没有sorting矩阵里的资料,
以至於再下一行码产生错误"too many indices for array"
请问有高手有解吗?
: 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() 时,则会变成unicode:
: [u'\u77ed\u9283',
: u'\u5efa\u3066',
: u'\u4f0a',
: u'\u5e73\u5b89',
: u'\u6025\u9a30',
: u'\u897f\u65e5\u672c',
: u'\u5e03\u9663',
: ...]
: 请问各位高手该如何解决此一问题?谢谢。
回到原本的问题,当我用"plot_dendrogram"的时候,
若设定"labels=dict_index/keys()",
X轴的label只会是方块并不会有任何文字,
请问各位高手有解吗?
谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 168.150.120.168
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1496683353.A.7CC.html
1F:→ ides13: from matplotlib.font_manager 可以设定要使用的字型 06/06 01:41
3F:→ TZULIU: 感谢回答,但上述方法似乎是让plot可以读取"u"日本"" 06/06 02:37
4F:→ TZULIU: 但我的资料已经变成"u'\u77ed\u9283'"所以其实无效,请问 06/06 02:38
5F:→ TZULIU: 有其他方法吗? 06/06 02:38
6F:推 darkgerm: 应该是 dict.values() 2,3 回传的型态不同 06/06 10:23
7F:→ darkgerm: 先转成 list 试试 list(dict_index.values()) 06/06 10:23
9F:→ darkgerm: 用 iter 也行,效能更好 06/06 10:29