您可以通过使用自己的替换spaCy的默认令牌生成器来做到这一点:
nlp.tokenizer = custom_tokenizer
其中
custom_tokenizer的函数将原始文本作为输入并返回一个
Doc对象。
您未指定如何获取令牌列表。如果您已经有一个使用原始文本并返回令牌列表的函数,则对其进行一些小的更改:
def custom_tokenizer(text): tokens = [] # your existing pre to fill the list with tokens # replace this line: return tokens # with this: return Doc(nlp.vocab, tokens)
请参阅文档上
Doc。
如果由于某种原因您不能执行此操作(也许您无权使用令牌化功能),则可以使用字典:
tokens_dict = {'Hello, world.': ['Hello', ',', 'world', '.']}def custom_tokenizer(text): if text in tokens_dict: return Doc(nlp.vocab, tokens_dict[text]) else: raise ValueError('No tokenization available for input.')无论哪种方式,都可以像第一个示例一样使用管道:
doc = nlp('Hello, world.')


