文本数据抽取经验总结

1、写一个覆盖大部分文档的规则;
2、写备用规则,定义备用变量,当主要规则抽取的字段为空时,启用备用变量;
3、按优先级排列抽取规则;
4、防止值覆盖,可以在赋值前判断变量是否为空,若非空,则不进行赋值操作;
5、写区间限制规则(Squeeze Theorem),用两条规则限制抽取的文本范围,比如行数;
6、多个类别抽取时,句子拼接操作放在单独的抽取函数里面,防止类间相互影响(一个类别需要句子拼接,另一个类别不需要,解耦)。
7、赋值前先用 if not ‘变量名’ 判空,防止值覆盖。(这点很重要)
8、字段拼接,注意拼接后句子是否通顺。
9、先从大处着手,提交初版结果
10、找问题,优化代码

说明:句子需要拼接的原因是 pdf 转 txt 时,有些句子被切断了。是否需要拼接要考虑大多数文本的情况(大局观),如果要拼接,建议写到具体的单一抽取函数里面去。最难的情况是同一类文档,有的字段需要拼接,有的不需要,这种就具体情况具体分析。如果600篇文档就一篇文档的抽取字段被切断了,可以忽略不计,大局观。

# 去除字段首尾的符号
# filter()函数去除列表中值为假的元素如【0,False,None,[],{},''】
# 固定字段+拼接字段
temp_str = u",".join(filter(None, [a, b, c]))
# temp_str = u",".join([a, b, c])
# 无法处理 a = ['a', '', 'd']    得到 a,,d
info = info_dict[u"c"] + info_dict[u"name"]+temp_str
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值