1、要预处理xml文件,解决docs,url,content标签问题。主要代码是deal_label.py 存入数据文件夹是sougou_label_after

SogouCS.reduced:存放原始的txt;
sougou_label_after:解决docs,url,content标签问题
import os
# 预处理xml文件,解决docs,url,content标签问题
def file_fill(file_dir,half_dir):# 查看half_dir文件夹下的文件夹和文件目录for root, dirs,files in os.walk(file_dir):# 判断是否存在half_dir,如果没有则创建if not os.path.exists(half_dir):os.makedirs(half_dir)for f in files:tmp_dir = half_dir+'\\'+ftext_init_dir = file_dir+'\\'+f# 遍历文件夹下的每一篇xml文件with open(text_init_dir, 'r', encoding='gb18030') as source_file:start,end = '<docs>\n', '</docs>'line_content = source_file.readlines()# 在目标文件夹中创建新文件保存预处理后的文件with open(tmp_dir, 'w+', encoding='utf-8') as handle_file:# 添加'<docs>'头标签handle_file.write(start)for line in line_content:# 处理url中的‘&’符号text = line.replace('&', '&amp;')# 添加'</docs>'头标签handle_file.write(text)handle_file.write(end)
if __name__ == '__main__':file_dir = r'E:\sssss\SogouCS.reduced'     #原始文件夹half_dir = r'E:\sssss\sougou_label_after'  # 修改格式和符号生成的文件夹   无需自己手动建文件夹file_fill(file_dir, half_dir)     #将选好的文件进行加上<docs>和</docs>,并修改&这个符号

2、部分样本函数获取,同时随机取去训练数据和测试数据。主要代码是data_train_test.py 存入数据文件夹分别为train_choice , test_choice

import os, random# 部分样本获取函数
def choice_files(half_dir,choice_dir_train,choice_dir_test,n,m):if not os.path.exists(choice_dir_train):os.makedirs(choice_dir_train)if not os.path.exists(choice_dir_test):os.makedirs(choice_dir_test)for _,_,files in os.walk(half_dir):file_list_train = random.sample(files, n)   #训练数据去随机的n个文件for file_choice in file_list_train:files.remove(file_choice)file_list_test = random.sample(files, m)    #测试数据取随机的m个文件for file in file_list_train:with open(half_dir+'\\'+file, 'r', encoding='utf-8') as f1_train:doc_train = f1_train.read()path = choice_dir_train+'\\'+filewith open(path, 'w+', encoding='utf-8') as f2_train:f2_train.write(doc_train)for file in file_list_test:with open(half_dir+'\\'+file, 'r', encoding='utf-8')as f1_test:doc_test = f1_test.read()path = choice_dir_test +'\\'+filewith open(path, 'w+', encoding='utf-8') as f2_test:f2_test.write(doc_test)# print(file_list_train)# print(file_list_test)return file_list_train, file_list_testif __name__ == '__main__':# 随机抽取10个文件进行深加工half_dir = r'E:\sssss\sougou_label_after'choice_dir_train = r'E:\sssss\train_choice'choice_dir_test = r'E:\sssss\test_choice'file_list_train, file_list_test = choice_files(half_dir, choice_dir_train, choice_dir_test, 10, 5)

3、提取文档文本内容,并且根据url将文本分好类.主要代码是data_content.py 存入数据文件夹是data

import os
from xml.dom import minidom
from urllib.parse import urlparse# 检查url对应的文章是否在分类字典中
def check_class(url_lb,labels):if url_lb in labels:return Truereturn Falsedef file_read(half_dir, labels, path):for _, _, files in os.walk(half_dir):for f in files:filename = half_dir + '\\' + fdoc = minidom.parse(filename)      #加载读取xml文件root = doc.documentElement         #获取xml节点属性值claimtext = root.getElementsByTagName('content')   #获取xml节点对象集合claimurl = root.getElementsByTagName('url')for ind in range(len(claimurl)):if claimtext[ind].firstChild == None:continueurl = urlparse(claimurl[ind].firstChild.data)url_lb = url.hostname.strip().split('.')[0]# 建立url和类别的映射字典if check_class(url_lb, labels):if not os.path.exists(path):os.makedirs(path)if not os.path.exists(path + './' + labels[url_lb]):os.makedirs(path + './' + labels[url_lb])file_name = path + './' + labels[url_lb] + './' + "{}.txt".format(labels[url_lb])with open(file_name, "a+", encoding='utf-8') as file_in:file_in.write(claimtext[ind].firstChild.data + '\n')if __name__ == '__main__':labels = {'auto': '汽车', 'it': '互联网', 'health': '健康','sports': '体育','travel': '旅游', 'learning': '教育', 'career': '职业','cul': '文化','mil': '军事', 'house': '房产', 'yule': '娱乐','women': '女人','media': '媒体', '2008': '奥运','business': '商业'}half_dir = r'E:\sssss\train_choice'path = r'E:\sssss\data\data_train'  # 新创建的文件夹,主要是放分好类的文件file_read(half_dir, labels, path)  # 将选好的文件进行纯文本提取和分类存储half_dir = r'E:\sssss\test_choice'path = r'E:\sssss\data\data_test'    #新创建的文件夹,主要是放分好类的文件file_read(half_dir, labels, path)     # 将选好的文件进行纯文本提取和分类存储

转载于:https://www.cnblogs.com/ming-jing/p/10775393.html

解析搜狗实验室精简版数据相关推荐

  1. 大数据Hive集成python分析框架—搜狗实验室(用户查询日志)—电影评分分析

    一.Spark 大数据分析框架 1.1 数据结构 1.2 SQL语句简介 二.搜狗实验室(用户查询日志)数据分析 2.1获取数据集并初步分析: 2.2 创建数据库/表--导入数据分析 三.电影评分分析 ...

  2. ToDesk 精简版相关数据删除

    缘由  由于一些个人原因需要使用ToDesk工具被远程连接,为了省事个人便下载了精简版的,使用完后便要进行卸载,找遍所有应用都没有发现,最后发现精简版本身就是一个可执行程序,不过在查找ToDesk安装 ...

  3. 大规模分布式存储系统:原理解析与架构实战 (大数据技术丛书) - 电子书下载 -(百度网盘 高清版PDF格式)...

    大规模分布式存储系统:原理解析与架构实战 (大数据技术丛书)-杨传辉 在线阅读                   百度网盘下载(89hy) 书名:大规模分布式存储系统:原理解析与架构实战 (大数据技 ...

  4. 搜狗排名检测PHP,搜狗实验室

    介绍: 搜索引擎查询日志库设计为包括约1个月(2008年6月)Sogou搜索引擎部分网页查询需求及用户点击情况的网页查询日志数据集合.为进行中文搜索引擎用户行为分析的研究者提供基准研究语料 格式说明: ...

  5. 搜狗搜索php,搜狗实验室

    介绍: 搜索引擎查询日志库设计为包括约1个月(2008年6月)Sogou搜索引擎部分网页查询需求及用户点击情况的网页查询日志数据集合.为进行中文搜索引擎用户行为分析的研究者提供基准研究语料 格式说明: ...

  6. 微信小程序实战之百思不得姐精简版

    为什么80%的码农都做不了架构师?>>>    微信小程序基本组件和API已撸完,总归要回到正题的,花了大半天时间做了个精简版的百思不得姐,包括段子,图片,音频,视频,四个模块.这篇 ...

  7. hive 简单操作搜狗实验室的词频文件

    1:下载搜狗实验室的词频文件  http://www.sogou.com/labs/dl/w.html [jifeng@jifeng02 ~]$ wget http://download.labs.s ...

  8. divcss布局模板代码_(带手机版数据同步)房产门户企业织梦模板 房地产楼盘网站源码下载...

    模板名称:(带手机版数据同步)房产门户企业织梦模板 房地产楼盘网站源码下载 本套织梦模板采用织梦最新内核开发的模板,这款模板使用范围广,不仅仅局限于一类型的企业,房产门户.房地产楼盘类的网站都可以用该 ...

  9. NOSQL系列-Redis精简版安装与Ruby测试

    简介:Redis是一个NOSQL数据库,它是一款key-values存储型数据库,也叫"memcached改进版",它不同与memcached最大特点是它由内存+硬盘来存储数据的, ...

最新文章

  1. 灵异事件 !同一个代码在code::blocks和Dev上面运行结果不一样!(一番分析后找到原因!)
  2. 数字证书原理,公钥私钥加密原理
  3. mark:apache建站permission问题
  4. java学习_Python基础学习教程:从0学爬虫?让爬虫满足你的好奇心
  5. 【计算机视觉-从入门到精通系列】 第一章 基础知识
  6. 我对敏捷的理解:实施敏捷的前提
  7. 蓝桥杯 第几个幸运数 set
  8. 服务式GIS实践与发展——REST 服务
  9. ZIPF分布、PARETO分布和幂律分布
  10. AWK中BEGIN和END的使用理解
  11. 一文了解LD7537RGL
  12. 手机点餐系统概述_基于Android无线点餐系统的设计与实现
  13. iBeacon工作原理
  14. 字符串与数字相互转化
  15. 2021年3月PHP免费自学最全教程来了
  16. dnf一天能获得多少黑暗之眼_DNF洞察之眼每天能打几次?洞察之眼奖励及入场方式一览_52pk...
  17. 查看电脑内存个数、主频(工作频率)、容量、位宽等的方法总结
  18. Python:whl安装包简介与制作
  19. JavaScript-截取字符串
  20. 多多自走棋改动_多多自走棋:20日更新,刺客、光羽修改,装备小幅调整

热门文章

  1. ideadebug热更新_Spring Boot 在IDEA中debug时的hot deployment(热部署)
  2. csharp语言_电脑绝技教你22天学精Csharp之第五天
  3. 可能存在无限递归_Python之递归函数
  4. 电子商务网站中订单号设计规则和依据
  5. Java多线程多个线程之间共享数据
  6. 数据库中复合主键与联合主键
  7. js获取前一天/后一天
  8. Android开发笔记(一百六十六)H5通过WebView录像上传
  9. CSS 属性篇(四):Flex弹性盒子
  10. 大数据时代必须关注的几个问题