我的英文文本中包含“.NET”一词。使用标准的英语标记器,这会被标记化为两个标记“。”和“NET”。
由于.NET是有效的单词/标记,这是标记化模型中的问题吗?作为比较,Python NLTK正确地标记了这一点:
>>> nltk.word_tokenize('The .NET CLR is cool.')
['The', '.NET', 'CLR', 'is', 'cool', '.']
其次,鉴于这是CoreNLP中当前的标记化状态,最好的解决方法是什么?我最初的想法是在tokenizer选项上使用invertible=true
,然后创建一个UntokenizeAnnotator
,它使用令牌注释来查找两个令牌的实例“。”和“NET”与适当的前/后信息,并将它们组合在一起。这似乎是一个真正的黑客。
或许我应该弄清楚如何重新训练标记器模型?
更新:如上所述,我使用UntokenizeAnnotator
解决了这个问题。但是,我仍然对这个问题更优雅的答案感兴趣。