用python读取某文件夹里所有文件的内容,然后用正则表达式匹配提取文件中需要的内容,用jieba分词后按比例划分数据集(包含读取json文件,存储、读取csv文件)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

 

解决的问题

1、用python读取某文件夹里所有文件的内容。

2、用正则表达式匹配提取文件中需要的内容。

3、用jieba进行分词。

4、按比例划分数据集。

5、读取json文件,存储、读取csv文件。

 

1、引入库,设置路径

import os
import json
import re
import pandas as pd
path = './da'
#path = './task'
s = []
l = []

2、读取文件夹里所有文件的数据,并且匹配要提取的内容

l = os.listdir(path)     #把文件夹中的文件名以文本的形式放入列表
#print(l)              
for i in l:              #遍历每一个文件名
    if 'json' not in i:  #跳过不是json的文件
        continue
    p = []
    k = path+'/'+i       #带文件名的完整路径
    #print(k)
    file = open(k,'r')   #以只读的形式打开文件
    text = json.load(file) #加载文件里的数据
    text = str(text)
    pattern = re.compile(r'\'label_abstract\': \'(.*?)\'') #提取‘内容’的正则表达式
    te = re.findall(pattern,text)      #在全文范围内查找与之匹配的内容
    s.append(te)
    patternt = re.compile(r'\'label_title\': \'(.*?)\'')  #提取‘摘要’的正则表达式
    tet = re.findall(patternt,text)    #在全文范围内查找与之匹配的内容
    s.append(tet)
    
print(s[:10])     #表格格式为:第一行‘内容’,第二行是与之匹配的‘摘要’
[['一种用于治疗胃下垂、胃肠气壅等症状的汤剂-枳术白术汤。该组合物由枳术、白术、桑白皮、木香、大黄配比组成,还可添加白芷;水煎服即可。该药物具有行气利水、健脾消痞、疏风通便的功效。'], ['一种用于治疗胃下垂、胃肠气壅等的含枳术、白术等的汤剂'], ['一种含有黄芪、人参、党参等中药的治疗中风病的药物组合物及其制剂。将黄芪、人参、党参、白术、川芎、丹参、桃仁、红花、当归、赤芍、郁金、姜黄、延胡索、苏木、降真香、鸡血藤、刘寄奴、蟅虫、地龙、全蝎、蜈蚣、白花蛇、虻虫、威灵仙、甘草混合研磨成细末,装入胶囊即可得到这种药物组合物。这种胶囊剂可以治疗中风病。'], ['一种含有黄芪、人参、党参等中药的治疗中风病的药物组合物及其制剂'], ['一种治疗心脑血管疾病的中药制剂,是由丹参总酚酸和灯盏花素组成;其中丹参总酚酸、灯盏花素可以分别是丹参、灯盏细辛的各种提取物或其精制品,。取灯盏细辛,粉碎后用水或乙醇提取,合并提取液,过滤,浓缩得粗提物,再采用乙醇沉淀法、柱层析法、萃取法、絮凝沉淀法并精制,得灯盏花素;取丹参,水或乙醇提取,合并提取液,过滤,浓缩得丹参总酚酸粗提物,再采用乙醇沉淀法、柱层析法、萃取法、絮凝沉淀法并精制,得丹参总酚酸有效部位;将两种活性成分混合,加辅料制成不同制剂即可。该组合物可用于治疗缺血性脑中风、冠心病、心绞痛、心律失常、脑血栓、老年性痴呆、心功能不全、肝肾综合症、心肺病、糖尿病及其并发症。'], ['一种治疗心脑血管疾病的中药制剂'], ['一种外敷的中药组合物,由川牛膝、防风、当归、制川乌、藁本、独活、萆薢、细辛制成。使用时将所述原料共研为粗末,加盐,共同炒热,装于布袋中封口,趁热敷于患处,至布袋变冷时止。该药物可起到消炎、镇痛、除湿通络、纠正高尿酸、溶解痛风石、蠲痹止痛的作用,用于治疗痛风(高尿血酸症)。'], ['一种外敷治疗痛风的中药组合物'], ['胡椒酸酯类化合物在制备降血脂药物或保健品中的应用。具有通式(1)的胡椒酸酯类化合物(结构式中R1为氢或羟基,R2为氢或烃基,R3为正丁基、异丁基、已基或辛基)可以是胡椒酸、胡椒酸正丁酯、胡椒酸异丁酯、胡椒酸已酯、胡椒酸辛酯或6-硝基胡椒酸丁酯,具有明显降低胆固醇和降低甘油三酯以及升高高密度脂蛋白的作用,能够充分活化卵磷脂胆固醇酰基转移酶,将肝外组织胆固醇运送到肝脏清除血浆脂蛋白、血浆胆固醇和胆固醇酯,能够预防和治疗心脑血管疾病,如防治动脉粥样硬化、脑血管、冠状动脉和周围血管病变以及高脂血症等;因此上述胡椒酸酯类化合物可用于研制、开发降血脂功能保健品及药品。'], ['胡椒酸酯类化合物在制备降血脂药物或保健品中的应用']]

3、分词

import pandas as pd
test=pd.DataFrame(data=s)
test.to_csv("./data.csv",index=False,header=None)
import jieba as jb
import jieba.analyse as ana
data=pd.read_csv("./data.csv",header=None).astype(str)
#data = data.values.tolist()
a = []
depart = data[0].apply(lambda x :[w for w in list(jb.cut(x))]) #对数据进行分词(注意:列表和str都不能用apply)
part = depart.apply(lambda x : ' '.join(x))  #给分好的词间加入空格
part[:15]
0     一种 用于 治疗 胃下垂 、 胃肠 气 壅 等 症状 的 汤剂 - 枳术 白术 汤 。 该 ...
1            一种 用于 治疗 胃下垂 、 胃肠 气 壅 等 的 含 枳术 、 白术 等 的 汤剂
2     一种 含有 黄芪 、 人参 、 党参 等 中药 的 治疗 中风病 的 药物 组合 物 及其 ...
3      一种 含有 黄芪 、 人参 、 党参 等 中药 的 治疗 中风病 的 药物 组合 物 及其 制剂
4     一种 治疗 心脑血管 疾病 的 中 药制剂 , 是 由 丹参 总 酚酸 和 灯盏 花素 组成...
5                                 一种 治疗 心脑血管 疾病 的 中 药制剂
6     一种 外敷 的 中药 组合 物 , 由 川牛膝 、 防风 、 当归 、 制 川乌 、 藁本 ...
7                                 一种 外敷 治疗 痛风 的 中药 组合 物
8     胡椒 酸 酯类化合物 在 制备 降血脂 药物 或 保健品 中 的 应用 。 具有 通式 ( ...
9                   胡椒 酸 酯类化合物 在 制备 降血脂 药物 或 保健品 中 的 应用
10    一种 利用 杏仁 饼 制备 杏仁 酱 的 方法 , 包括 下列 步骤 : 首先 将 杏仁 或...
11                              一种 利用 杏仁 饼 制备 杏仁 酱 的 方法
12    一种 防治 亚健康 的 莲子心 保健茶 , 原料 如下 : 西洋参 , 黄精 , 黄芪 , ...
13                                  一种 防治 亚健康 的 莲子心 保健茶
14    一种 微波 制备 改性 燕麦 纤维 粉 的 生产 方法 。 具体方法 为 : 将 燕麦 麸皮...
Name: 0, dtype: object

4、划分数据集

(直接按比例划分,没有使用任何划分数据集的方法)

a=int((22818/2)*0.5*2)+1    #数据集共有22818条,且每两条为一个数据的‘内容’和‘摘要’,所以不能分开。
b=int((22818/2)*0.8*2)      #划分比例为:50%训练、30%验证、20%测试
print(a,b)
11410 18254
part[:a].to_csv("./train.csv",index=False,header=None)     #index=False(不要默认的第一列标号)
part[a:b].to_csv("./valid.csv",index=False,header=None)    #header=None(不要默认的第一行标号)
part[b:].to_csv("./test.csv",index=False,header=None)

 

你可能感兴趣的:(python编程练习,python,自然语言处理)