2016-05-15 7 views
4

Ich benutze langdetect, um die Sprache einer Reihe von Strings zu bestimmen, von denen ich weiß, dass sie entweder in Englisch oder Französisch sind.Python langdetect: wähle zwischen der einen oder der anderen Sprache nur

Manchmal, langdetect sagt mir die Sprache ist Rumänisch für eine Zeichenfolge, die ich weiß, ist in Französisch. Wie kann ich langdetect wählen zwischen nur Englisch oder Französisch, und nicht alle anderen Sprachen?

Danke!

Antwort

3

Die Art, wie ich dies tun würde, ist detect_langs zu verwenden, die eine Liste von Language Objekten mit Wahrscheinlichkeiten zurückgibt, und dann durch diese Liste durchlaufen, die Sprache der Rückkehr, wenn eine der Optionen, Englisch oder Französisch ist, oder wenn diese None ist nicht der Fall. Diese Funktion funktioniert gut für diesen Zweck:

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 erkennen, irgendwie .. saugt. "38 HewcnonHe,! Me PlrIM HellaA.ne * aulee kicnon} le, wle npeAy (MOTpHHbIX AorOBOpOM" wird erkannt als en – thang

+1

@thang Und welche Ausgabe würden Sie von einem perfekten Werkzeug erwarten? Langdetect versucht, jeden String in eine bestimmte Sprache zu bringen wenn Sie es verwenden, um bedeutungslose Zeichenfolgen zu erkennen, bricht es natürlich – Jeyekomon

+0

Ich denke, das wurde von einem russischen pdf Dokument kopiert. – thang