python nlp spacy避免将字符串传递给语言模型时将字符串标记化

时间:2019-07-13 14:52:24

标签: python nlp token spacy

我正在为一个NLP小项目使用spacy,并且观察到以下我不理解的行为

import spacy
nlp = spacy.load('en_core_web_sm')
mytext='this is a text #45,56,56i# to see what spacy (45,45) does with a car /45,56,67/.'
doc=nlp(mytext)
for token in doc:
    print(token)

将字符串#45,56,56i#转换为三个令牌,第一个:#,第二个:45,56,56i和第三个:#。 (45,45)也是一样,其中“(”成为自己的令牌,45,45是第二令牌,“)”是第三令牌。 但是字符串/ 45,56,67 /只是一个令牌(即符号“ /”不会与其余符号分开,而/ 45,56,67 /是一个令牌)

为什么会这样?哪些“符号”被认为是单词的一部分,哪些不是?但最重要的是,使令牌化与众不同的原因是什么?

以更通用的方式,将始终以相同的方式对符号的特定组合(字母数字,标点符号和空格字符)进行标记化,还是标记化取决于周围的标记?

在字符串之前和之后可以使用哪个符号,以便在传递给语言模型时不会将拆分器分成多个标记的方式“标记”该单词?

谢谢。

0 个答案:

没有答案