SpaCy v2.0(六)实例 - 训练分析模型TAGGER

训练Part-of-speech Tagger

在example/training中有spaCy提供的几个模型训练样例,直接拷贝一个train_tagger.py到spaCy的根目录,然后修改代码中的训练语料,修改为中文训练语料:

TAG_MAP = {

    'N': {'pos': 'NOUN'},

    'V': {'pos': 'VERB'},

    'J': {'pos': 'ADJ'}

}

……

TRAIN_DATA = [

    ("我喜欢红苹果",  {'tags': ['N', 'V', 'J', 'N']}),

    ("吃蓝色汉堡",  {'tags': ['V', 'J', 'N']})

]

可以看到在样例中的TAG_MAP只设置了三个词性名词,动词,形容词。这个只需按照Universal POS tags 添加设定就好。

TAG_MAP简单说明:

'N': {'pos': 'NOUN'} 其中’N’:要标注的词性名称,可以自定义。{'pos': 'NOUN'},UP tags中的标准词性POS。

TRAIB_DATA简单说明:

例句:我喜欢红苹果。

例句首先通过结巴进行分词,分词结果为:我  喜欢  红  苹果。接下来就要为各分词标注词性:("我喜欢红苹果", {'tags': ['N', 'V', 'J', 'N']})。

运行

python train_tagger.py -mzh_model -o zh_model

test_text = "我喜欢黑色衬衫。"

输出结果为:

Tags [('我', 'N', 'NOUN'), ('喜欢', 'V', 'VERB'), ('黑色', 'J', 'ADJ'), ('衬衫', 'N', 'NOUN')]

在zh_model目录中可以看到生成了tagger目录,目录结构如下:

zh_model

└──tagger

    ├──cfg

    ├──model

    └──tag_map

到此,中文的tagger模型就训练完成了,对于精度提升,需要准备至少几百条标注语料才能达到一定的好结果,准备好语料后重新运行训练代码即可。

文中完整代码可参考 https://github.com/jeusgao/spaCy-new-language-test-Chinese

你可能感兴趣的:(SpaCy v2.0(六)实例 - 训练分析模型TAGGER)