python 如何判斷是否有中文亂碼。
類似:
楀鉤鏃惰鐪熷涔?fàn)锢佸埢鑻﹂捜潬旀?湳錛屾墡瀹炲伐浣滐纴瑙勮寖綆$悊銆備漢鎬寲鐨勭鐞嗗嚌镵氫簡(jiǎn)涓?鎵規(guī)妧鏈騫詫纴寰楀埌浜?jiǎn)鍏ㄥ厪稿憳宸ョ殑淇¤禆?鍛樺伐100%鍙傚姞鍖諱繚錛?5钖嶅憳宸弬鍔犲煄淇濓纴澶栨潵鍛樺伐鎻愪緵椋熷錛屾椂鏃跺埢鍒諱互鍏變駭鍏氬憳鐨勬爣鍑嗚 閲忚嚜宸憋纴鍦濂戒紒涓氱殑钖屾椂錛屼負(fù)紺句細(xì)浜嬩笟鎹愯祫鍔10涓囧厓錛屾崘璧犺傳鍥板憳宸灞炴不鐥?涓囧厓錛屽府鍔傳鍥板鐢?.6涓囧厓錛屾崘璧犳枃鏋椾腑瀛紳鏈鴻澶?涓囧厓錛屾厛锽勬崘鐚?涓囧厓銆?/p> 鍛拰鍏村悓蹇楀浜嬩笟鎵憲榪芥眰錛屽湪榪欏崄鍑犲勾浼佷笟鍙戝睍榪囩涓纴鍏呭垎鍙戞尌浜?jiǎn)涓€涓叡浜厷鍛樼殑鍏堥攱妯寖甯浣滅敤錛屽彈鍒頒簡(jiǎn)闀囨斂搴溿?甯?jìng)珩斾溉濋冭痃殑桢綆屠伣C句細(xì)钖勭晫鐨勪竴鑷村璇勶纴浠栧潥淇彧鏈変笉鏂彂灞曪
將它unicode編碼后,再轉(zhuǎn)gb2312,如果報(bào)錯(cuò)就說明存在生僻字。詳情參考https://jingsam.github.io/201...
采用分詞的方法也不錯(cuò), 亂碼是不太可能成詞的(但有生僻字不一定是亂碼).
參考我下面的代碼:
# encoding=utf-8
import jieba
def new_len(iterable):
try:
return iterable.__len__()
except AttributeError:
return sum(1 for _ in iterable)
normal_str="我來到北京清華大學(xué)"
normal_len=len(normal_str)
seg_list = jieba.cut(normal_str)
res = "正常文本:"+str(normal_len / new_len(seg_list))
print(res)
luanma_str = "楀鉤鏃惰鐪熷涔?fàn)锢佸埢鑻﹂捜潬旀?湳錛屾墡瀹炲伐浣滐纴瑙勮寖綆$悊銆備漢鎬寲鐨勭鐞嗗嚌镵氫簡(jiǎn)涓?鎵規(guī)妧鏈騫詫纴寰楀埌浜?jiǎn)鍏ㄥ厪稿憳宸ョ殑淇¤禆?鍛樺伐100%鍙傚姞鍖諱繚錛?5钖嶅憳宸弬鍔犲煄淇濓纴澶栨潵鍛樺伐鎻愪緵椋熷錛屾椂鏃跺埢鍒諱互鍏變駭鍏氬憳鐨勬爣鍑嗚 閲忚嚜宸憋纴鍦濂戒紒涓氱殑钖屾椂錛屼負(fù)紺句細(xì)浜嬩笟鎹愯祫鍔10涓囧厓錛屾崘璧犺傳鍥板憳宸灞炴不鐥?涓囧厓錛屽府鍔傳鍥板鐢?.6涓囧厓錛屾崘璧犳枃鏋椾腑瀛紳鏈鴻澶?涓囧厓錛屾厛锽勬崘鐚?涓囧厓銆?/p> 鍛拰鍏村悓蹇楀浜嬩笟鎵憲榪芥眰錛屽湪榪欏崄鍑犲勾浼佷笟鍙戝睍榪囩涓纴鍏呭垎鍙戞尌浜?jiǎn)涓€涓叡浜厷鍛樼殑鍏堥攱妯寖甯浣滅敤錛屽彈鍒頒簡(jiǎn)闀囨斂搴溿?甯?jìng)珩斾溉濋冭痃殑桢綆屠伣C句細(xì)钖勭晫鐨勪竴鑷村璇勶纴浠栧潥淇彧鏈変笉鏂彂灞曪"
luanma_len = len(luanma_str)
luanma = jieba.cut(luanma_str)
res = "亂碼:"+str(luanma_len / new_len(luanma))
print(res)
輸出結(jié)果
正常文本:2.25
亂碼:1.0590062111801242
正常結(jié)果一般在2以上, 亂碼非常接近1, 可以認(rèn)為1.2以下就一定是亂碼了.
也可轉(zhuǎn)成概率公式.
設(shè)為1時(shí)概率為0.9, 2時(shí)概率為0.1,可得下面的公式
$$ P = {1 \over 1 + \exp{(4.395*x-6.594)}} $$
式中:
x--為字符串長(zhǎng)度與分詞數(shù)組長(zhǎng)度的比值
P--為概率.
這個(gè)方法引入了結(jié)巴分詞模塊
需要提前安裝
pip3 install jieba
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。