1

我不知道我们如何编写规则,其中令牌涉及单词和标点符号的组合。

我应该如何处理LanguageTool规则中的标点符号?

我在网上查了一下,尝试了几件事无济于事。

例如,两者 1)

<rule id="THAT_AND_THAN_DOT" name="that and than dot">
<pattern>
<token>that</token> 
<token regexp="yes"> 
another.|
himself.|
herself.|
itself.</token>
</pattern>
<message>Did you mean <suggestion>than \2.</suggestion>?</message>
<example correction='than another.'>Yes, better <marker>than another. </marker></example>
</rule> 

2)

<rule id="THAT_AND_THAN_DOT" name="that and than dot">
<pattern>
<token>that</token> 
<token regexp="yes"> 
another|
himself|
herself|
itself</token>
<token regexp="yes">
[.]</token> 
</pattern>
<message>Did you mean <suggestion>than \2.</suggestion>?</message>
<example correction='than another.'>Yes, better <marker>than another. </marker></example>
</rule>

和 3)

<rule id="THAT_AND_THAN_DOT" name="that and than dot">
<pattern>
<token>that</token> 
<token regexp="yes"> 
another|
himself|
herself|
itself</token>
<token regexp="yes">
[:punct:]</token> 
</pattern>
<message>Did you mean <suggestion>than \2.</suggestion>?</message>
<example correction='than another.'>Yes, better <marker>than another. </marker></example>
</rule>

失败的。另一方面

<rule id="THAT_AND_THAN_DOT" name="that and than dot">
    <pattern>
    <token>that</token> 
    <token regexp="yes"> 
    another|
    himself|
    herself|
    itself</token>
    </pattern>
    <message>Did you mean <suggestion>than \2.</suggestion>?</message>
    <example correction='than another.'>Yes, better <marker>than another. </marker></example>
    </rule>

工作,尽管没有考虑到我想做的点。

注意:我在LanguageTool里面使用Texstudio

4

1 回答 1

1

您在 2) 中的代码几乎可以工作,只是您that在模式中有一个标记,但than在您的例句中,所以它永远不会匹配,与标点符号无关。通常,标点符号有自己的标记,因此它也需要在模式中拥有自己的标记。您可以使用http://community.languagetool.org/ruleEditor/expert测试您的规则,如果出现问题,它还会显示一条带有应用标记化的消息。

于 2016-05-27T16:03:52.390 回答