2016-05-15 105 views

回答

3

我會做到這一點的方法是使用detect_langs,它返回Language對象與概率的列表,然後通過這個列表循環,返回語言,如果其中一個選項是英語或法語,或None如果這情況並非如此。此功能適用於此目的:

from langdetect import detect_langs 

def englishOrFrench(string): 
    res = detect_langs(string) 
    for item in res: 
     if item.lang == "fr" or item.lang == "en": 
      return item.lang 
    return None 

print(englishOrFrench("Bonjour"))    # fr 
print(englishOrFrench("The quick brown fox")) # en 
print(englishOrFrench("Hallo, mein Freund")) # None 
+1

lang detect kinda .. sucks。 「38 HewcnonHe,!Me PlrIM HellaA.ne * aulee kicnon} le,wle npeAy(MOTpeHHbix AorOBOpOM」被檢測爲en – thang

+1

@thang您期望從完美工具中得到什麼樣的輸出?langdetect會嘗試將每個字符串適合某種語言如果你用它來檢測無意義的字符串,當然會中斷。 – Jeyekomon

+0

我認爲這是從俄羅斯的pdf文檔複製的。 – thang