2017-05-27 16 views
1

誰も私のコードが正しい出力を提供していない理由を教えてください。Python - language-check 1.0

マイコード:

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) 

language_checkツールとしてエラーを検出予想答えは「これらが悪い」ですが、私は取得しています実際の出力は、「これは悪い」です

"UPPERCASE_SENTENCE_START [ 'この']"

"THIS_NNS [ 'これら']"

ただし、2番目のエラーを修正することはできません。 enter image description here

+1

私はすべてであなたが使っているツールに慣れていないんだけど、2個の置換があるように、それは私には見えます単純に互換性がありません。最初のものは「this」を「This」に変更し、2番目のものは「this」を「these」に変更します。さて、最初の交換の後、もはや置き換えるべき「これ」はもうありません!反復的に置換を適用し、それ以上の置換が見つからなくなるまで '.check()'をもう一度呼び出す必要があるかもしれません。 – jasonharper

+0

このツールは、文法だけでなく呪文の点でも任意の文/単語を修正します。すべての文章の最初の単語の最初の文字が大文字で始まるので、このツールは文法上の誤りをチェックし、Thisを置き換えることを見つけるよりも、「this」を「this」に置き換えます。 –

+0

しかし、私は "これ"を "これ"をあなたが@jasonharperに言及したものに置き換えない理由を推測します –

答えて

0

旧バージョンのLanguageToolを使用していますか?私はあなたのコードをテストするためにPython 3.6.1でlanguage_checkをインストールしました。そして、それは私に "これらは悪い"という出力を与えました。

編集:正確には、それは私がまったく同じコードで出力を得るものです:

THIS_NNS ['these'] 
these are bad 
+0

私はPython 3.6.1と言語ツールの最新バージョンを使用しています。そして、テキスト= 'これは悪い'を使用してください。 –

+0

私はやったが、結果は同じです。編集:https://prnt.sc/fcpowd –

+0

あなたの出力が含まれていないのは不思議です: "UPPERCASE_SENTENCE_START ['This']" –