【词性标注】采用隐马尔可夫模型(使用了3-gram和Good-Turing平滑方法),准确率93%...

该博客虽未补充具体内容,但分享了数据地址及完整代码,涉及Python、算法、NLP、深度学习和动态规划等信息技术领域内容。

博客内容有空了再补充。先贴代码。

数据地址:链接: https://pan.baidu.com/s/1-RbHi5xxBwJDG1gqAYUReQ 密码: rkup

完整代码如下:

import argparse
import time

parser = argparse.ArgumentParser()
parser.add_argument('--train', help='input a training file')
parser.add_argument('--test', help='input a testing file')
args = parser.parse_args()

class POSTagging():
    # ======输入文件处理=============
    def __init__(self, train_path, test_path):
        # 读取传入文件内容,生成训练及测试需要的数据格式
        train_lst, test_lst = [], []
        with open(train_path, 'r', encoding='utf8') as f1, open(test_path, 'r', encoding='utf8') as f2:
            train_lst, test_lst = f1.readlines(), f2. readlines()
            
        temp_train_lst = [train_line.strip() for train_line in train_lst]
        temp_test_lst = [test_line.strip() for test_line in test_lst]
        temp_train_sent, temp_test_sent = [], []
        
        self.train_sent_lst, self.test_sent_lst = [], []
        self.tags_cnt, self.words_cnt = 0, 0
        self.tag2num, self.num2tag = {}, []
        self.word2num = {}

        for i in range(len(temp_train_lst)):
            line = temp_train_lst[i]
            if line.split('/')[0] == '###':
                self.train_sent_lst.append(temp_train_sent)
                temp_train_sent = []
            elif line != '':
                temp_train_sent.append(line)
        if temp_train_sent != []:
            self.train_sent_lst.append(temp_train_sent)
        
        for i in range(len(temp_test_lst)):
            line = temp_test_lst[i]
            if line.split('/')[0] == '###':
                self.test_sent_lst.append(temp_test_sent)
                temp_test_sent = []
            elif line != '':
                temp_test_sent.append(line)
        if temp_test_sent != []:
            self.test_sent_lst.append(temp_test_sent)

    # =========计算概率矩阵==========
    def train(self):
        emission_cnt = {}
        trigram_cnt = {}
        self.all_tags = set()
        self.all_words = set()
        self.all_words.add('UN
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值