訓(xùn)練Part-of-speech Tagger
在example/training中有spaCy提供的幾個(gè)模型訓(xùn)練樣例烫堤,直接拷貝一個(gè)train_tagger.py到spaCy的根目錄,然后修改代碼中的訓(xùn)練語(yǔ)料管引,修改為中文訓(xùn)練語(yǔ)料:
TAG_MAP = {
??? 'N': {'pos': 'NOUN'},
??? 'V': {'pos': 'VERB'},
??? 'J': {'pos': 'ADJ'}
}
……
TRAIN_DATA = [
??? ("我喜歡紅蘋(píng)果",? {'tags': ['N', 'V', 'J', 'N']}),
??? ("吃藍(lán)色漢堡",? {'tags': ['V', 'J', 'N']})
]
可以看到在樣例中的TAG_MAP只設(shè)置了三個(gè)詞性名詞邻吭,動(dòng)詞探遵,形容詞淌喻。這個(gè)只需按照Universal POS tags?添加設(shè)定就好盛险。
TAG_MAP簡(jiǎn)單說(shuō)明:
'N': {'pos': 'NOUN'} 其中’N’:要標(biāo)注的詞性名稱瞄摊,可以自定義。{'pos': 'NOUN'}苦掘,UP tags中的標(biāo)準(zhǔn)詞性POS换帜。
TRAIB_DATA簡(jiǎn)單說(shuō)明:
例句:我喜歡紅蘋(píng)果。
例句首先通過(guò)結(jié)巴進(jìn)行分詞鹤啡,分詞結(jié)果為:我? 喜歡? 紅? 蘋(píng)果惯驼。接下來(lái)就要為各分詞標(biāo)注詞性:("我喜歡紅蘋(píng)果", {'tags': ['N', 'V', 'J', 'N']})。
運(yùn)行
python train_tagger.py -mzh_model?-o zh_model
test_text = "我喜歡黑色襯衫递瑰。"
輸出結(jié)果為:
Tags [('我', 'N', 'NOUN'), ('喜歡', 'V', 'VERB'), ('黑色', 'J', 'ADJ'), ('襯衫', 'N', 'NOUN')]
在zh_model目錄中可以看到生成了tagger目錄祟牲,目錄結(jié)構(gòu)如下:
zh_model
└──tagger
??? ├──cfg
??? ├──model
??? └──tag_map
到此,中文的tagger模型就訓(xùn)練完成了抖部,對(duì)于精度提升说贝,需要準(zhǔn)備至少幾百條標(biāo)注語(yǔ)料才能達(dá)到一定的好結(jié)果,準(zhǔn)備好語(yǔ)料后重新運(yùn)行訓(xùn)練代碼即可慎颗。
文中完整代碼可參考?https://github.com/jeusgao/spaCy-new-language-test-Chinese