【问题标题】:MaltParser 1.5 PatternSyntaxExceptionMaltParser 1.5 PatternSyntaxException
【发布时间】:2015-09-19 01:20:55
【问题描述】:

我需要使用 MaltParser 1.5 版本来解析俄语句子。 所以,当我尝试输入 cmd 下一个命令时:

java -jar malt.jar 

我得到下一个异常:

C:\malt1.5>java -jar malt.jar
Exception in thread "main" java.lang.ExceptionInInitializerError
        at org.maltparser.MaltConsoleEngine.<init>(MaltConsoleEngine.java:29)
        at org.maltparser.Malt.main(Malt.java:17)
Caused by: java.util.regex.PatternSyntaxException: Unclosed character class near index 17
^.*malt[^\]*\.jar$
                 ^
        at java.util.regex.Pattern.error(Unknown Source)
        at java.util.regex.Pattern.clazz(Unknown Source)
        at java.util.regex.Pattern.sequence(Unknown Source)
        at java.util.regex.Pattern.expr(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at java.util.regex.Pattern.<init>(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at org.maltparser.core.helper.SystemInfo.<init>(SystemInfo.java:28)
        at org.maltparser.core.helper.SystemInfo.<clinit>(SystemInfo.java:21)
        ... 2 more

我尝试使用 JRE 1.5 和 1.8.45 运行此命令 - 结果相同。

【问题讨论】:

    标签: java nlp


    【解决方案1】:

    问题似乎是正则表达式的[^\] 部分。 [ 部分启动一个字符类。通常] 结束一个字符类,但它被\] 引用,因此您编写了一个字符类,其中包含除了字符]、*、.、j、a、@ 之外的所有内容987654330@,$,并没有终止。

    如果字符类应该包含除反斜杠之外的所有内容,则它应该是[^\\] 而不是[^\]。要将正则表达式编写为 Java 字符串,您将需要额外的引用级别:"[^\\\\]"。一级引用用于正则表达式,另一级用于字符串。

    【讨论】:

    • 感谢您的回复。但我不擅长正则表达式)。解决方案是下载 MaltParser 的 1.5.1 版本(它是为解决问题而创建的,由我在上面描述。)我只是没有时间查看版本更改。
    猜你喜欢
    • 1970-01-01
    • 2013-05-30
    • 2012-12-24
    • 2013-10-29
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多