当前位置:   article > 正文

具体学科下构建数据集进行命名实体识别的方案(整体步骤第三步)_表格数据如何用于命名实体识别

表格数据如何用于命名实体识别

项目场景:

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


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

首先我我会将每一篇文章所得出的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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/490543
推荐阅读
相关标签
  

闽ICP备14008679号