美文网首页NLP
SpaCy v2.0(六)实例 - 训练分析模型TAGGER

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

作者: Joe_Gao_89f1 | 来源:发表于2018-04-03 15:26 被阅读231次

    训练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

        本文链接:https://www.haomeiwen.com/subject/xoxchftx.html