繁体   English   中英

JLanguageTool 不会忽略单词中的数字

[英]JLanguageTool do not ignore digits in words

我正在使用带有德语 ( de-DE ) 的 JLanguageTool 进行拼写检查,并注意到数字似乎被用作单词分隔符(就像空格一样?)。 例如We8lt不会报告为单个错误单词,而是报告为两个拼写错误(一个用于We ,一个用于lt )。 或者例如bis8根本不报告为错误。

示例调用(我将其用作 Java 库,但行为相同):

$ echo "Hallo We8lt bis8 Test" | java -jar languagetool-commandline.jar -l de-DE -
Expected text language: German (Germany)
Working on STDIN...

1.) Line 1, column 7, Rule ID: GERMAN_SPELLER_RULE prio=-3
Message: Möglicher Tippfehler gefunden.
Suggestion: WE; Der; Den; Des; Dem
Hallo We8lt bis8 Test 
      ^^              

2.) Line 1, column 10, Rule ID: GERMAN_SPELLER_RULE prio=-3
Message: Möglicher Tippfehler gefunden.
Suggestion: LT; als; lag; alt; elf
Hallo We8lt bis8 Test 
         ^^           

Time: 1618ms for 1 sentences (0.6 sentences/sec)

这是一个大问题,例如找不到单词和数字之间的空格。 如何让库/工具不将数字视为单词分隔符? 非常感谢。

是的,你是对的:LanguageTool 将数字视为德语中的单词分隔符。

要修改此行为,您必须更改源代码并将GermanSpellerRule.java 中的这一行

String pattern = "(" + nonWordPattern.pattern() + "|(?<=[\\d°])-|-(?=\\d+))";

String pattern = ("(" + nonWordPattern.pattern() + "|(?<=[\\d°])-|-(?=\\d+))").replace("{L}", "{L}\\d");

或者,您可以向语法添加另一条规则。xml抱怨数字前后缺少空格:

<rule id="RULE" name="rule">
<pattern>
    <token regexp="yes">[a-zäöüß]+\d+[a-zäöüß]*</token>
</pattern>
<message>Fehlt hier ein Leerzeichen?</message>
<example correction=""><marker>P4sswort</marker>.</example>

规则编辑器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM