看板 Python 關於我們 聯絡資訊
※ 引述《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://www.ptt.cc/bbs/Python/M.1496683353.A.7CC.html
ides13: from matplotlib.font_manager 可以設定要使用的字型 06/06 01:41
ides13: 日文字型:http://www.maisfontes.com/osaka 06/06 01:41
TZULIU: 感謝回答,但上述方法似乎是讓plot可以讀取"u"日本"" 06/06 02:37
TZULIU: 但我的資料已經變成"u'\u77ed\u9283'"所以其實無效,請問 06/06 02:38
TZULIU: 有其他方法嗎? 06/06 02:38
darkgerm: 應該是 dict.values() 2,3 回傳的型態不同 06/06 10:23
darkgerm: 先轉成 list 試試 list(dict_index.values()) 06/06 10:23
darkgerm: https://goo.gl/wuiPOe 剛好查到XD 06/06 10:28
darkgerm: 用 iter 也行,效能更好 06/06 10:29