问题描述
我正在使用此文件在 Android 应用程序中检查文档的语法,但它在语言工具中给了我错误消息。我正在使用 tool = language_check.languagetool('en-US')
工具来检查语法。下面给出的错误消息图像
import language_check
from nltk.tokenize import sent_tokenize
matches=list()
def main(location):
# matches.clear()
mistake=0
path=location
uploaded_sentence=open(path).read()
#uploaded_sentence=path
tool = language_check.languagetool('en-US')
sent_text = sent_tokenize(uploaded_sentence)
for sent in sent_text:
#first letter of the sentence is capital
doc=sent.capitalize()
matches=(tool.check(doc))
# print(len(matches))
print(sent,"\n"," mistakes that are in this sentence = ",len(matches),'\n')
print("type of the mistake that is done","\n ",matches,'\n')
# one of the method for the count grammar mistakes here
# if the mistakes are more than one or one it add only 1
# if len(matches)!=0:
# mistake=mistake+1
# the other method for the grammar mistake count
# here if the mistakes are more than one or one it will add the number of the mistakes
if (len(matches))>0:
mistake=mistake+(len(matches))
print("total number of the mistakes that are done =",mistake)
return(mistake)
解决方法
来自https://github.com/chaquo/chaquopy/issues/397:
language_check 通过在单独的 Java 进程中运行 LanguageTool JAR 并通过管道与其通信来工作。不幸的是,Android 设备不附带 Java 可执行文件或任何其他执行 JAR 的方式,因此如果不进行重大更改,language_check 无法在 Android 上运行。
另一种解决方案可能是将 LanguageTool JAR 下载到您项目的 libs 目录中,这样它就会与您的其余 Java 代码一起编译到您的应用程序中。然后您可以直接从 Java 或使用 Chaquopy Python API 的 Python 调用它。
有关详细信息,请参阅 language_check source code 和 LanguageTool documentation。