java - 创建 TokenRegex 规则时出错

标签 java stanford-nlp

我正在创建 TokenRegex 规则列表。这就是我所拥有的:

$STARTING_SEQUENCE = (/start/|/begin/)

{
  ruleType: "tokens",
  pattern: ([{lemma:$STARTING_SEQUENCE}]), 
  result: "START"
}

当我编译代码时,编译器给出以下错误:

Reading TokensRegex rules from tr.txt
Exception in thread "main" java.lang.RuntimeException: Error parsing file: tr.txt
at edu.stanford.nlp.ling.tokensregex.CoreMapExpressionExtractor.createExtractorFromFile(CoreMapExpressionExtractor.java:258)
at MedicalTranscript.x(MedicalTranscript.java:37)
at MedicalTranscript.main(MedicalTranscript.java:76)
Caused by: java.lang.ClassCastException: edu.stanford.nlp.ling.tokensregex.TokenSequencePattern cannot be cast to java.lang.String
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.CoreMapVarValue(TokenSequenceParser.java:1673)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.AttrValue(TokenSequenceParser.java:1534)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.CoreMapNode(TokenSequenceParser.java:1434)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.NodeBasic(TokenSequenceParser.java:1411)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.NodeGroup(TokenSequenceParser.java:1378)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.NodeDisjConj(TokenSequenceParser.java:1317)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.BracketedNode(TokenSequenceParser.java:1178)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.SeqRegexBasic(TokenSequenceParser.java:884)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.SeqRegexDisjConj(TokenSequenceParser.java:1071)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.SeqRegex(TokenSequenceParser.java:841)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.BasicValue(TokenSequenceParser.java:383)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.ValueExpression(TokenSequenceParser.java:292)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.Expression(TokenSequenceParser.java:210)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.FieldValue(TokenSequenceParser.java:345)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.CompositeFieldValue(TokenSequenceParser.java:333)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.Rule(TokenSequenceParser.java:122)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.RuleList(TokenSequenceParser.java:107)
at edu.stanford.nlp.ling.tokensregex.parser.TokenSequenceParser.getExpressionExtractor(TokenSequenceParser.java:22)
at edu.stanford.nlp.ling.tokensregex.CoreMapExpressionExtractor.createExtractorFromFile(CoreMapExpressionExtractor.java:254)
... 2 more

我做错了什么?

最佳答案

尝试

$STARTING_SEQUENCE = "/start|begin/"

因为它是一个用于匹配字符串字段引理的正则表达式,所以它需要是一个在字符串上表达正常正则表达式的字符串。

您可能还想对结果执行某些操作或使用操作进行一些注释:

示例:

{
  ruleType: "tokens",
  pattern: ([{lemma:$STARTING_SEQUENCE}]), 
  action:  ( Annotate($0, ner, "START") )
}

关于java - 创建 TokenRegex 规则时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31665510/

相关文章:

java - 斯坦福解析器内存不足

java - 如何从 java 中的字符串中删除无效的 unicode 字符

java - 使用Reflections动态加载包中的所有类

java - DataNucleus/AppEngine - 类路径中同一插件的多个 JAR 版本

java - spring - 从类的静态字段中的属性文件中读取属性值

java - 显示斯坦福 NER 置信度分数

machine-learning - 使用斯坦福依存解析器进行依存解析

java - 如何确保我的 map 在我的构建器模式中设置后永远不会被修改?

java - 垂直于一点的 vector

java - 如何打印依赖关系图的一部分