MaxGyver83 / neo2-llkh

Neo2 Layout - alternativer Treiber mittels Low-Level Keyboard Hook
36 stars 16 forks source link

Optimierer #33

Closed DarioViva42 closed 3 months ago

DarioViva42 commented 4 years ago

Hey @MaxGyver83

Mir kamen ein paar Fragen auf betreffend dem Optimierer. Denn ich wollte ihn benutzen, um ein Layout zu finden, welches für schweizerdeutsches Hochdeutsch optimal ist. Du hast bei dem Optimierer ./opt -2 deutsch.txt -2 englisch.txt -K symmetrisch_meine_gewichtung.cfg benutzt. Damit optimierst du nur bis zu Bigrammen und nicht nach Trigrammen. Aber das wäre schon besser wenn hier -3 benutzt wird, oder? Und dann sagst du: „Dieses war zwar nicht das Optimum, aber nah genug dran und gleichzeitig nicht zu weit von KOY, an das ich mich schon gewöhnt hatte, entfernt.“ Rein aus Neugier, was wäre denn das Optimum gewesen? Und ist das normal, dass der Optimierer nicht aufhört und immer weitersucht?

Weiterhin finde ich es verwunderlich, dass bei mir nicht KOU rauskommt, obwohl ich genau deinen Befehl benutze. ./opt -2 deutsch.txt -2 englisch.txt -K symmetrisch_meine_gewichtung.cfg:

206              406.732 Gesamtaufwand  194.514 Lageaufwand        links rechts
                   1.193 Kollisionen      6.929 Shift-Kollisionen  ob  8.8 10.3
  k.o,y jbclfß    71.126 Handwechsel     26.251 Shift-Handwechsel  mi 32.0 30.2
  haeiü gtnrs q    2.013 Ein-/Auswärts   25.235 Ein- oder auswärts un  6.9 11.8
  zäuxö pdmwv     12.119 benachbart      16.257 Shift-benachbart  sum 47.7 52.3
                  8.2  8.1 18.5 12.8 --.- --.- 16.9 13.4 11.7 10.3 Sh  2.8  1.3

Mit ./opt -3 deutsch.txt -3 englisch.txt -K symmetrisch_meine_gewichtung.cfg kommt relativ bald folgendes Layout raus:

36869            475.147 Gesamtaufwand  199.325 Lageaufwand        links rechts
                   1.283 Kollisionen      6.750 Shift-Kollisionen  ob 10.8 10.4
  fwlcv öüoubz    69.368 Handwechsel     31.867 Shift-Handwechsel  mi 30.2 32.1
  snrtg äeaih x    1.814 Ein-/Auswärts   26.904 Ein- oder auswärts un  9.8  6.7
  pmdjß qy.,k      9.543 benachbart      16.542 Shift-benachbart  sum 50.8 49.2
                   6.136 kein Handwechs. 43.120 zwei Handwechsel
                   4.462 Wippe            4.946 IndirKollision
                  9.5 11.1 12.6 17.7 --.- --.- 15.2 12.2 11.4 10.3 Sh  1.5  2.5

Kann es sein, dass Andreas Wettstein inzwischen den Korpus geändert hat und daher ein anderes Layout rauskommt?

Und wie hast du es gemacht, dass X, C, V, Z links landen?

Vorliebe ’xcvz’ 1 AB01 AB02 AB03 AB04 AC01 AC02 AC03 AC04 AD01 AD02 AD03 AD04

Wahrscheinlich so, oder?

MaxGyver83 commented 4 years ago

Hi Dario!

Mir kamen ein paar Fragen auf betreffend dem Optimierer.

Dass du hier ein Issue aufmachst, zeigt dass ich dringend eine Kommentarfunktion auf meiner Homepage brauche :-)

Denn ich wollte ihn benutzen, um ein Layout zu finden, welches für schweizerdeutsches Hochdeutsch optimal ist.

Ist das anders als deutsches Hochdeutsch? Außer dass ß manchmal (immer?) als ss geschrieben wird?

Du hast bei dem Optimierer ./opt -2 deutsch.txt -2 englisch.txt -K symmetrisch_meine_gewichtung.cfg benutzt. Damit optimierst du nur bis zu Bigrammen und nicht nach Trigrammen. Aber das wäre schon besser wenn hier -3 benutzt wird, oder?

Gute Frage! Ich hab das auf jeden Fall mal mit -3 ausprobiert. Ich weiß gar nicht mehr, warum ich dann letztendlich -2 benutzt habe. Vielleicht habe ich in der AdNW-Diskussionsgruppe was dazu gelesen. Bist du da auch drin? Und bist du in der Neo-Mailingliste?

Und dann sagst du: „Dieses war zwar nicht das Optimum, aber nah genug dran und gleichzeitig nicht zu weit von KOY, an das ich mich schon gewöhnt hatte, entfernt.“ Rein aus Neugier, was wäre denn das Optimum gewesen?

Das war damals mein Optimum:

235              425.429 Gesamtaufwand  187.702 Lageaufwand        links rechts
                   1.132 Kollisionen      6.746 Shift-Kollisionenob 11.6  9.8
  fwlcb üuo.zx    70.895 Handwechsel     26.480 Shift-Handwechsel  mi 30.2 32.6
  srntg yieah ß    1.996 Ein-/Auswärts   25.527 Ein- oder auswärts un 10.4  5.4
  vmdpj ö,äqk     12.384 benachbart      14.947 Shift-benachbart  sum 52.1 47.9
                  9.3  8.9 14.3 19.7 --.- --.- 12.7 18.5  7.6  9.0 Sh  1.3  2.8

Das ist komplett anders als KOY, weil haei rechts und tnrs links sind. Wenn man das spiegelt, kommt man wieder grob in die Nähe von KOY.

Das hier war das nächstbeste Ergebnis mit den Vokalen auf der linken Seite:

KOU              434.779 Gesamtaufwand  191.621 Lageaufwand        links rechts
                   1.256 Kollisionen      6.736 Shift-Kollisionen  ob 10.1 10.6
  k.ouä vgcljz    71.351 Handwechsel     25.120 Shift-Handwechsel  mi 32.6 29.5
  haeiy btrns ß    1.836 Ein-/Auswärts   24.947 Ein- oder auswärts un  4.6 12.6
  qx,üö pdwmf     10.476 benachbart      19.991 Shift-benachbart  sum 47.2 52.8
                  8.3  7.6 18.4 13.0 --.- --.- 17.6 10.8 14.3 10.1 Sh  2.9  1.2
  Kollision/Fi.  0.03 0.02 0.21 0.21           0.30 0.24 0.17 0.07 Sh 5.23 1.51
  " " Sprung>=2  0.00 0.00 0.01 0.01           0.03 0.00 0.04 0.01 Sh 0.05 0.02
  benachbart/F.paar 1.18 0.66 4.12                2.41 0.94 1.18   Sh11.97 8.02
  " " Ze.sprung>=2  0.01 0.00 0.02                0.01 0.02 0.12   Sh 0.57 1.45

Oder es war so ähnlich und ich hab von Hand noch ein paar Buchstaben vertauscht und dann kontrolliert, ob sich die Bewertung messbar verschlechtert hat.

Und ist das normal, dass der Optimierer nicht aufhört und immer weitersucht?

Der Optimierer rechnet zwar immer lange, aber ich bekomme nach ca. einer Sekunde schon keine weiteren Ergebnisse mehr.

Weiterhin finde ich es verwunderlich, dass bei mir nicht KOU rauskommt, obwohl ich genau deinen Befehl benutze. ./opt -2 deutsch.txt -2 englisch.txt -K symmetrisch_meine_gewichtung.cfg:

206              406.732 Gesamtaufwand  194.514 Lageaufwand        links rechts
                   1.193 Kollisionen      6.929 Shift-Kollisionen  ob  8.8 10.3
  k.o,y jbclfß    71.126 Handwechsel     26.251 Shift-Handwechsel  mi 32.0 30.2
  haeiü gtnrs q    2.013 Ein-/Auswärts   25.235 Ein- oder auswärts un  6.9 11.8
  zäuxö pdmwv     12.119 benachbart      16.257 Shift-benachbart  sum 47.7 52.3
                  8.2  8.1 18.5 12.8 --.- --.- 16.9 13.4 11.7 10.3 Sh  2.8  1.3

Mit ./opt -3 deutsch.txt -3 englisch.txt -K symmetrisch_meine_gewichtung.cfg kommt relativ bald folgendes Layout raus:

36869            475.147 Gesamtaufwand  199.325 Lageaufwand        links rechts
                   1.283 Kollisionen      6.750 Shift-Kollisionen  ob 10.8 10.4
  fwlcv öüoubz    69.368 Handwechsel     31.867 Shift-Handwechsel  mi 30.2 32.1
  snrtg äeaih x    1.814 Ein-/Auswärts   26.904 Ein- oder auswärts un  9.8  6.7
  pmdjß qy.,k      9.543 benachbart      16.542 Shift-benachbart  sum 50.8 49.2
                   6.136 kein Handwechs. 43.120 zwei Handwechsel
                   4.462 Wippe            4.946 IndirKollision
                  9.5 11.1 12.6 17.7 --.- --.- 15.2 12.2 11.4 10.3 Sh  1.5  2.5

Kann es sein, dass Andreas Wettstein inzwischen den Korpus geändert hat und daher ein anderes Layout rauskommt?

Dann liegt es wohl wirklich daran, dass ich von Hand etwas verändert habe. Ich hab Version 1.267 des Optimierers, es gibt aber mindestens schon 1.270 (siehe Nachricht von Andreas in der AdNW-Diskussionsgruppe).

Und wie hast du es gemacht, dass X, C, V, Z links landen?

Vorliebe ’xcvz’ 1 AB01 AB02 AB03 AB04 AC01 AC02 AC03 AC04 AD01 AD02 AD03 AD04

Wahrscheinlich so, oder?

Mit diesem Parameter Vorliebe habe ich auf jeden Fall auch herumgespielt. Ich hab aber auch einfach von Hand ein paar Buchstaben vertauscht und den Optimierer das Ergebnis bewerten lassen, weil ich so wenig Buchstaben wie möglich umlernen wollte.

MaxGyver83 commented 4 years ago

Weiterhin finde ich es verwunderlich, dass bei mir nicht KOU rauskommt, obwohl ich genau deinen Befehl benutze. ./opt -2 deutsch.txt -2 englisch.txt -K symmetrisch_meine_gewichtung.cfg:

206              406.732 Gesamtaufwand  194.514 Lageaufwand        links rechts
                   1.193 Kollisionen      6.929 Shift-Kollisionen  ob  8.8 10.3
  k.o,y jbclfß    71.126 Handwechsel     26.251 Shift-Handwechsel  mi 32.0 30.2
  haeiü gtnrs q    2.013 Ein-/Auswärts   25.235 Ein- oder auswärts un  6.9 11.8
  zäuxö pdmwv     12.119 benachbart      16.257 Shift-benachbart  sum 47.7 52.3
                  8.2  8.1 18.5 12.8 --.- --.- 16.9 13.4 11.7 10.3 Sh  2.8  1.3

Noch eine Ergänzung:

Dein Ergebnis bekomme ich auch raus. ABER: Dieses Ergebnis kommt nur mit meiner neueren Konfig von der VOU-Seite heraus. Auf der KOU-Seite findest du noch die ältere symmetrisch_neue_gewichtung.cfg. Damit ist das Optimum (mit -2) übrigens:

161              404.143 Gesamtaufwand  193.165 Lageaufwand        links rechts
                   1.128 Kollisionen      6.289 Shift-Kollisionen  ob 10.7 10.6
  jlcgb üuozfx    69.515 Handwechsel     28.055 Shift-Handwechsel  mi 29.3 32.6
  srntp yieah ß    1.893 Ein-/Auswärts   26.912 Ein- oder auswärts un 10.6  6.2
  wmdvq ö,ä.k     11.906 benachbart      17.045 Shift-benachbart  sum 50.5 49.5
                   4.019 benachb.schwach
                  7.8 11.7 13.4 17.6 --.- --.- 12.7 18.5  8.1 10.1 Sh  1.5  2.6

Wäre ich nicht den Umweg über das KOU-Layout, das auf der alten Konfig basiert, gegangen, wäre ich heute vermutlich bei einem leicht anderen Layout gelandet.

Ist aber auch nicht so schlimm. Ich will jedenfalls keine größeren Änderungen mehr machen, nur um den Gesamtaufwand um 1-3 % zu reduzieren. Dieser Optimierer bildet sowieso keine Naturgesetze ab. Und ein anderer Optimierer (evolve-keyboard-layout) kommt auch zu anderen Ergebnissen.

DarioViva42 commented 4 years ago

Hallo Max

Vielen Dank für die ausführliche Antwort. Ich habe auch bemerkt, dass der Optimierer beim einen Layout die Vokalen und Konsonanten vertauscht hat. Da kann ich dich verstehen, dass du das gedreht hast, ich hätte auch nicht unbedingt Lust so viel umzugewöhnen. Ausserdem hat es so einen grösseren Appeal für Neuzukommer.

Edit: Und jetzt sehe ich auch, dass du die Gewichtung von qwerz-u und qwerz-o vertauscht hast. Ich habe mir beide Seiten im Vorraus angeschaut, aber das ist mir nicht aufgefallen. Ist halt wirklich eine kleine Änderung.

In der Mailingliste und der Diskussionsgruppe bin ich noch nicht, aber da werde ich sicher mal reinschauen. Da sind ja wirklich viele Leute beteiligt so wies aussieht.

Bei den neuen Layout werde ich dann noch drauf schauen, dass das S auf der linken Seite ist, denn zum Speichern ist das glaub schon noch hilfreich. Und das A um alles auszuwählen finde ich auch noch wichtig.

Das Schweizerdeutsche hat schon einige Eigenheiten, die über das Fehlen von dem ẞ hinausgehen. Kannst mal den Wikiartikel lesen zu Helvetismen, ist noch interessant. Hier kann man sehen, dass es einige Wörter aus dem Französischen gibt. Daher sind auch é, è, à und ç direkt auf der normalen Schweizer-Tastatur. Auch auf dem Ziffernblock ändert sich das Dezimal Trennzeichen zu einem . und das Tausendertrennzeichen ist bei uns ein ’. Weiter sind die Anführungszeichen häufiger Guillemets, und die werden dann erst noch anders rum benutzt. Ich denke also, dass es schon einige Unterschiede gibt. Und wahrscheinlich gibt's noch mehr von dem nicht einmal ich weiss.

Ich verstehe natürlich, dass du dein Layout nicht mehr stark ändern möchtest. Aber mal schauen, wenn ich dann irgendwann an den schweizer Korpus komme, gibt's dann wieder einen PR von mir in dem ich dann eine weitere Option hinzufüge. Jedoch scheint das nicht so einfach zu sein den einfach runterzuladen. Vielleicht wird das auch nichts. Aber der wäre schon noch gut, er hat 23.5 Millionen Textwörter. Eventuell baue ich noch einen französischen- und italienischen Korpus in den Optimierungsdurchlauf ein. Schön mit der Gewichtung der Bevölkerung. Etwa 75-20-5. Und dann mache ich eine Initiative, dass die Schweiz zukünftig dieses Layout benutzen sollte. Die dann garantiert direkt durchkommt ;)

DarioViva42 commented 4 years ago

Hi @MaxGyver83

Vielleicht ist es in deiner Anleitung noch gut, wenn du in deiner Anleitung noch schreibst, dass man noch die codepage ändern muss. Das ist mir jetzt noch eingefallen, dies hat mir ein wenig Kopfzerbrechen gemacht am Anfang. Sonst sehen die Buchstaben mit Unlaut komisch aus. Z. B. ├╝ statt ein ü. Ich würde da in der Anleitung schreiben, dass man chcp 65001 ausführen sollte um UTF-8 zu benutzen. Standardmässig wird nämlich 850 für Multilingual benutzt. Man kann auch in den administrativen Sprachoptionen das so einstellt, dass man es nicht jedesmal ändern muss, aber ist halt beta. grafik

MaxGyver83 commented 4 years ago

Das Schweizerdeutsche hat schon einige Eigenheiten, die über das Fehlen von dem ẞ hinausgehen. Kannst mal den Wikiartikel lesen zu Helvetismen, ist noch interessant. Hier kann man sehen, dass es einige Wörter aus dem Französischen gibt. Daher sind auch é, è, à und ç direkt auf der normalen Schweizer-Tastatur. Auch auf dem Ziffernblock ändert sich das Dezimal Trennzeichen zu einem . und das Tausendertrennzeichen ist bei uns ein ’. Weiter sind die Anführungszeichen häufiger Guillemets, und die werden dann erst noch anders rum benutzt. Ich denke also, dass es schon einige Unterschiede gibt. Und wahrscheinlich gibt's noch mehr von dem nicht einmal ich weiss.

Ja, ist interessant. Danke für den Link!

Und dann mache ich eine Initiative, dass die Schweiz zukünftig dieses Layout benutzen sollte. Die dann garantiert direkt durchkommt ;)

Das wär cool! :-)

MaxGyver83 commented 4 years ago

Hi @MaxGyver83

Vielleicht ist es in deiner Anleitung noch gut, wenn du in deiner Anleitung noch schreibst, dass man noch die codepage ändern muss. Das ist mir jetzt noch eingefallen, dies hat mir ein wenig Kopfzerbrechen gemacht am Anfang. Sonst sehen die Buchstaben mit Unlaut komisch aus. Z. B. ├╝ statt ein ü. Ich würde da in der Anleitung schreiben, dass man chcp 65001 ausführen sollte um UTF-8 zu benutzen. Standardmässig wird nämlich 850 für Multilingual benutzt. Man kann auch in den administrativen Sprachoptionen das so einstellt, dass man es nicht jedesmal ändern muss, aber ist halt beta. grafik

Hast du ein customLayout definiert? Wenn ja, über die Kommandozeile oder die settings.ini? Und bekommst du überall diese Zeichen oder nur in der Kommandozeile?

DarioViva42 commented 4 years ago

@MaxGyver83 also die zeichen erscheinen nur beim optimierer so (in cmd sowie powershell)

das sieht dann z. B. so aus:

176              383.755 Gesamtaufwand  187.041 Lageaufwand        links rechts
                   1.042 Kollisionen      6.736 Shift-Kollisionen  ob  5.7 10.5
  kuü.ä vgclßz    71.351 Handwechsel     25.120 Shift-Handwechsel  mi 36.4 33.8
  hieao dtrnsf     1.777 Ein-/Auswärts   25.162 Ein- oder auswärts un  5.2  8.5
  xy├Â,q bpwmj      9.271 benachbart      21.261 Shift-benachbart  sum 47.2 52.8
                  8.4 11.2 13.9 13.7 --.- --.- 17.6 10.8 14.3 10.1 Sh  2.9  1.2

aber das hat dann nichts mit dem settings.ini zu tun. da habe ich mich wohl undeutlich ausgedrückt.

MaxGyver83 commented 4 years ago

Achso. Alles klar!