Re: [问题] Python2 unicode转日文

楼主: TZULIU (消费券收购商)   2017-06-06 01:22:30
※ 引述《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只会是方块并不会有任何文字,
请问各位高手有解吗?
谢谢。
作者: ides13 (juso)   2017-06-06 01:41:00
from matplotlib.font_manager 可以设定要使用的字型日文字型:http://www.maisfontes.com/osaka
楼主: TZULIU (消费券收购商)   2017-06-06 02:37:00
感谢回答,但上述方法似乎是让plot可以读取"u"日本""但我的资料已经变成"u'\u77ed\u9283'"所以其实无效,请问有其他方法吗?
作者: darkgerm (黑骏)   2017-06-06 10:23:00
应该是 dict.values() 2,3 回传的型态不同先转成 list 试试 list(dict_index.values())https://goo.gl/wuiPOe 刚好查到XD用 iter 也行,效能更好

Links booklink

Contact Us: admin [ a t ] ucptt.com