教育领域中学数学NER数据集

       信息技术的发展与进步促使“互联网+教育”成为目前教育领域的研究热点,教育教学的各个环节都在向智能化的方向发展。中学数学的命名实体识别任务的研究,可为后续构建中学数学学科知识图谱及自动问答等任务奠定基础,进而满足中学生个性化知识获取的需求,助力新型智能化教育体系的构建。

       相对于其他领域来讲,教育领域尤其是学科方面缺乏公开的数据集,故本人及团队从数据筛选到清洗以及标注,构建了中学数学实体识别数据集,数据量仍在充实和标注中,大家可以自由下载,历经磨难与痛苦,本着"授人以鱼不如授人以渔"的态度,本人也将数据构建过程和相关代码进行分享,如果本文提供的开源数据集对您的研究有很大帮助,请在引文引用本博文。

数据相关事项:

一、数据来源于百度文库、百度百科、维基百科等包含学科知识点的语句,以及人教版课本中关于知识点、例题描述等语句,整理成文档部分截图如下图所示。

二、文件中包含训练集train,验证集dev以及测试集test,全部按照BIO标注策略进行标注,数据构建过程如下。

1.文档处理

       所有语句文档需要进行拆分,每一句话独立成txt,拆分代码如下:

data = []
for line in open("C:\\Users\\Dell\\Desktop\\math\\all.txt","r",encoding='utf-8-sig'): #设置文件对象并读取每一行文件
    data.append(line)
    continue

# 创建一个txt文件生成函数,文件名为name + '.txt',并向文件写入msg

def text_create(name, msg):
    desktop_path = "C:\\Users\\Dell\\Desktop\\mathtxt\\"  # 新创建的txt文件的存放路径
    full_path = desktop_path + name + '.txt'  # 也可以创建一个.doc的word文档
    file = open(full_path, 'w',encoding="utf-8")
    file.write(msg)   #msg也就是下面的Hello world!
    file.close()

#循环将data里的每一个元素写入不同的txt文档
for i in data:
    text_create(str(data.index(i)), i)
    continue

2.标注

       所使用标注软件为精灵标注助手,选定标注文件夹(包含所有语句的txt文件夹),定义好实体即可进行标注,导入截图如下:

       标注示意图如下:

  3.导出

       标注后,导出格式选择brat-ann,导出后的文本格式截图如下。

4.格式转换

       ann文件需要转换成BIO格式进行训练,转化代码如下。

def bratann2BIO_format(text, ann_str, fstream):
    ann_list = ann_str.strip().split('\n')
    label = ['O' for _ in range(len(text))]
    for i, line in enumerate(ann_list):
        try:
            T, typ, word = line.strip().split('\t')
            t, s, e = typ.split()
            s, e = int(s), int(e)
            label[s] = 'B-' + t
            while s < e - 1:
                s += 1
                label[s] = 'I-' + t
        except:
            continue

    for t, l in zip(list(text), label):
        line = ' '.join([t, l])  # 可以使用空格代替
        fstream.write(line)
        fstream.write('\n')
    fstream.write('\n')

def gen_NER_training_data():
    # 设置标注文件所在文件夹目录
    root_dir = 'data/outputs'
    # 设置训练样本输出文件路径
    stream = open('data/out/test.txt', 'a+', encoding='utf8')
    file_list = glob.glob(root_dir + '/*.ann')
    for ann_path in file_list:
        ann_path = ann_path.replace('\\', '/')
        txt_path = ann_path.replace('/outputs', '').replace('ann', 'txt')
        try:
            ft = open(txt_path, 'r', encoding='utf8')
            text = ft.read().strip()
            ft.close()
            fa = open(ann_path, 'r', encoding='utf8')
            ann = fa.read().strip()
            fa.close()
            if ann == '':
                continue
            bratann2BIO_format(text, ann, stream)
        except Exception as e:
            print(ann_path, e)

    stream.close()

5.实体描述

       共包含两类实体:KNOW和PRIN,其中KNOW表示客观概念类,比如“集合”、“函数”等;PRIN表示法则定理类,比如“辗转相除法”、“韦达定理”等。部分数据展示如下图:

、数据下载

       数据压缩包已于文章顶部展示,内含readme文件解说了文件的数据量和划分标准,数据可以直接拿来训练和测试。

       注:因均为手工标注,虽然经过了筛查和检验,部分数据可能仍出现标注错误问题,读者可自行修改,也希望你留言告知我,我将做出进一步调整。

       非常感谢本次项目任老师对我的指导,以及师弟师妹们在本次项目中做出的贡献,尤其是昌霖师弟,每天与我忙到寝室门禁才结束工作,希望本博文可以给您的技术研究带来帮助。

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 初中数学数据集 nlp 指的是利用自然语言处理技术构建出的初中数学题目数据集。NLP 又称自然语言处理,是机器学习和人工智能等领域中的一个分支,目的是让计算机理解和处理自然语言。而初中数学则是初中教育中重要的一门学科,涵盖了代数、几何、概率统计等多个方面。 构建初中数学数据集的目的是为了方便研究者进行数学教育和学习相关算法的实验。通过对初中数学题目的收集和精细标注,可以获得高质量的数据集,从而方便机器学习模型进行训练。同时,初中数学数据集也可以用于评估模型的表现,进一步促进数学教育领域的研究和发展。 初中数学数据集的内容可以包括代数、几何、概率统计等多个方面的题目,例如线性方程、平面图形、三角函数、正方形、三位数之差等。此外,在构建数据集时还需要注意题目的语言表述,需要有清晰、规范的语言描述,以确保数据集的有效性和可靠性。 总之,初中数学数据集 nlp 的构建对于推动数学教育和机器学习等领域的发展都有着重要的意义和作用。 ### 回答2: 初中数学数据集 nlp 是一个结合了数学、自然语言处理和机器学习领域的研究方向。数据集是指在进行机器学习和深度学习算法模型训练时所使用的样本集合,而初中数学就是我们日常生活中学习的数学知识,包括代数、几何、概率等多个方面。 在初中数学领域数据集可以用来训练机器学习模型来解决数学问题,如数学公式推导、错题分析和智能算题等应用。这些数据集可以来自于历史资料、教科书、学生答题和教师提供的试题等,也可以通过自然语言处理技术将数学知识表述成结构化的形式。 而自然语言处理技术则可以将自然语言表述转化成计算机可以理解和处理的形式,来实现对数学题目和文本的理解,从而为机器学习模型提供更加丰富的信息。经过训练的机器学习模型将能够对初中数学题目进行深入分析和解答,提高学习效率和素质,为学生提供更好的学习体验。 综上所述,初中数学数据集和自然语言处理技术结合起来,将会有更广泛的应用和研究方向,是未来人工智能和教育行业的发展方向。 ### 回答3: 初中数学数据集nlp是指将自然语言处理技术应用在初中数学相关的数据集上的一种方法。通过将初中数学相关的题目、习题、教材等文本内容进行分词、词性标注、句法分析等处理,形成结构化的数学语言数据集,进而对其进行分析和应用。 初中数学数据集nlp的意义在于提高初中数学学习和教学效率。通过将初中数学相关的文本内容进行结构化处理,可以更好地对数学知识进行理解和掌握。同时,也为教师提供了更丰富的教学资源,能够更快地找到合适的教材和练习题,提高教学质量。 初中数学数据集nlp的实现需要使用自然语言处理技术,包括分词、句法分析、关键词提取等技术。在实现过程中需要考虑数学语言的特殊性,比如符号的处理、语言的逻辑性等问题。 总之,初中数学数据集nlp是一种创新的教育技术,可以帮助学生更好地掌握初中数学知识,也为教师提供了更丰富的教学资源。未来随着技术的不断发展,初中数学数据集nlp也将发挥更大的作用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值