Java,StanfordNLP解析器:如何停止将尖括号标记为标记/将尖括号标记为标点?

Java,StanfordNLP解析器:如何停止将尖括号标记为标记/将尖括号标记为标点?,java,stanford-nlp,Java,Stanford Nlp,我正在解析一个数据集,在这个数据集中,人们只使用尖括号作为标点符号,而实际的标记从未出现过 是否有方法更改解析器的功能,以便 "<snickers in background>" “” 只要一个令牌,我们就可以得到 "<", "snickers", etc? “不,没有一种简单的方法可以做到这一点。有一些选项可用于自定义标记器中引号、破折号和括号转义的处理方式,但总体而言,标记器有许多启发式规则,其中大多数规则无法在命令行中更改 您有两个主要选择: 编写您自己的To

我正在解析一个数据集,在这个数据集中,人们只使用尖括号作为标点符号,而实际的标记从未出现过

是否有方法更改解析器的功能,以便

"<snickers in background>" 
“”
只要一个令牌,我们就可以得到

"<", "snickers", etc? 

“不,没有一种简单的方法可以做到这一点。有一些选项可用于自定义标记器中引号、破折号和括号转义的处理方式,但总体而言,标记器有许多启发式规则,其中大多数规则无法在命令行中更改

您有两个主要选择:

  • 编写您自己的Tokenizer和TokenizerFactory实现,然后请求使用它而不是默认的PTBTokenizer,并使用命令行标志
    -TokenizerFactory
  • 在解析之前对输入进行标记化,然后给出标记
    -tokenized

当然,如果常规标记没有按照宾州树状银行惯例的预期进行标记化,那么解析的准确性就会受到影响。

Hi,谢谢你的提醒。我们可能最终只是用{}或其他东西来替换s。你知道有没有办法进行后期处理(宾州d/美国化/等等)文本作为字符串?我将偏移量作为标记化输出的一部分,但没有一个字符串可以应用它们。我可以根据偏移量重新生成字符串,并假设空间划分,但如果有办法从解析器本身获取数据,那就太好了。