編寫簡單的Python程序來判斷文本的語種
來源:懂視網
責編:小采
時間:2020-11-27 14:39:52
編寫簡單的Python程序來判斷文本的語種
編寫簡單的Python程序來判斷文本的語種:1.問題的描述 用Python進行文本處理時,有時候處理的文本中包含中文、英文、日文等多個語系的文本,有時候不能同時進行處理,這個時候就需要判別當前文本是屬于哪個語系的。Python中有個langid工具包提供了此功能,langid目前支持97種語言的檢測,非常好用
導讀編寫簡單的Python程序來判斷文本的語種:1.問題的描述 用Python進行文本處理時,有時候處理的文本中包含中文、英文、日文等多個語系的文本,有時候不能同時進行處理,這個時候就需要判別當前文本是屬于哪個語系的。Python中有個langid工具包提供了此功能,langid目前支持97種語言的檢測,非常好用

1.問題的描述
用Python進行文本處理時,有時候處理的文本中包含中文、英文、日文等多個語系的文本,有時候不能同時進行處理,這個時候就需要判別當前文本是屬于哪個語系的。Python中有個langid工具包提供了此功能,langid目前支持97種語言的檢測,非常好用。
2.程序的代碼
以下Python是調用langid工具包來對文本進行語言檢測與判別的程序代碼:
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') #去除每行的首位空格等,并統一轉化成Unicode
lineTuple = langid.classify(line) #調用langid來對該行進行語言檢測
if lineTuple[0] == "zh": #如果該行語言大部分為中文,則不進行任何處理
continue
outstr = line #如果該行語言為非中文,則準備輸出
fout.write(outstr.strip().encode('utf-8') + '
') #輸出非中文的行,從Unicode轉化成utf-8輸出
fin.close()
fout.close()
if __name__ == '__main__': #相當于main函數
translate("myInputFile.txt", "myOutputFile.txt")
以上代碼是用來處理一個文本,將不屬于中文的行依次輸出到一個新的文件。
3.注意
第9、10行代碼,langid.classify(line)的輸出結果是一個二元組,二元組的第一項表示該文本所屬的語系,如:zh表示中文、en表示英語、等等;二元組的第二項表示該文本中屬于第一項中語系的所占比例。
希望對大家有所幫助。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
編寫簡單的Python程序來判斷文本的語種
編寫簡單的Python程序來判斷文本的語種:1.問題的描述 用Python進行文本處理時,有時候處理的文本中包含中文、英文、日文等多個語系的文本,有時候不能同時進行處理,這個時候就需要判別當前文本是屬于哪個語系的。Python中有個langid工具包提供了此功能,langid目前支持97種語言的檢測,非常好用