2017-05-27 34 views
1

任何人都可以讓我知道爲什麼我的代碼沒有提供正確的輸出。Python - 語言檢查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 [ '這些']」

但它未能糾正第二個錯誤。 enter image description here

+1

我一點兒也不熟悉,你使用的工具,但它看起來對我來說,這兩個置換是簡單地不兼容:第一個想將'this'改爲'This',第二個想要將'this'改爲'these'。那麼,在第一次更換之後,不再有'this'來代替!您可能需要迭代地應用替換,然後再次調用'.check()',直到找不到進一步的替換。 – jasonharper

+0

該工具根據拼寫和語法修正任何給定的句子/單詞。由於每個句子中第一個單詞的第一個字母以大寫字母開頭,因此該工具正在將「this」替換爲「This」,而不是檢查語法錯誤並找出這是這些的替代。 –

+0

但我猜它不能取代「this」爲「這些」的原因可能是你提到的@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']」 –