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