具体学科下构建数据集进行命名实体识别的方案(整体步骤第三步)

项目场景:

目前粗糙的多行文本已经构建好,现在要做的事情是如何将这些非结构的文本,转换成命名体识别模型可以读取的结构化标签文本。为此非结构化文本形式是图一所示(这是之前两步的所得结果),目标数据集为图二所示。那么在这一步怎么整合成数据集将成为关键。
图一
图一:非结构化文本
图二
图二:目标结构化数据


单非结构文本转为单数据集

首先我我会将每一篇文章所得出的Txt(图一)放到一个文件夹中统一操作,标签分为三类B,I,O。B代表所需关键词开始,I所需关键词中间,O代表非关键词,而且默认为只能B开头加上I结尾,或者单个就一个B无I,但不能出现O后面出现I这种现象。为此,只要知道了这样规定的规定,按照一定的格式,写入表格就好。这里我是写入XLS当全部完成时转成CSV,另一个原因是XLS包,用法比CSV多,我更熟悉一点。为此这里将每一篇图一内容,全部转换后对应的图二内容。这里我也是偷懒用来standfordcorenlp的包来写词性,那这里又有一个疑问,为什么整体步骤第二步用的是NLTK新闻的包来写词性,为什么这就换了呢,其实只是很简单的原因,想做的复杂一点,也可以用NLTK来代替,我当时想着也是,如果都是一个标准,都错就是没错,那就是没错的,为此我才心安理得用了standfordcorenlp,代码如下:

import re
import xlwt
from stanfordcorenlp import StanfordCoreNLP
import os
osfile = []
dir = r"F:\pythonbert\demo\untitled1\extract\extracttxt"
for root, dirs, files in os.walk(dir):
    for file in files:
        if file != 'extract.py' and file != '__init__.py' and file !='split.py' and file !='Label.py' and file !='CSV.py':
            osfile.append(file)
for index in range(len(osfile)):
    nlp = StanfordCoreNLP('E:\stanford\stanford-corenlp-latest\stanford-corenlp-full-2021-01-09', lang='en')
    sentence = []
    key = []
    substance = []
    time = []
    location =[]
    Dict = []
    k = 0
    num = 0
    # 分字典存储
    with open(osfile[index], "r", encoding="utf-8") as f:
        lines = f.readlines()
        # 去除换行符
        result = ([x.strip
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

经常喝假酒的胡小臣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值