gpt4 book ai didi

java - 使用 LanguageTool 检测无意义和/或语法错误的句子

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:31:49 25 4
gpt4 key购买 nike

我需要检查文本中的拼写和语法,所以我开始使用 LanguageTool API ( Can be found here )。现在,当我编写他们提供的启动代码时,如下所示-

JLanguageTool langTool = new JLanguageTool(Language.ENGLISH);
langTool.activateDefaultPatternRules();
List<RuleMatch> matches = langTool.check("Eat I rice" +
"every day and go school to good as a boy");
for (RuleMatch match : matches) {
System.out.println("Potential error at line " +
match.getEndLine() + ", column " +
match.getColumn() + ": " + match.getMessage());
System.out.println("Suggested correction: " +
match.getSuggestedReplacements());
}

我没有收到任何错误。对不起,如果我错了,但是句子“每天吃米饭然后像男孩一样上学”是正确的句子(语法上)吗?如果是,或者如果不是,那么是否有任何方法可以使用该工具检测此类句子(无意义和/或语法错误)?

最佳答案

语言工具是基于规则的。显然,“每天吃米饭,好好上学”这句话还没有被任何规则捕获。

http://wiki.languagetool.org/tips-and-tricks包含有关如何将用户定义的规则添加到 Languagetool 的信息。

这是一个这样的规则的例子:

<rule>
<pattern>
<token>
<exception regexp="yes">(that|ha[ds]|will|must|could|can|should|would|does|did|may|might|t|let)</exception>
<exception inflected="yes" regexp="yes">feel|hear|see|watch|prevent|help|stop|be</exception>
<exception postag="C[CD]|IN|DT|MD|NNP|\." postag_regexp="yes"></exception>
<exception scope="previous" postag="PRP$"/>
</token>
<token postag="NNP" regexp="yes">.{2,}<exception postag="JJ|CC|RP|DT|PRP\$?|NNPS|NNS|IN|RB|WRB|VBN" postag_regexp="yes"></exception></token>
<marker>
<token postag="VB|VBP" postag_regexp="yes" regexp="yes">\p{Lower}+<exception postag="VBN|VBD|JJ|IN|MD" postag_regexp="yes"></exception></token>
</marker>
<token postag="IN|DT" postag_regexp="yes"></token>
</pattern>
<message>The proper name in singular (<match no="2"></match>) must be used with a third-person verb: <suggestion><match no="3" postag="VBZ"></match></suggestion>.</message>
<short>Grammatical problem</short>
<example correction="walks" type="incorrect">Ann <marker>walk</marker> to the building.</example>
<example type="correct">Bill <marker>walks</marker> to the building.</example>
<example type="correct">Guinness <marker>walked</marker> to the building.</example>
<example type="correct">Roosevelt and Hoover speak each other's lines.</example>
<example type="correct">Boys are at higher risk for autism than girls.</example>
<example type="correct">In reply, he said he was too old for this.</example>
<example type="correct">I can see Bill looking through the window.</example>
<example type="correct">Richard J. Hughes made his Morris County debut in his bid for the Democratic gubernatorial elections.</example>
<example type="correct">... last night got its seven-concert Beethoven cycle at Carnegie Hall off to a good start.</example>
<example type="correct">... and through knowing Him better to become happier and more effective people.</example>
<!-- TODO: Fix false-positive: The library and Medical Center are to the north.-->
<!-- The present Federal program of vocational education began in 1917. -->
</rule>

有一个在线规则编辑器可用在

http://community.languagetool.org/ruleEditor2/

一个简单的解决方案是

<!-- English rule, 2014-09-19 --> 
<rule id="ID" name="EatI">
<pattern> <token>Eat</token> <token>i</token> </pattern>
<message>Instead of <match no="2"/> <match no="1"/> it should be <match no="1"/> <match no="2"/></message>
<url>http://stackoverflow.com/questions/13016469/detecting-meaningless-and-or-grammatically-incorrect-sentence-with-languagetool/25933907#25933907</url>
<short>wrong order of verb and nown</short>
<example type='incorrect'><marker>Eat i</marker> rice</example> <example type='correct'>I eat rice</example>
</rule>

但当然这只会涵盖动词“吃”——但我希望你明白它是如何工作的……

关于java - 使用 LanguageTool 检测无意义和/或语法错误的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13016469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com