首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用LanguageTool检测无意义和/或语法错误的句子

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

Stack Overflow用户
提问于 2012-10-23 01:19:42
回答 1查看 1.7K关注 0票数 3

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

代码语言:javascript
复制
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());
}

我没有得到任何错误。如果我错了,很抱歉,但是“每天吃我的饭,上学像个男孩一样好”这句话(从语法上讲)是正确的吗?如果是,或者不是,那么有没有办法用这个工具来检测这样的句子(无意义和/或语法不正确)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-19 20:25:43

Languagetool是基于规则的。显然,这句话“每天吃我的饭,上学像个男孩一样好”还没有被任何规则所约束。

http://wiki.languagetool.org/tips-and-tricks提供了有关如何将用户定义的规则添加到语言工具中的信息。

下面是这样一个规则的示例:

代码语言:javascript
复制
<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/

这个问题的一个简单解决方案是

代码语言:javascript
复制
<!-- 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>

当然,这只涵盖了动词“吃”--但我希望你能理解它是如何工作的……

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13016469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档