Nlp 空间标记器,添加标记器异常
嘿!我试图在使用spacy 2.02标记某些令牌时添加一个异常,我知道存在。tokenizer.add_special_case(),我在某些情况下使用它,但例如,像US$100这样的令牌,spacy会拆分为两个令牌 ('US$','SYM'),('100','NUM') 但我想像这样分成三部分,而不是对美元后的每个数字做一个特殊的处理,我想对每一个形式为美元数字的代币做一个例外 ('US','PROPN'),('$','SYM'),('800','NUM')) 我在spacy的文档中读到了关于标记器_异常的内容,但我不知道如何解决这个问题 我试着用 从spacy.lang.en.tokenizer\u异常导入tokenizer\u异常 还有spacy.util,它有一个update_exc()方法 有人可以发布一个完整的代码示例来说明如何做到这一点吗 哦,另一件事,我知道lang.en上的文件标记器_异常,已经有一些异常,比如在“i”“m”中拆分“i'm”,我已经对该部分进行了注释,但这不起作用。我不希望标记器拆分“我是”,我怎么也能这样做 谢谢解决方案是 解决办法是Nlp 空间标记器,添加标记器异常,nlp,tokenize,spacy,Nlp,Tokenize,Spacy,嘿!我试图在使用spacy 2.02标记某些令牌时添加一个异常,我知道存在。tokenizer.add_special_case(),我在某些情况下使用它,但例如,像US$100这样的令牌,spacy会拆分为两个令牌 ('US$','SYM'),('100','NUM') 但我想像这样分成三部分,而不是对美元后的每个数字做一个特殊的处理,我想对每一个形式为美元数字的代币做一个例外 ('US','PROPN'),('$','SYM'),('800','NUM')) 我在spacy的文档中读到了关于
def custom_en_tokenizer(en_vocab):
prefixes = list(English.Defaults.prefixes)
prefixes.remove('US\$') # Remove exception for currencies
prefixes.append(r'(?:US)(?=\$\d+)') # Append new prefix-matching rule
prefix_re = util.compile_prefix_regex(tuple(prefixes))
suffix_re = util.compile_suffix_regex(English.Defaults.suffixes)
infix_re = util.compile_infix_regex(English.Defaults.infixes)
return Tokenizer(en_vocab,
English.Defaults.tokenizer_exceptions,
prefix_re.search,
suffix_re.search,
infix_re.finditer,
token_match=None)
> tokenizer = custom_en_tokenizer(spacy.blank('en').vocab)
> for token in tokenizer('US$100'):
> print(token, end=' ')