2016-05-15 43 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