我想用StanfordNLP用西班牙语标记一个文本,我的问题是该模型会拆分任何与模式匹配的单词" \ d * s" (一个由数字组成的单词,以" s"结尾)在两个标记中。如果单词以另一个字母结束,例如" e",则标记生成器仅返回一个标记。
例如,给出句子: " Vendo iPhone 5s es libre de fabrica esta nuevo sin usar。"
标记器返回文本" iPhone 5s"三个代币:" iPhone"," 5"和" s"。
有人知道如何避免这种行为?
答案 0 :(得分:2)
我想你正在使用SpanishTokenizer而不是PTBTokenizer。
SpanishTokenizer主要基于FrenchTokenizer,PTBTokenizer(英文)也是如此。
我用你的句子运行这三个,看来PTBTokenizer会为你提供你需要的结果,而不是其他结果。
由于它们都是确定性标记符,我认为你无法避免这个问题,因为在我看来,问题不在启发式部分,而这部分应该在确定性之后运行。
可能的解决方法可能是使用WhitespaceTokenizer,只要您不介意使用标点符号或其他语法规则。