Tokenize 如何在Spacy中用连字符标记单词

Tokenize 如何在Spacy中用连字符标记单词,tokenize,spacy,Tokenize,Spacy,我想使用spacy将bs it标记为[“bs”,“it”],就像我在rasa中使用它一样。我从中得到的输出是[“bs it”]。有人能帮我吗?你可以在spaCy的标记器中添加自定义规则。spaCy的标记器将连字符的单词视为单个标记。为了改变这一点,您可以添加自定义标记化规则。在您的情况下,您希望标记一个中缀,即出现在两个单词之间的东西,通常是连字符或下划线 重新导入 进口空间 从spacy.tokenizer导入标记器 中缀=重新编译(r'[-]') def自定义_标记器(nlp): 返回标记器

我想使用spacy将bs it标记为[“bs”,“it”],就像我在rasa中使用它一样。我从中得到的输出是[“bs it”]。有人能帮我吗?

你可以在spaCy的标记器中添加自定义规则。spaCy的标记器将连字符的单词视为单个
标记
。为了改变这一点,您可以添加自定义标记化规则。在您的情况下,您希望标记一个
中缀
,即出现在两个单词之间的东西,通常是连字符或下划线

重新导入
进口空间
从spacy.tokenizer导入标记器
中缀=重新编译(r'[-]')
def自定义_标记器(nlp):
返回标记器(nlp.vocab,中缀finditer=infix\u re.finditer)
nlp=spacy.load(“en_core\u web\u sm”)
nlp.tokenizer=自定义\标记器(nlp)
doc=nlp(“bs it”)
打印([t.text表示文档中的t])
输出

['bs', '-', 'it']