我正在为我的语言添加tokenizer_exceptions
。我正在查看'gonna'
英语语言的示例,因此编写规则如下:
'т.п.': [
{ORTH: "т.", NORM: "тому", LEMMA: "тот"},
{ORTH: "п.", NORM: "подобное", LEMMA: "подобный"}
],
然后当我标记化时,我希望NORM
-规则的部分将在token.norm_
中(尽管没有任何关于Token.norm_
的文档)。但是相反,我在token.norm_
中看到ORTH
-部分,而在{NORM
-部分。在
那么Token.norm_
-成员是什么,NORM
-规则的一部分是什么?在
更笼统地回答这个问题:在spacyv1.x中,
NORM
主要用于提供令牌的“标准化”形式,例如,如果令牌文本“不完整”(如gonna
示例中),则使用全屈折形式,或是替代拼写。v1.x中规范的主要目的是使其作为.norm_
属性访问,以供将来参考。在然而,在v2.x,currently in alpha中,
NORM
属性变得更加相关,因为它也被用作模型中的一个特性。这使您可以将具有不同拼写的单词规范化为一种常见拼写,并确保这些单词接受相似的表示形式,即使其中一个在您的训练数据中不太常见。例如,英语中的美式和英式拼写,或者货币符号,它们都被规范化为$
。为了简化这一点,v2.0引入了一个新的语言数据组件norm exceptions。在如果您正在开发自己的语言模型,我绝对建议您查看v2.0alpha(现在已经非常接近第一个发布候选版本了)。在
您可以在
nlp.vocab.lex_attr_getters
中绑定任何函数,并且将为该词汇表条目计算该函数。每个标记都有一个指向其词汇表项的指针,因此它们都将引用此计算值。在您可以将这些词汇属性绑定到您想要的任何东西上。我不确定绑定在俄语中是如何工作的,但是您可以在源代码中更改它,也可以在运行时重置词法属性函数。在
相关问题 更多 >
编程相关推荐