python自然语言处理:第4章 (自己动手的小例子)

借鉴3.3.2 节的实现,尝试自己实现HMM 进行词性标注(语料可选用1998年人民日报饲性标注集

(注意没有语料库//download.csdn.net/download/qq_26954059/12185434 意思一下 其实书中也有资源)

使用两个hmm模型,一个是基于字的hmm分词,c_hmm词性标注,不做解释,自己看代码注释,还有看书,对hmm模型理解,知道前向。后向,维特比,本代码只是单纯走了一遍语料库,并没有多次迭代求收敛,直接上代码

思路:无论分词还是词性标注,都是先找隐藏状态和可观察状态,在分词中每个字的标签为隐藏状态,字为可观察,而在词性标注时每个词语的词性为隐藏,词语为可观察

#-------------------------------------------------------------------------------
# Name:        module1
# Purpose:
#
# Author:      nkenen
#
# Created:     12/03/2020
# Copyright:   (c) nkenen 2020
# Licence:     
#-------------------------------------------------------------------------------
class HMM(object):
    def __init__(self):
        import os

        #用于存取算法中间结果,不同每次都训练
        self.model_file = 'data/hmm_model.pkl'
        self.model_c_file = 'data/hmm_c_model.pkl'
        #隐藏状态值集合
        self.state_list = ['B','M','E','S']

        self.charact_list = ['ag','a','ad','an','b','bg','c','

你可能感兴趣的:(自然语言处理)