nmt模型源文本词项序列_文本半自动标注-tt2a训练语料生成

从今天开始进入半自动标注实践部分。为了防止到最后没有人工标注,所以考虑做两手准备,第一手根据NB输出的各类目概率通过最大概率比率法得到候选类目,根据候选类目数占总类目数比率决定是否交由人工标注。第二手随着EM-NB的实验,逐渐丰富标注语料,构建仅可能泛化的模型,这期间肯定需要找各种标注语料,同时总结类关联词规则。

进入今天的主题。今天我们对tt2a语料进行整理。

1. tt2a语料各类目下文本数量

e2e4b020d67ac35477b814bed2ecf075.png

20732f836e2848b8de70d4f000621b31.png

2. tt2a语料类目名称与系统类目名称映射关系表

该表通过人工查阅语料后手工整理。只对与系统类目名称有关联的类目进行映射,其他类目则不进行处理(即滤掉没有映射关系的类目下数据)。

3. tt2a训练语料生成

新增代码,将tt2a语料按照上表中映射关系转成具有本系统类目名称的语料。代码如下

#coding:utf-8
"""

"""
import codecs

category_map_dict = dict()
with codecs.open('category_map.txt', 'rb', 'utf-8', 'ignore') as infile:
    for line in infile:
        line = line.strip()
        if line:
            old_category_name, new_category_name = line.split(u't')
            category_map_dict[old_category_name] = new_category_name

# 输出文件名需要根据实际文教修改
outfile = open('train_data.txt', 'wb')
# 输入文件名需要根据实际文件修改
with codecs.open('../data/tt_2a.txt', 'rb', 'utf-8', 'ignore') as infile:
    for line in infile:
        line = line.strip()
        if line:
            try:
                category_name, text = line.split(u't')
            except ValueError:
                print("ValueError: not enough values to unpack (expected 2, got 1)", line)
                continue
            # 类目名称中不可以含有/
            if category_name.find(u"/") != -1:
                print("error: category_name illeagal ", line)
                continue
            # 类目名称中不可以含有
            if category_name.find(u'') != -1:
                print("error: category_name illeagal ", line)
                continue
            if category_name in category_map_dict:
                out_str = u'%st%sn' % (category_map_dict[category_name], text)
                outfile.write(out_str.encode('utf-8', 'ignore'))

outfile.close()

以上为今天所处理的内容,本想着能用前边写的特征选择方法来看看tt2a语料中各类目的top10关键词,根据关键词来确定哪些类目需要映射。但是,之前在专栏中所写的特征选择方法运行了3个小时没有结果,说明代码的时间复杂度太大了,毕竟每个类目中每个词项都要遍历一整遍语料,整个语料44万条标题。当然,可以采用扫一遍语料的方法来计算出每个词项的的N00,N01,N10,N11,不过这个过程懒得自己写代码了,今天看sklearn中应该是特征选择的类,后续会尝试用一下,这样的话,之前的特征选择示例代码也就不要改动了,就把那些代码作为一种演示好了。

最近各语言大学都开始搞起人工智能了,乘风破浪吧,前几年的SVM以及那几个序列模型已经把语言学的人挤得没啥话语权了,到了16年深度学习出来以后彻底没话了。只要一回归语言学,估计就避免不了要用规则。让他们掐吧,要是真把效果提升到100%了,那我们这些所谓的“算法”工程师也就离回家不远了,不过大家应该不用太担心,因为基本上10年内不太可能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值