【发布时间】:2019-10-30 12:07:59
【问题描述】:
我最近在 Spacy 中为印地语训练了一个词性模型。我得到了已经训练过的模型,但是在分析任何文本时,任何标记的.pos_ 属性始终指向X。细粒度的标签 .tag_ - 这是模型训练时使用的标签 - 不过是正确的。
在spacy/lang/hi/tag_map.py 文件中可以找到这种细粒度标签和“通用”标签(动词、名词、ADJ 等)之间的映射。
Lemma यूरोप, Lemmatized: False, POS: X, TAG: NNP
Lemma के, Lemmatized: False, POS: X, TAG: PSP
Lemma जिन, Lemmatized: False, POS: X, TAG: DEM
Lemma राजनीतिक, Lemmatized: False, POS: X, TAG: JJ
Lemma दलों, Lemmatized: False, POS: X, TAG: NN
Lemma को, Lemmatized: False, POS: X, TAG: PSP
Lemma व्यवस्था, Lemmatized: False, POS: X, TAG: NN
Lemma ,, Lemmatized: False, POS: SYM, TAG: SYM
Lemma राजनेताओं, Lemmatized: False, POS: X, TAG: NN
Lemma और, Lemmatized: False, POS: X, TAG: CC
Lemma मीडिया, Lemmatized: False, POS: X, TAG: NN
Lemma द्वारा, Lemmatized: False, POS: X, TAG: PSP
Lemma अति, Lemmatized: False, POS: X, TAG: INTF
Lemma दक्षिणपंथी, Lemmatized: False, POS: X, TAG: NN
Lemma कहा, Lemmatized: False, POS: X, TAG: VM
Lemma जाता, Lemmatized: False, POS: X, TAG: VAUX
Lemma है, Lemmatized: False, POS: X, TAG: VAUX
Lemma (, Lemmatized: False, POS: SYM, TAG: SYM
Lemma परन्तु, Lemmatized: False, POS: X, TAG: CC
Lemma मेरी, Lemmatized: False, POS: X, TAG: PRP
Lemma ओर, Lemmatized: False, POS: X, TAG: NST
Lemma से, Lemmatized: False, POS: X, TAG: PSP
Lemma सभ्यतावादी, Lemmatized: False, POS: X, TAG: NNP
Lemma कहा, Lemmatized: False, POS: X, TAG: VM
Lemma जाता, Lemmatized: False, POS: X, TAG: VAUX
Lemma है, Lemmatized: False, POS: X, TAG: VAUX
Lemma ), Lemmatized: False, POS: SYM, TAG: SYM
Lemma उनकी, Lemmatized: False, POS: X, TAG: PRP
Lemma आलोचना, Lemmatized: False, POS: X, TAG: NN
Lemma उनकी, Lemmatized: False, POS: X, TAG: PRP
Lemma भूलों, Lemmatized: False, POS: X, TAG: NN
Lemma और, Lemmatized: False, POS: X, TAG: CC
Lemma अतिवादिता, Lemmatized: False, POS: X, TAG: NN
Lemma के, Lemmatized: False, POS: X, TAG: PSP
Lemma कारण, Lemmatized: False, POS: X, TAG: PSP
Lemma की, Lemmatized: False, POS: X, TAG: VM
Lemma जाती, Lemmatized: False, POS: X, TAG: VAUX
Lemma है|, Lemmatized: False, POS: X, TAG: NNPC
调查了一下我发现.pos_有这个X值的原因是因为在生成的lang_model/tagger/tag_map二进制文件中,它的所有键都指向101,这是分配的“代码”到词性X,即Other。
我推断它正在生成指向101 的键,因为没有关于它应该如何将每个提供的标签从数据集映射到“通用”标签的信息。问题是,我可以在我的Hindi(Language) 类的定义中提供一个tag_map.py,但是当通过管道传递文本时,它最终将使用由输出创建的tagger/ 目录中定义的标记映射train 命令。
这是一个链接,可以澄清我在解释什么:https://universaldependencies.org/tagset-conversion/hi-conll-uposf.html
第一列的第一项(CC、DEM、INTF 等)是提供给模型的。通用标签是第二列中的标签。
我的问题是,我应该在哪里定义 tag_map 以覆盖spacy train 命令生成的那个?
【问题讨论】:
标签: spacy part-of-speech