【实验记录与总结】名称+数量+地理位置实体提取

  • 模型:出于对所用数据的考虑,本实体关系提取实验未使用联合抽取模型,而是分别开展实体提取与关系提取部分。实体提取部分,使用Albert+BiLSTM+CRF模型。
  • 数据:信息丰富的多源文本数据(主要为亚洲象监测员发布的朋友圈 + 少量新闻/微博数据)

数据准备

数据标注

  • 抽取数据以标注:在WPS-Excel中,每隔3行抽取一条数据,用于标注,使用以下语句实现:
=IF(MOD(ROW()-2,3)=0,A3,"")
数据随机抽取

  • “BIO”数据标注:将数据化为每字一行(Excel而非WPS:两端对齐,填充),手动标注。注意单字后的标点符号,可以使用“分列”功能快速删除。

训练/测试/验证标注数据划分

  • 按照6:2:2比例,将标注数据划分为训练集、测试集与验证集。

训练/测试/验证标注数据放至相应文件

  • 即训练数据放入.train,测试数据放入.test,验证数据放入.dev
  • 注意:① 各条数据之间需一个换行符,对应下下述代码:
 for c in l.split('\n'):
  • ②数据最后应有两个换行符,对应下述代码:
for l in f.split('\n\n'):

标注数据格式

模型构建、训练与评估

模型应用

  • 关键代码如下:
model.load_weights('…….weights')
#NER = NamedEntityRecognizer(trans=K.eval(CRF.trans), starts=[0], ends=[0])

r = open("……result.txt", 'w')
with open("……all data.txt", 'r', encoding='utf-8') as tt:
    content = tt.readlines()
for line in content:
    ner = NER.recognize(line)
    print(ner, file=r)


程序报错及解决

编码问题:'gbk' codec can't encode character '\u3cd5' in position 34: illegal multibyte sequence

###模型应用时,调用以下程序:
model.load_weights('D:\Asian elephant\毕业\地理位置提取\代码\gao A_geography_NER\A_geography_NER\\last_model.weights')
r = open("…….txt", 'w',encoding='utf-8')
with open("…….txt", 'r') as tt: ###症结所在
    content = tt.readlines()
for line in content:
    ner = NER.recognize(line)
    print(ner, file=r)

值错误:ValueError: not enough values to unpack (expected 2, got 1)

char, this_flag = c.split(' ') #以空格分隔,char为前面汉字,this_flag为后面标注字母
  • 可能的原因:各条数据之间应为一个换行符,但误写为一个空格。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值