Erstellen einer RechtschreibprüfungHallo,
Ich habe einige Textdateien aus dem Internet heruntergeladen und beabsichtige, eine Textanalyse darauf durchzuführen. Sie sind jedoch mit Tippfehlern übersät, und ich möchte sie so weit wie möglich bereinigen, bevor ich sie in die Text-Explorer-Plattform einfüge. Die offensichtlichste erste Aufgabe wird darin bestehen, so viele dieser Tippfehler wie möglich automatisch zu korrigieren.
Dazu benötige ich eine relativ umfassende Liste gebräuchlicher Wörter, mit denen ich meine Dateien vergleichen kann. Die Rechtschreibprüfung von MS Word muss Zugriff auf eine solche Liste haben. Ich weiß nicht, ob diese Liste ein integraler Bestandteil von MS Word oder nur eine Standardkomponente von Windows ist – aber weiß jemand, ob ich in JMP direkt auf diese Liste zugreifen kann?
Wie kann ich in einem verwandten Punkt die „beste Übereinstimmung“ zwischen einem falsch geschriebenen Wort und einer Liste korrekt geschriebener englischer Wörter berechnen? Ich habe keinen Zweifel daran, dass es viele Möglichkeiten gibt, dies zu tun, aber es muss einige ziemlich standardmäßige geben. (Ich kenne mich mit Regex nicht gut genug aus, um zu wissen, ob man ein solches Problem auf diese Weise lösen kann, aber wenn ich es lernen muss, werde ich es lernen.)
Vielen Dank.
Betreff: Erstellen einer RechtschreibprüfungVielen Dank an alle, die auf diesen Thread geantwortet haben: Jeder Vorschlag wurde berücksichtigt Wirklich hilfreich. Ich werde mir etwas Zeit nehmen, um einen Blick auf die Levenshtein-Distanz zu werfen und zu sehen, was man damit machen kann (wofür das Drehbuch von unschätzbarem Wert sein wird); auch die Funktion „Shortest Edit Script()“, die sehr nützlich zu sein scheint. Entsprechend dem erhaltenen Rat werde ich keine Zeit mit Regex verbringen, werde aber vielleicht die Möglichkeit in Betracht ziehen, ein Word-Makro zu schreiben – wir werden sehen, wie es läuft. Mir kommt auch der Gedanke, dass jemand dies möglicherweise in R gelöst hat. In diesem Fall gibt es möglicherweise etwas im Internet, das über die R-bezogenen Funktionen von JMP importiert werden könnte. Es gibt viele Möglichkeiten zu erkunden, aber ich werde die Frage als gelöst markieren.
Nochmals vielen Dank an alle.
Betreff: Erstellen einer RechtschreibprüfungNur zu Ihrer Information. Im Anhang finden Sie ein Skript, das eine aufgerufene Funktion definiert berechnenLevenshteinDistance() und enthält mehrere Beispiele und Beschreibungen davon kürzestes Bearbeitungsskript() Funktion. Außerdem enthält es Beispiele zum Finden der längsten gemeinsamen Sequenz.
Dieses Skript wurde als zusätzliches Beispiel für die Textbereinigung geschrieben, dokumentiert in Kapitel 9 von JSL Companion, Anwendungen der JMP-Skriptsprache, 2. Auflage, und weil wir fanden, dass es eine interessante Funktion ist.
Beim Bereinigen von Umfrage- oder Kommentarspalten (nicht eines gesamten Dokuments), Spalte Neu kodieren kann nützlich sein.
Betreff: Erstellen einer RechtschreibprüfungZum Wortvergleich können Sie die Levenshtein-Distanz verwenden.https://en.wikipedia.org/wiki/Levenshtein_distance
Betreff: Erstellen einer RechtschreibprüfungEinige Informationen zur Wortliste in diesem Blog https://community.jmp.com/t5/Uncharted/WordNet/ba-p/28984
Vor langer Zeit wurde ein Algorithmus wie dieser verwendet:
Schlagen Sie das Wort in einer assoziativen Reihe bekannter guter Wörter nach. Wenn die Suche fehlschlägt, probieren Sie einige Regeln zum Entfernen der Suffixe s, ing, ed aus und schlagen Sie erneut nach. Wenn es immer noch fehlschlägt, machen Sie Vorschläge, indem Sie nach ähnlichen Wörtern suchen, die durch Vertauschen von Buchstabenpaaren, Einfügen von Buchstaben oder Löschen von Buchstaben gebildet werden.
Ich halte die Vorschläge, ein externes Programm zu verwenden, für angemessen, und ich denke, dass Regex größtenteils nicht die Antwort ist. Möglicherweise können Sie die Neucodierung im Text-Explorer verwenden, dies ist jedoch ein manueller Vorgang.
Hier ist eine interessante Funktion in JMP, die nützlich sein könnte, wenn Sie sich entscheiden, Ihre eigene Lösung zu erstellen
shortest edit script("maintainence","maintenance")
{{"Common", "maint"}, {"Insert", "en"}, {"Common", "a"}, {"Remove", "i"}, {"Common",
"n"}, {"Remove", "en"}, {"Common", "ce"}}
Das Bearbeitungsskript ist eine Beschreibung, wo sich die beiden Wörter unterscheiden. Sie könnten daraus eine Metrik erstellen, indem Sie die Anzahl der eingefügten und gelöschten Zeichen verwenden.
Betreff: Erstellen einer RechtschreibprüfungZwei Dinge:
1. Die LaTeX-Community verfügt über eine Reihe von Wortlisten, die mit den eingebetteten Rechtschreibprüfungen in ihren IDEs verwendet werden können. Möglicherweise können Sie einen davon verwenden.
2. Anstatt zu versuchen, Ihre eigene Rechtschreibprüfung zu hacken, könnten Sie versuchen, sich direkt in GNU Aspell einzubinden. Es ist ziemlich solide (und meiner Meinung nach intelligent genug, um Code zu ignorieren). Ich bin mir nicht sicher, wie Sie das machen würden, aber vielleicht können Sie es durch einen Python-Aufruf oder so erreichen.
Hier gelangen Sie zu Wortlisten und zur Aspell-App: http://aspell.net .
M
Betreff: Erstellen einer RechtschreibprüfungIch weiß nicht, wie ich von JMP aus auf eine externe Liste zugreifen kann, wie sie beispielsweise von der Rechtschreibprüfung in MS Word verwendet wird. Darüber hinaus wird die Liste vom Prüfer verwendet. Es wäre schwierig, den Prüfer in einem JMP-Skript zu duplizieren.
Sie könnten darüber nachdenken, ein Visual Basic-Makro für MS Word zu erstellen, um die Rechtschreibung in den Originaltextdateien zu überprüfen und zu korrigieren, bevor Sie sie zur Analyse in eine JMP-Datentabelle importieren.
Reguläre Ausdrücke sind eine leistungsstarke Möglichkeit, Muster abzugleichen. Dieser Ansatz würde jedoch umständlich werden, wenn er auf die Aufgabe angewendet würde, alle falsch geschriebenen Wörter zu finden und das richtige Wort zurückzugeben.