3 # :Copyright: © 2014 Günter Milde.
4 # Released without warranty under the terms of the
5 # GNU General Public License (v. 2 or later)
8 # "Korporavergleich (Wortliste vs. diverse Rechtschreibprüfprogramme)
9 # ===================================================================
11 # Liste Differenz der Stichproben in der "wortliste" und dem "Dumping" von
16 import re
, sys
, codecs
, copy
17 from werkzeug
import WordFile
, WordEntry
, join_word
, udiff
18 # from abgleich_teilwoerter import wortliste_to_teilwoerter
25 # Sprach-Tag nach [BCP47]_::
27 # sprachvariante = 'de-1901' # "traditionell"
28 sprachvariante
= 'de-1996' # Reformschreibung
29 # sprachvariante = 'de-1901-x-GROSS' # ohne ß (Schweiz oder GROSS)
30 # sprachvariante = 'de-1996-x-GROSS' # ohne ß (Schweiz oder GROSS)
31 # sprachvariante = 'de-CH-1901' # ohne ß (Schweiz) ("süssauer")
38 spelldatei
= '../../spell/aspell-de-1996-compact'
40 korrekturdatei
= '../../spell/korrekturen'
46 if __name__
== '__main__':
48 # sys.stdout mit UTF8 encoding.
49 sys
.stdout
= codecs
.getwriter('UTF-8')(sys
.stdout
)
51 # `Wortliste` einlesen::
53 wordfile
= WordFile('../../wortliste')
54 words
= wordfile
.asdict()
56 # Korrekturen einlesen::
59 for line
in open(korrekturdatei
, 'r'):
60 if not line
.startswith('-'):
62 # Dekodieren, Zeilenende entfernen
63 line
= line
.decode('utf8')
64 korrekturen
.append(line
[1:].strip())
66 # Vergleichswörter einlesen::
68 for line
in open(spelldatei
, 'r'):
69 # if line.startswith('#'):
71 # Dekodieren, Zeilenende entfernen
72 line
= line
.decode('utf8').strip()
73 # Tags entfernen (bei "-compact")
74 key
= line
.split(u
'/')[0]
76 # kurze Wörter haben wir nicht:
80 # Ausgabe "neuer" Wörter::
83 and key
.lower() not in words
84 and key
.title() not in words
85 and key
not in korrekturen