科技报告数据语料处理(关键词、中图分类名称)

科技报告语料处理

接着上次爬取到的科技报告数据进行处理【参考 https://www.cnblogs.com/rainbow-1/p/16725576.html】

为了建立科技报告的分类模型,现将其 关键字和中图分类名称进行汇总,作为原始语料库。

先前爬取的数据,存在数据格式不统一不规范的问题,比如分类名称为【数理科学与化学、数理科学和化学 分为了同一类】

经过简单处理后的完整数据(mysql和txt都有,包括本文中提到的原始语料资源)可以关注我的公众号【靠谱杨阅读人生】回复【科技报告】获取。

语料共计 359141 行。

1、标准表

分类字母序号+名称 tech_class.json

{
  "R": "医药、卫生",
  "TB": "一般工业技术",
  "Q": "生物科学",
  "O": "数理科学和化学",
  "S": "农业科学",
  "T": "工业技术",
  "TP": "自动化技术、计算机技术",
  "P": "天文学、地球科学",
  "TN": "无线电电子学、电信技术",
  "TG": "金属学与金属工艺",
  "TH": "机械、仪表工业",
  "TQ": "化学工业",
  "C": "社会科学总论",
  "X": "环境科学、安全科学",
  "TU": "建筑科学",
  "TS": "轻工业、手工业",
  "TK": "能源与动力工程",
  "TM": "电工技术",
  "TD": "矿业工程",
  "F": "经济",
  "G": "文化、科学、教育、体育",
  "TV": "水利工程",
  "U": "交通运输",
  "N": "自然科学总论",
  "TE": "石油、天然气工业",
  "TF": "冶金工业",
  "TJ": "武器工业",
  "V": "航空、航天",
  "B": "哲学、宗教",
  "TL": "原子能技术",
  "K": "历史、地理",
  "D": "政治、法律",
  "J": "艺术",
  "H": "语言、文字",
  "E": "军事",
  "Z": "综合性图书",
  "I": "文学",
  "A": "mks主义、ln主义、mzd思想、dxp理论"
}

仅分类名称 tech_name.txt

医药、卫生
一般工业技术
生物科学
数理科学和化学
农业科学
工业技术
自动化技术、计算机技术
天文学、地球科学
无线电电子学、电信技术
金属学与金属工艺
机械、仪表工业
化学工业
社会科学总论
环境科学、安全科学
建筑科学
轻工业、手工业
能源与动力工程
电工技术
矿业工程
经济
文化、科学、教育、体育
水利工程
交通运输
自然科学总论
石油、天然气工业
冶金工业
武器工业
航空、航天
哲学、宗教
原子能技术
历史、地理
政治、法律
艺术
语言、文字
军事
综合性图书
文学
mks主义、ln主义、mzd思想、dxp理论

分类名称+语料数字序号 tech_order_class.json

{
  "医药、卫生": "0",
  "一般工业技术": "1",
  "生物科学": "2",
  "数理科学和化学": "3",
  "农业科学": "4",
  "工业技术": "5",
  "自动化技术、计算机技术": "6",
  "天文学、地球科学": "7",
  "无线电电子学、电信技术": "8",
  "金属学与金属工艺": "9",
  "机械、仪表工业": "10",
  "化学工业": "11",
  "社会科学总论": "12",
  "环境科学、安全科学": "13",
  "建筑科学": "14",
  "轻工业、手工业": "15",
  "能源与动力工程": "16",
  "电工技术": "17",
  "矿业工程": "18",
  "经济": "19",
  "文化、科学、教育、体育": "20",
  "水利工程": "21",
  "交通运输": "22",
  "自然科学总论": "23",
  "石油、天然气工业": "24",
  "冶金工业": "25",
  "武器工业": "26",
  "航空、航天": "27",
  "哲学、宗教": "28",
  "原子能技术": "29",
  "历史、地理": "30",
  "政治、法律": "31",
  "艺术": "32",
  "语言、文字": "33",
  "军事": "34",
  "综合性图书": "35",
  "文学": "36",
  "mks主义、ln主义、mzd思想、dxp理论": "37"
}

基本思路,提取各个分类报告中的【关键词和中图分类名称】。用 \t 分隔 关键词和名称,关键词中间用英文逗号分隔。

实现效果如图:【序号是从0开始的 0 —> 医药、卫生】

科技报告数据语料处理(关键词、中图分类名称)

2、代码

2.1、data_clean.py

提取关键词和名称,保存到tech_all.txt文件(数据库如文首所示方式关注公众号自行获取)

import json

from nlp_demo.tech_clean.utils_mysql import query

def get_class_json():
    f_class = open ("../tech_data/tech_name.txt", "r", encoding='utf-8')
    res_dict = {}
    while True:
        line = f_class.readline()
        if line:
            # print(line)
            # 按\t分隔 分开名称和序号
            temp_str_list = line.split("\t")
            class_name = str(temp_str_list[0])
            class_num = str(temp_str_list[1].replace("\n",""))
            res_dict[class_name] = class_num
            # print("-------------------------")
        else:
            break
    print(json.dumps(res_dict,ensure_ascii=False))
    class_json = json.dumps(res_dict,ensure_ascii=False)
    with open("../tech_data/tech_order_class.json", "w", encoding='utf-8') as f:
        f.write(class_json)  # 自带文件关闭功能,不需要再写f.close()
    f_class.close()
    return

处理语料
"""
处理训练集数据格式【tech_train.txt】
关键词(使用英文逗号分隔) \t 分类号(从0开始)
"""
def get_conn():
"""
    :return: 连接,游标
"""
    # 创建连接
    conn = pymysql.connect(host="127.0.0.1",
                    user="root",
                    password="reliable",
                    db="tech",
                    charset="utf8")
    # 创建游标
    cursor = conn.cursor()  # 执行完毕返回的结果集默认以元组显示
    return conn, cursor

def close_conn(conn, cursor):
    if cursor:
        cursor.close()
    if conn:
        conn.close()
"""
"""
def query(sql,*args):
"""
    通用封装查询
    :param sql:
    :param args:
    :return:返回查询结果 ((),())
"""
    conn , cursor= get_conn()
    print(sql)
    cursor.execute(sql)
    res = cursor.fetchall()
    close_conn(conn , cursor)
    return res

Original: https://www.cnblogs.com/rainbow-1/p/16801120.html
Author: 靠谱杨
Title: 科技报告数据语料处理(关键词、中图分类名称)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/808743/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球