Re: [問題] Python2 unicode轉日文

看板Python作者 (消費券收購商)時間8年前 (2017/06/06 01:22), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串2/3 (看更多)
※ 引述《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

06/06 01:41, , 1F
from matplotlib.font_manager 可以設定要使用的字型
06/06 01:41, 1F

06/06 01:41, , 2F
06/06 01:41, 2F

06/06 02:37, , 3F
感謝回答,但上述方法似乎是讓plot可以讀取"u"日本""
06/06 02:37, 3F

06/06 02:38, , 4F
但我的資料已經變成"u'\u77ed\u9283'"所以其實無效,請問
06/06 02:38, 4F

06/06 02:38, , 5F
有其他方法嗎?
06/06 02:38, 5F

06/06 10:23, , 6F
應該是 dict.values() 2,3 回傳的型態不同
06/06 10:23, 6F

06/06 10:23, , 7F
先轉成 list 試試 list(dict_index.values())
06/06 10:23, 7F

06/06 10:28, , 8F
https://goo.gl/wuiPOe 剛好查到XD
06/06 10:28, 8F

06/06 10:29, , 9F
用 iter 也行,效能更好
06/06 10:29, 9F
文章代碼(AID): #1PDPDPVC (Python)
文章代碼(AID): #1PDPDPVC (Python)