2017-05-27 4 views
1

Kann mir bitte jemand sagen, warum mein Code nicht die richtige Ausgabe liefert.Python - Sprache-Check 1.0

Mein Code:

import language_check 
tool = language_check.LanguageTool('en-US') 
text='this are bad' 
matches = tool.check(text) 
t=len(matches) 
for i in range(0,t): 
    print(matches[i].ruleId,matches[i].replacements) 
new=language_check.correct(text, matches) 
print(new) 

Die erwartete Antwort „Dies ist schlecht“, aber die tatsächliche Ausgabe ich immer bin, ist „Das ist schlechtes“

Das language_check Werkzeug, um die Fehler wie erkennt:

"UPPERCASE_SENTENCE_START [ 'Dieses']"

"THIS_NNS [ 'diese']"

Aber es kann den zweiten Fehler nicht korrigieren. enter image description here

+1

Ich bin nicht vertraut mit dem Werkzeug, das Sie verwenden, aber es scheint mir, wie die beiden Ersatz sind einfach inkompatibel: der erste möchte 'this' in' This' ändern, der zweite will 'this' in' this' ändern. Nun, nach dem ersten Austausch gibt es kein "This" mehr zu ersetzen! Sie müssen möglicherweise Ersetzungen iterativ anwenden und anschließend '.check()' erneut aufrufen, bis keine weiteren Ersetzungen gefunden werden. – jasonharper

+0

Das Tool korrigiert jeden gegebenen Satz/Wort in Bezug auf Zauber und Grammatik. Da der erste Buchstabe des ersten Wortes in jedem Satz mit einem Großbuchstaben beginnt, ersetzt das Werkzeug "this" durch "This" als es nach Grammatikfehlern sucht und einen Ersatz für This is this findet. –

+0

aber ich denke, der Grund dafür, dass Sie "this" nicht zu "this" ersetzen, könnte das sein, was Sie erwähnt haben @jasonharper –

Antwort

0

Könnten Sie eine alte Version von LanguageTool verwenden? Ich habe language_check mit Python 3.6.1 installiert, nur um deinen Code zu testen und es gab mir die Ausgabe "diese sind schlecht".

Edit: Gerade, das ist, was ich auf Ausganges mit exakt gleichen Code:

THIS_NNS ['these'] 
these are bad 
+0

Ich benutze Python 3.6.1 und die neueste Version des Sprachwerkzeugs. Und bitte benutze text = 'das sind schlechte' –

+0

Ich habe, und das Ergebnis ist immer noch gleich. Edit: https://prnt.sc/fcpowd –

+0

Ich frage mich, warum Ihre Ausgabe nicht enthalten: "UPPERCASE_SENTENCE_START ['This']" –