python2.x环境下unicode乱码转中文显示的2种解决方案总结
生活随笔
收集整理的這篇文章主要介紹了
python2.x环境下unicode乱码转中文显示的2种解决方案总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
方法見代碼注釋,python2.x環(huán)境下,注意,僅僅適用于unicode亂碼情況,不適用于 類似于這種/xae的亂碼情況
# -*- coding: utf-8 -*-# # from gensim import corpora,models,similarities # texts = [['human', 'interface', 'computer','interface'], # ['survey', 'user', 'computer', 'system', 'response', 'time'], # ['eps', 'user', 'interface', 'system'], # ['system', 'human', 'system', 'eps'], # ['user', 'response', 'time'], # ['trees'], # ['graph', 'trees'], # ['graph', 'minors', 'trees'], # ['graph', 'minors', 'survey']] # #以上大列表中,每個自列表代表一個文本分詞后的結(jié)果 # def print_dict(dict): # for key in dict: # print type(key),key,str(dict[key]),'\n' # print # # # dictionary = corpora.Dictionary(texts)#這個應(yīng)該是分詞后的結(jié)果,Dictionary用來去重 # corpus = [dictionary.doc2bow(text)for text in texts] # print_dict(dict(dictionary.items())) # print("------------------------------------------------") # print("file numbers=",dictionary.num_docs) # print("------------------------------------------------") # #返回的結(jié)果中,全部都是list,可以看到,corpus下標是0~8,表示文本數(shù)目是9個 # #返回的list中的元祖()中,是(id,在單個文本中出現(xiàn)該word的次數(shù))、 # #而一個list中包含的tuple數(shù)量=分詞后word數(shù)量-重復(fù)的word數(shù)量 # #舉例:['human', 'interface', 'computer','interface']這個文本的 # #分詞后word數(shù)量是4個,而由于interface重復(fù)了一次,所以tuple數(shù)量=4-1=3 # # 所以最終對應(yīng)的corpus[0]輸出的list中是3個tuple,而不是4個 # print corpus[0] # print corpus[1] # print corpus[2] # print corpus[3] # print corpus[4] # print corpus[5] # print corpus[6] # print corpus[7] # print corpus[8] # print("--------------------------------------------------") # lsi=models.LsiModel(corpus)#輸入總文本的稀疏矩陣 # print lsi#TfidfModel(num_docs=9, num_nnz=28),num_nnz是每個文件中不重復(fù)詞個數(shù)的和 # corpus_lsi=lsi[corpus] # query='human science good interface' # #下面是把詢問的問題轉(zhuǎn)化為稀疏向量 # print("--------------------------------------------------") # vec_bow=dictionary.doc2bow(query.split()) # print vec_bow # vec_lsi=lsi[vec_bow] # print vec_lsi#這個結(jié)果是把query的詞匯中,篩選出屬于dictionary的部分,然后分別計算tf-idf值 # print("----------------以下三行代碼計算query和候選文本的相似度---------------------------------") # # # index=similarities.MatrixSimilarity(corpus_lsi)#similarities是一個函數(shù)名,不要自己卵用 # print "index=",index # sims=index[vec_lsi] # print "sims=",sims#輸出列表,元素數(shù)量=文本數(shù)量 # print("---------------------------") # similarity=list(sims)#輸出列表,元素數(shù)量=文本數(shù)量 # print "similarity=",similarity # print("----------------以上三行代碼計算query和候選文本的相似度----------------------------") # store_path='/home/appleyuchi/coai_fudan/storefile.txt' # sim_file=open(store_path,'w') # for i in similarity: # sim_file.write(str(i)+'\n') # sim_file.close()import jieba path='/home/appleyuchi/coai_fudan/train/C3-Art/C3-Art0443.txt' f=open(path) contents=f.read()seg_list = jieba.cut(contents,cut_all = True) list1=list(seg_list) print("-----------第1種解決辦法----------------------------------------") print ' '.join(list1) print type(list1) print("-----------第2種解決辦法----------------------------------------")str_symptom = str(list1).replace('u\'','\'') print str_symptom.decode('unicode_escape')數(shù)據(jù)集是復(fù)旦新聞數(shù)據(jù)集,其他的數(shù)據(jù)集也是可以的。
總結(jié)
以上是生活随笔為你收集整理的python2.x环境下unicode乱码转中文显示的2种解决方案总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Gensim初步使用和详细解释(该代码只
- 下一篇: ValueError: cannot i