Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[de] improve NACHDEM_PRAETERITUM #7001

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -61334,7 +61334,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
</rule>
<rulegroup id="NACHDEM_PRAETERITUM" name="'nachdem' mit Präteritum">
<short>'Nachdem' kann standardsprachlich nicht mit dem Präteritum verwendet werden. Verwenden Sie Perfekt bzw. Plusquamperfekt.</short>
<rule>
<rule><!-- 1 -->
<pattern case_sensitive="yes">
<token skip="-1" regexp="yes">[Nn]achdem<exception scope="next" regexp="yes">,|–|\-|;|\:|&klam;|&anf;</exception></token>
<marker>
Expand All @@ -61343,12 +61343,13 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
<token>,</token>
</pattern>
<message>'Nachdem' drückt standardsprachlich Vorzeitigkeit aus und sollte daher nicht mit dem Präteritum verwendet werden. Verwenden Sie das Perfekt (Präsens im Hauptsatz) oder Plusquamperfekt (Präteritum im Hauptsatz) oder 'als' zum Ausdrücken von Gleichzeitigkeit.</message>
<suggestion suppress_misspelled="yes"><match no="2" postag="VER:PA2.*" postag_regexp="yes"/> war</suggestion>
<suggestion suppress_misspelled="yes"><match no="2" postag="VER:PA2.*" postag_regexp="yes"/> hatte</suggestion>
<suggestion suppress_misspelled="yes"><match no="2" postag="VER:PA2.*" postag_regexp="yes"/> <match no="2" postag="VER:([123].*)PRT.*" postag_replace="VER:AUX:$1PRT" postag_regexp="yes">sein</match></suggestion>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ich bin mir nicht sicher, ob die Zeile verstehe. Warum wird zwei mal das token 2 gematcht?

Copy link
Collaborator Author

@affemitkaraffe affemitkaraffe Aug 8, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beim ersten Mal brauche ich einfach nur das Wort für Partizip II (z. B. 'wusste' -> 'gewusst'). Beim zweiten Mal brauche ich das Postag (z. B. 'wusste' -> 'war', 'hatte').

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ja ok, wusste nicht, dass man dafür matchen muss, aber ja man kann eine suggestion nicht wie ein token behandeln und ihn eigene postags geben.

<suggestion suppress_misspelled="yes"><match no="2" postag="VER:PA2.*" postag_regexp="yes"/> <match no="2" postag="VER:([123].*)PRT.*" postag_replace="VER:AUX:$1PRT" postag_regexp="yes">haben</match></suggestion>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vlt. noch eine suggestion für Perfekt?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hast du ein Beispiel? Die Regeln matchen nur bei 'VER.*PRT'

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ein Satz wie "Das Kind darf mit seinen Freunden spielen, nachdem es seine Hausaufgaben machte." wäre im Perfekt auch richtig, oder? Also: "Das Kind darf mit seinen Freunden spielen, nachdem es seine Hausaufgaben gemacht hat."
Das heißt vlt. könnte man hier schauen, dass man die Sätze mit Präsens im Hauptsatz rausfiltert und damit eine eigene Regel macht, die dem User auch das Perfekt vorschlägt. Sonst haben wir die Aufforderung nur in der message und der User hat nichts zum Klicken, falls so ein Fall auftritt. Weiß aber nicht wie viel AUfwand das jetzt wäre.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Danke! Eigentlich wollte ich nur die falschen/fehlenden Suggestions fixen. Deshalb würde ich Perfekt einfach aufnehmen.

Nach Präsens / Präteritum prüfen sollte mithilfe des Kommas auch funktionieren. Allerdings würde die Zahl der Subrules auf 16 steigen...

<example correction="gekommen war|gekommen hatte">Nachdem der Brief <marker>kam</marker>, ging ich nach Hause.</example>
<example correction="gesagt warst|gesagt hattest">Nachdem du etwas <marker>sagtest</marker>, erstarrten ihre Mienen vollkommen vor Ehrfurcht.</example>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hier müsste man vlt. überlegen, ob man komische suggestions in Kauf nehmen will.
Bei Sätzen wie: "Nachdem ich das wusste, habe ich es geändert." kommen dann Vorschläge wie "gewusst war"
Wie siehtst du das @danielnaber ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wenn nur falsche Vorschläge kommen für einen Fehler ist das natürlich blöd, das sollten wir vermeiden. Ansonsten verlasse ich mich da auf dein Urteil, @St-ac-y

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@affemitkaraffe @danielnaber ich würde die Regel so aufteilen, dass Verben mit "haben" und Verben mit "sein" getrennt werden (so viele mit "sein" gibt es ja nicht, zb. alle Verben der Bewegung) damit nicht so komische Vorschläge dabei rauskommen. Der User könnte eben denken, dass es auch so richtig sein könnte, obwohl es nur ein generischer Vorschlag ist, der nicht in allen Situationen stimmt. Was denkst du, @AgnesKleinhans ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@St-ac-y Ja, für diesen Ansatz benötigen wir eine Liste aller Verben, die ausschließlich mit haben oder sein funktionieren. Ich stimme dir zu, dass es etwas unglücklich ist, wenn wir einen Vorschlag liefern, der grammatikalisch komplett falsch ist. In der prem4 liegt die Entität verbenmitsein, vielleicht hilft das weiter?

<example>Nachdem sich jedes Teilchen in einem <marker>Zustand</marker>, der nicht gut war, befunden hatte, ging es weiter.</example>
</rule>
<rule>
<rule><!-- 2 -->
<pattern case_sensitive="yes">
<token skip="-1" regexp="yes">[Nn]achdem<exception scope="next" regexp="yes">,|–|\-|;|\:|&klam;|&anf;</exception></token>
<marker>
Expand All @@ -61357,12 +61358,13 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
<token>,</token>
</pattern>
<message>'Nachdem' drückt standardsprachlich Vorzeitigkeit aus und sollte daher nicht mit dem Präteritum verwendet werden. Verwenden Sie das Perfekt (Präsens im Hauptsatz) oder Plusquamperfekt (Präteritum im Hauptsatz) oder 'als' zum Ausdrücken von Gleichzeitigkeit.</message>
<suggestion suppress_misspelled="yes"><match no="2" postag="VER:PA2.*" postag_regexp="yes"/> waren</suggestion>
<suggestion suppress_misspelled="yes"><match no="2" postag="VER:PA2.*" postag_regexp="yes"/> hatten</suggestion>
<suggestion suppress_misspelled="yes"><match no="2" postag="VER:PA2.*" postag_regexp="yes"/> <match no="2" postag="VER:([123].*)PRT.*" postag_replace="VER:AUX:$1PRT" postag_regexp="yes">sein</match></suggestion>
<suggestion suppress_misspelled="yes"><match no="2" postag="VER:PA2.*" postag_regexp="yes"/> <match no="2" postag="VER:([123].*)PRT.*" postag_replace="VER:AUX:$1PRT" postag_regexp="yes">haben</match></suggestion>
<example correction="gekommen waren|gekommen hatten">Nachdem die Briefe <marker>kamen</marker>, ging ich nach Hause.</example>
<example correction="gehört wart|gehört hattet">Nachdem ihr die Neuigkeiten <marker>hörtet</marker>, meldetet ihr euch zwei Monate lang nicht mehr.</example>
<example>Nachdem sich jedes Teilchen in einem <marker>Zustand</marker>, der nicht gut war, befunden hatte, ging es weiter.</example>
</rule>
<rule>
<rule><!-- 3 -->
<pattern case_sensitive="yes">
<token>,</token>
<token skip="-1">nachdem<exception scope="next" regexp="yes">,|–|\-|;|\:|&klam;|&anf;</exception></token>
Expand All @@ -61372,11 +61374,12 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
<token postag="SENT_END"/>
</pattern>
<message>'Nachdem' drückt standardsprachlich Vorzeitigkeit aus und sollte daher nicht mit dem Präteritum verwendet werden. Verwenden Sie das Perfekt (Präsens im Hauptsatz) oder Plusquamperfekt (Präteritum im Hauptsatz) oder 'als' zum Ausdrücken von Gleichzeitigkeit.</message>
<suggestion suppress_misspelled="yes"><match no="3" postag="VER:PA2.*" postag_regexp="yes"/> war</suggestion>
<suggestion suppress_misspelled="yes"><match no="3" postag="VER:PA2.*" postag_regexp="yes"/> hatte</suggestion>
<suggestion suppress_misspelled="yes"><match no="3" postag="VER:PA2.*" postag_regexp="yes"/> <match no="3" postag="VER:([123].*)PRT.*" postag_replace="VER:AUX:$1PRT" postag_regexp="yes">sein</match></suggestion>
<suggestion suppress_misspelled="yes"><match no="3" postag="VER:PA2.*" postag_regexp="yes"/> <match no="3" postag="VER:([123].*)PRT.*" postag_replace="VER:AUX:$1PRT" postag_regexp="yes">haben</match></suggestion>
<example correction="gekommen war|gekommen hatte">Ich ging nach Hause, nachdem der Brief <marker>kam</marker>.</example>
<example correction="gesagt warst|gesagt hattest">Ihre Mienen erstarrten vollkommen vor Ehrfurcht, nachdem du etwas <marker>sagtest</marker>.</example>
</rule>
<rule>
<rule><!-- 4 -->
<pattern case_sensitive="yes">
<token>,</token>
<token skip="-1">nachdem<exception scope="next" regexp="yes">,|–|\-|;|\:|&klam;|&anf;</exception></token>
Expand All @@ -61386,43 +61389,75 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
<token postag="SENT_END"/>
</pattern>
<message>'Nachdem' drückt standardsprachlich Vorzeitigkeit aus und sollte daher nicht mit dem Präteritum verwendet werden. Verwenden Sie das Perfekt (Präsens im Hauptsatz) oder Plusquamperfekt (Präteritum im Hauptsatz) oder 'als' zum Ausdrücken von Gleichzeitigkeit.</message>
<suggestion suppress_misspelled="yes"><match no="3" postag="VER:PA2.*" postag_regexp="yes"/> waren</suggestion>
<suggestion suppress_misspelled="yes"><match no="3" postag="VER:PA2.*" postag_regexp="yes"/> hatten</suggestion>
<suggestion suppress_misspelled="yes"><match no="3" postag="VER:PA2.*" postag_regexp="yes"/> <match no="3" postag="VER:([123].*)PRT.*" postag_replace="VER:AUX:$1PRT" postag_regexp="yes">sein</match></suggestion>
<suggestion suppress_misspelled="yes"><match no="3" postag="VER:PA2.*" postag_regexp="yes"/> <match no="3" postag="VER:([123].*)PRT.*" postag_replace="VER:AUX:$1PRT" postag_regexp="yes">haben</match></suggestion>
<example correction="gekommen waren|gekommen hatten">Ich ging nach Hause, nachdem die Briefe <marker>kamen</marker>.</example>
<example correction="gehört wart|gehört hattet">Ihr meldetet euch zwei Monate lang nicht, nachdem ihr die Neuigkeiten <marker>hörtet</marker>.</example>
</rule>
<rule>
<antipattern>
<token skip="1">nachdem</token>
<token>klar</token>
<token regexp="yes">war|wurde</token>
</antipattern>
<rule><!-- 5 -->
<pattern case_sensitive="yes">
<token skip="-1" regexp="yes">[Nn]achdem<exception scope="next" regexp="yes">,|–|\-|;|\:|&klam;|&anf;</exception><exception postag_regexp="yes" postag=".*:PA.*|UNKNOWN" scope="next"/></token>
<marker>
<token postag_regexp="yes" postag="VER:AUX:.*:PRT.*" regexp="yes">[a-zäüö].*</token>
<token inflected="yes" postag_regexp="yes" postag="VER:AUX:.*:PRT.*">haben</token>
</marker>
<token>,</token>
</pattern>
<message>'Nachdem' drückt standardsprachlich Vorzeitigkeit aus und sollte daher nicht mit dem Präteritum verwendet werden. Verwenden Sie das Perfekt (Präsens im Hauptsatz) oder Plusquamperfekt (Präteritum im Hauptsatz) oder 'als' zum Ausdrücken von Gleichzeitigkeit.</message>
<suggestion>gehabt \2</suggestion>
<suggestion>erhalten \2</suggestion>
<suggestion>bekommen \2</suggestion>
<example>Nachdem ich den Brief abgeschickt <marker>hatte</marker>, ging ich nach Hause.</example>
<example correction="">Nachdem ich eine Stellungnahme <marker>hatte</marker>, ging ich nach Hause.</example>
<example correction="gehabt hatte|erhalten hatte|bekommen hatte">Nachdem ich eine Stellungnahme <marker>hatte</marker>, ging ich nach Hause.</example>
<example>Nachdem ich eine Stellungnahme bekommen <marker>hatte</marker>, ging ich nach Hause.</example>
<example>Aber nachdem klar war, dass es uns mit dem Experiment Ernst ist und wir unsere Hausaufgaben gemacht haben, gaben sie uns ihren Segen.</example>
</rule>
<rule>
<rule><!-- 6 -->
<pattern case_sensitive="yes">
<token>,</token>
<token skip="-1">nachdem<exception scope="next" regexp="yes">,|–|\-|;|\:|&klam;|&anf;</exception><exception postag_regexp="yes" postag=".*:PA.*|UNKNOWN" scope="next"/></token>
<marker>
<token postag_regexp="yes" postag="VER:AUX:.*:PRT.*" regexp="yes">[a-zäüöß].*</token>
<token inflected="yes" postag_regexp="yes" postag="VER:AUX:.*:PRT.*">haben</token>
</marker>
<token postag="SENT_END"/>
</pattern>
<message>'Nachdem' drückt standardsprachlich Vorzeitigkeit aus und sollte daher nicht mit dem Präteritum verwendet werden. Verwenden Sie das Perfekt (Präsens im Hauptsatz) oder Plusquamperfekt (Präteritum im Hauptsatz) oder 'als' zum Ausdrücken von Gleichzeitigkeit.</message>
<suggestion>gehabt \3</suggestion>
<suggestion>erhalten \3</suggestion>
<suggestion>bekommen \3</suggestion>
<example>Ich ging nach Hause, nachdem ich den Brief abgeschickt <marker>hatte</marker>.</example>
<example correction="">Ich ging nach Hause, nachdem ich eine Stellungnahme <marker>hatte</marker>.</example>
<example correction="gehabt hatte|erhalten hatte|bekommen hatte">Ich ging nach Hause, nachdem ich eine Stellungnahme <marker>hatte</marker>.</example>
<example>Ich ging nach Hause, nachdem ich eine Stellungnahme bekommen <marker>hatte</marker>.</example>
</rule>
<rule default="temp_off"><!-- 7 -->
<antipattern>
<token skip="1">nachdem</token>
<token>klar</token>
<token regexp="yes">war|wurde</token>
</antipattern>
<pattern case_sensitive="yes">
<token skip="-1" regexp="yes">[Nn]achdem<exception scope="next" regexp="yes">,|–|\-|;|\:|&klam;|&anf;</exception><exception postag_regexp="yes" postag=".*:PA.*|UNKNOWN" scope="next"/></token>
<marker>
<token inflected="yes" postag_regexp="yes" postag="VER:AUX:.*:PRT.*">sein</token>
</marker>
<token>,</token>
</pattern>
<message>'Nachdem' drückt standardsprachlich Vorzeitigkeit aus und sollte daher nicht mit dem Präteritum verwendet werden. Verwenden Sie das Perfekt (Präsens im Hauptsatz) oder Plusquamperfekt (Präteritum im Hauptsatz) oder 'als' zum Ausdrücken von Gleichzeitigkeit.</message>
<suggestion>gewesen \2</suggestion>
<example correction="gewesen war">Erst nachdem ich wieder zu Hause <marker>war</marker>, stellte ich fest, dass ich meine Brieftasche vergessen hatte.</example>
</rule>
<rule default="temp_off"><!-- 8 -->
<pattern case_sensitive="yes">
<token>,</token>
<token skip="-1">nachdem<exception scope="next" regexp="yes">,|–|\-|;|\:|&klam;|&anf;</exception><exception postag_regexp="yes" postag=".*:PA.*|UNKNOWN" scope="next"/></token>
<marker>
<token inflected="yes" postag_regexp="yes" postag="VER:AUX:.*:PRT.*">sein</token>
</marker>
<token postag="SENT_END"/>
</pattern>
<message>'Nachdem' drückt standardsprachlich Vorzeitigkeit aus und sollte daher nicht mit dem Präteritum verwendet werden. Verwenden Sie das Perfekt (Präsens im Hauptsatz) oder Plusquamperfekt (Präteritum im Hauptsatz) oder 'als' zum Ausdrücken von Gleichzeitigkeit.</message>
<suggestion>gewesen \3</suggestion>
<example correction="gewesen war">Dass ich meine Brieftasche vergessen hatte, stellte ich erst fest, nachdem ich wieder zu Hause <marker>war</marker>.</example>
</rule>
</rulegroup>
<rule id="EINE_MILLIONEN" name="'eine Millionen (Million)'">
<regexp>(?&lt;!,)\b(einer?|1) ([MB]illi(on|ard)|Tausend)en\b</regexp>
Expand Down