編寫簡單的Python程序來判斷文本的語種
1.問題的描述
用Python進(jìn)行文本處理時(shí),有時(shí)候處理的文本中包含中文、英文、日文等多個(gè)語系的文本,有時(shí)候不能同時(shí)進(jìn)行處理,這個(gè)時(shí)候就需要判別當(dāng)前文本是屬于哪個(gè)語系的。Python中有個(gè)langid工具包提供了此功能,langid目前支持97種語言的檢測,非常好用。
2.程序的代碼
以下Python是調(diào)用langid工具包來對文本進(jìn)行語言檢測與判別的程序代碼:
import langid #引入langid模塊
def translate(inputFile, outputFile):
fin = open(inputFile, 'r') #以讀的方式打開輸入文件
fout = open(outputFile, 'w') #以寫的方式打開輸出文件
for eachLine in fin: #依次讀入每一行
line = eachLine.strip().decode('utf-8', 'ignore') #去除每行的首位空格等,并統(tǒng)一轉(zhuǎn)化成Unicode
lineTuple = langid.classify(line) #調(diào)用langid來對該行進(jìn)行語言檢測
if lineTuple[0] == "zh": #如果該行語言大部分為中文,則不進(jìn)行任何處理
continue
outstr = line #如果該行語言為非中文,則準(zhǔn)備輸出
fout.write(outstr.strip().encode('utf-8') + '\n') #輸出非中文的行,從Unicode轉(zhuǎn)化成utf-8輸出
fin.close()
fout.close()
if __name__ == '__main__': #相當(dāng)于main函數(shù)
translate("myInputFile.txt", "myOutputFile.txt")
以上代碼是用來處理一個(gè)文本,將不屬于中文的行依次輸出到一個(gè)新的文件。
3.注意
第9、10行代碼,langid.classify(line)的輸出結(jié)果是一個(gè)二元組,二元組的第一項(xiàng)表示該文本所屬的語系,如:zh表示中文、en表示英語、等等;二元組的第二項(xiàng)表示該文本中屬于第一項(xiàng)中語系的所占比例。
希望對大家有所幫助。
相關(guān)文章
pycharm實(shí)現(xiàn)增加運(yùn)行時(shí)內(nèi)存
這篇文章主要介紹了pycharm實(shí)現(xiàn)增加運(yùn)行時(shí)內(nèi)存方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
使用tensorflow根據(jù)輸入更改tensor shape
這篇文章主要介紹了使用tensorflow根據(jù)輸入更改tensor shape,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python實(shí)現(xiàn)將JSON格式文件導(dǎo)入redis
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)將JSON格式文件導(dǎo)入redis的多種方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-01-01
簡單談?wù)凱ython面向?qū)ο蟮南嚓P(guān)知識
由于馬上就要期末考試了,正在抓緊時(shí)間復(fù)習(xí) 所以這一篇就拖了很久,抱歉啦~ 今天會說說: 屬性私有,方法私有,重寫,魔術(shù)方法,需要的朋友可以參考下2021-01-01
Python面向?qū)ο竽Хǚ椒ê蛦卫K代碼實(shí)例
這篇文章主要介紹了Python面向?qū)ο竽Хǚ椒ê蛦卫K代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
python使用writerows寫csv文件產(chǎn)生多余空行的處理方法
這篇文章主要介紹了python使用writerows寫csv文件產(chǎn)生多余空行的處理方法,需要的朋友可以參考下2019-08-08

