2017-04-30 1 views
0

Ich benutze CyHunspell und Python 3.6 (IDLE) auf OS X, um zu überprüfen, ob Wörter richtig geschrieben sind. Es funktioniert für die meisten Wörter aber nicht wenn es deutsche Umlaute wie ä hat. Also ich denke, Codierung könnte ein Problem sein. Ich habe schon ein paar Wörterbücher ausprobiert, da das LibreOffice von here ISO8859-1 ist. Ich versuchte this one for Sublime, die UTF-8 ist, aber es funktioniert auch nicht. Ich konvertiere auch die LibreOffice-Datei nach ISO8859-1, aber immer noch das gleiche Verhalten.Hunspell (Python 3) wie man mit Umlauten umgehen kann

Mein Code:

import os 
from hunspell import Hunspell 
hunspell_path = os.path.dirname(os.path.abspath(__file__)) + "/dictionaries" 
h = Hunspell("de_DE_utf8", hunspell_data_dir=hunspell_path) 
print(h.spell("Beispiel")) # TRUE - should be TRUE 
print(h.spell("überall")) # FALSE - should be TRUE 
print(h.spell("über")) # TRUE - should be TRUE 

Was ich nicht verstehe, ist, dass "über" TRUE ist.

Alle drei Wörter sind in der "de_DE_utf8.dic":

beispiel/EPSozm 
beispiel/hke 
Beispiel/EPSmij 
überall 
Über/hij 
über/Ske 

Jede Idee, was ich könnte versuchen, dieses Problem zu lösen? Ich habe einige Informationen über UTF-8 und Python in anderen Fragen gefunden, aber oft ging es um das Lesen von Dateien.

Antwort

0

Ich habe versucht, aber mit einem anderen Wörterbuch: https://extensions.libreoffice.org/extensions/german-de-de-frami-dictionaries wo scheint es gut zu funktionieren. Versucht dies für Python 3.5 auf Ubuntu 16.04 obwohl.

import os 
from hunspell import Hunspell 

dict_path = ..... 
h = Hunspell("de_DE_frami", hunspell_data_dir=dict_path) 
print(h.spell("Beispiel")) 
print(h.spell("über")) 
print(h.spell("überall")) 
print(h.spell("Über")) 
True 
True 
True 
True 
Verwandte Themen