欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

編寫(xiě)簡(jiǎn)單的Python程序來(lái)判斷文本的語(yǔ)種

 更新時(shí)間:2015年04月07日 17:00:13   投稿:goldensun  
這篇文章主要介紹了編寫(xiě)簡(jiǎn)單的Python程序來(lái)判斷語(yǔ)種,代碼非常簡(jiǎn)單,主要用到了langid工具包,需要的朋友可以參考下

1.問(wèn)題的描述

用Python進(jìn)行文本處理時(shí),有時(shí)候處理的文本中包含中文、英文、日文等多個(gè)語(yǔ)系的文本,有時(shí)候不能同時(shí)進(jìn)行處理,這個(gè)時(shí)候就需要判別當(dāng)前文本是屬于哪個(gè)語(yǔ)系的。Python中有個(gè)langid工具包提供了此功能,langid目前支持97種語(yǔ)言的檢測(cè),非常好用。


2.程序的代碼

以下Python是調(diào)用langid工具包來(lái)對(duì)文本進(jìn)行語(yǔ)言檢測(cè)與判別的程序代碼:
 

import langid                             #引入langid模塊 
  
def translate(inputFile, outputFile): 
  fin = open(inputFile, 'r')                  #以讀的方式打開(kāi)輸入文件 
  fout = open(outputFile, 'w')                 #以寫(xiě)的方式打開(kāi)輸出文件 
  
  for eachLine in fin:                     #依次讀入每一行 
    line = eachLine.strip().decode('utf-8', 'ignore')   #去除每行的首位空格等,并統(tǒng)一轉(zhuǎn)化成Unicode 
    lineTuple = langid.classify(line)           #調(diào)用langid來(lái)對(duì)該行進(jìn)行語(yǔ)言檢測(cè) 
    if lineTuple[0] == "zh":               #如果該行語(yǔ)言大部分為中文,則不進(jìn)行任何處理 
      continue 
  
    outstr = line                     #如果該行語(yǔ)言為非中文,則準(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") 
 

 以上代碼是用來(lái)處理一個(gè)文本,將不屬于中文的行依次輸出到一個(gè)新的文件。

 
3.注意

第9、10行代碼,langid.classify(line)的輸出結(jié)果是一個(gè)二元組,二元組的第一項(xiàng)表示該文本所屬的語(yǔ)系,如:zh表示中文、en表示英語(yǔ)、等等;二元組的第二項(xiàng)表示該文本中屬于第一項(xiàng)中語(yǔ)系的所占比例。

 

希望對(duì)大家有所幫助。

相關(guān)文章

最新評(píng)論