处理100个句子记5500个单词的程序(将excel 转为json)

 1 import xlrd,json
 2
 3 data = xlrd.open_workbook("C:\\Users\\zcb\\Desktop\\data.xlsx")
 4
 5 sheet1 = data.sheet_by_name("Sheet1")
 6 final_data = []
 7 idx = 1
 8 for i in range(51,59):
 9     row = sheet1.row_values(i)
10     sentence ={}
11     sentence["sentence_id"] = row[0]
12     sentence["sentence"]=row[1].split("|")
13     sentence["语法笔记"]=row[2]
14     temp = row[3].split("|")[:-1]
15     temp_list = []
16     for i in range(0,len(temp),8):
17         temp_dict = {}
18         temp_dict["word_id"]=idx
19         temp_dict["word"] = temp[i].strip(" \n")
20         temp_dict["pron"] = temp[i + 1].strip(" \n")
21         temp_dict["词性"] = temp[i + 2].strip(" \n")
22         if ‘$‘ in temp_dict["词性"]:
23             temp_dict["词性"] = [l.strip(" ") for l in temp_dict["词性"].split("$")]
24         temp_dict["记忆"] = temp[i + 3].strip(" \n")
25         if ‘$‘ in temp_dict["记忆"]:
26             temp_dict["记忆"] = [l.strip(" ") for l in temp_dict["记忆"].split("$")]
27         temp_dict["搭配"] = temp[i + 4].strip(" \n")
28         if ‘$‘ in temp_dict["搭配"]:
29             temp_dict["搭配"] = [l.strip(" ") for l in temp_dict["搭配"].split("$")]
30         temp_dict["同义"] = temp[i + 5].strip(" \n")
31         if ‘$‘ in temp_dict["同义"]:
32             temp_dict["同义"] = [l.strip(" ") for l in temp_dict["同义"].split("$")]
33         temp_dict["反义"] = temp[i + 6].strip(" \n")
34         if ‘$‘ in temp_dict["反义"]:
35             temp_dict["反义"] = [l.strip(" ") for l in temp_dict["反义"].split("$")]
36         temp_dict["同根"] = temp[i + 7].strip(" \n")
37         if ‘$‘ in temp_dict["同根"]:
38             temp_dict["同根"] = [l.strip(" ") for l in temp_dict["同根"].split("$")]
39         temp_list.append(temp_dict)
40         idx +=1
41     sentence["核心词表"] = temp_list
42     temp = row[4].split("|")[:-1]
43     temp_list = []
44     for i in range(0,len(temp),8):
45         if "的词" in temp[i]:
46             topic = temp[i].split("的词")[0].strip(" \n")+"的词"
47
48         temp_dict = {}
49         temp_dict["主题"] = topic
50         temp_dict["word_id"] = idx
51         temp_dict["word"] = temp[i].split("的词")[-1].strip(": \n")
52         temp_dict["pron"] = temp[i + 1].strip(" \n")
53         temp_dict["词性"] = temp[i + 2].strip(" \n")
54         if ‘$‘ in temp_dict["词性"]:
55             temp_dict["词性"] = [ l.strip(" ") for l in temp_dict["词性"].split("$") ]
56         temp_dict["记忆"] = temp[i + 3].strip(" \n")
57         if ‘$‘ in temp_dict["记忆"]:
58             temp_dict["记忆"] = [ l.strip(" ") for l in temp_dict["记忆"].split("$")  ]
59         temp_dict["搭配"] = temp[i + 4].strip(" \n")
60         if ‘$‘ in temp_dict["搭配"]:
61             temp_dict["搭配"] = [ l.strip(" ") for l in temp_dict["搭配"].split("$")  ]
62         temp_dict["同义"] = temp[i + 5].strip(" \n")
63         if ‘$‘ in temp_dict["同义"]:
64             temp_dict["同义"] = [ l.strip(" ") for l in temp_dict["同义"].split("$")  ]
65         temp_dict["反义"] = temp[i + 6].strip(" \n")
66         if ‘$‘ in temp_dict["反义"]:
67             temp_dict["反义"] = [ l.strip(" ") for l in temp_dict["反义"].split("$")  ]
68         temp_dict["同根"] = temp[i + 7].strip(" \n")
69         if ‘$‘ in temp_dict["同根"]:
70             temp_dict["同根"] =  [ l.strip(" ") for l in temp_dict["同根"].split("$")  ]
71         idx+=1
72         temp_list.append(temp_dict)
73     sentence["主题归纳"] = temp_list
74
75     final_data.append(sentence)
76 with open("final_data.json","w",encoding="utf8") as f:
77     json.dump(final_data,f,ensure_ascii=False)

data.zip :https://files.cnblogs.com/files/zach0812/data.zip

原文地址:https://www.cnblogs.com/zach0812/p/12243558.html

时间: 2024-11-06 09:36:00

处理100个句子记5500个单词的程序(将excel 转为json)的相关文章

java-第六章-for-计数100遇到3的倍替换单词Flip,5的倍数替换单词Flop,即使3,5倍数替换FlopFlip

public class A02 { public static void main(String[] args) { // TODO Auto-generated method stub for (int i = 0; i <100; i++) { if(i%3==0&i%5==0){ System.out.println("FlipFlio"); }else if(i%5==0){ System.out.println("Flop"); }else

《C++ Primer》P314中使用insert重写单词统计程序的扩展

编写程序统计并输出所读入的单词出现的次数 想与习题10-1相结合,也就是先输入几组 map<string, int>类型,存入vector中. 再输入单词word,如果已经存在则在key对应的value+1 如果不存在,则插入并使得其value为1. 之前的问题是->输入了一次之后,再要输入单词word,读不进.(呵呵 果然小白) 看到11章之后,知道要用语句cin.clear;使得输入流重新有效. 再然后 重新熟悉了iterator对map的操作. #include <iostr

单词查找程序

在一个文件中查找指定单词所在的行,简单实现了,没有进行异常处理: #include<stdio.h> #include<string.h> int main() { int maxword=1024; int i=0; char word[50]; char line[maxword]; FILE *fp=fopen("a.txt","r"); printf("请输入要查找的单词\n"); scanf("%s&q

第一章 flex单词计数程序

学习Flex&Bison目标, 读懂SQLite中SQL解析部分代码 Flex&Bison简介Flex做词法分析Bison做语法分析 第一个Flex程序, wc.fl, 单词计数程序 %{ int chars = 0; int words = 0; int lines = 0; %} %% [a-zA-Z]+ { words++; chars += strlen(yytext); } \n { chars++; lines++; } . { chars++; } %% main(int a

Java如何将每个单词的第一个字符转为大写?

在Java编程中,如何将每个单词的第一个字符转为大写? 以下示例演示如何使用toUpperCase(),appendTail()方法将字符串中每个单词的第一个字母转换为大写字母. package com.yiibai; import java.util.regex.Matcher; import java.util.regex.Pattern; public class MakeFirstLetterUppercase { public static void main(String[] arg

对计算器和单词检索程序进行单元测试

一.编程思路 1.图逻辑框图 2.确定测试用例 3.进行单元.覆盖率测试 二.代码实现 1.计算器单元测试 首先对照代码画了类似下图的简单逻辑框图 然后对照每一个判断节点,设计了一些测试用例,在调试过程中会发现代码的一些缺陷,然后增加或者修改测试用例,下图是测试过程中的报错例子截图: 下面贴出最后完成的测试代码: 1 '''test 计算器.py''' 2 import unittest 3 4 from 计算器 import * 5 6 import HTMLTestRunner 7 8 cl

将英文句子拆成一个个单词(对于句子中可能出现的不同情况)

最近有个需求,后台给我一个英文句子,我要把其中每个单词拆出来,然后计算出单词的个数,把每个单词布局到一个个横线上.  有的人会想,很好搞啊,直接以空格去拆分就得了,然后再判断每个单词的最后一个字符是不是逗号等符号,是的话去掉. 这样做的话,那得要求后台的英文句子高度标准,假如句子里有连续的两个空格怎么办,这个时候拆分出来的单词就会出现空格,单词数就会不准确.这个还好说,有解决方法:如果判断出单词是空格的话,去掉就好.可是另外一种情况,比如句子是 "Yeah,I need a word"

统计句子中的不同单词个数(句子中含有标点符号,单词不区分大小写)

#include<iostream> #include<sstream> #include<string> #include<cctype> #include<set> using namespace std; set<string> dict; int main() { string s,buf; while(getline(cin,s)) { dict.clear(); for(int i=0;i<s.length();i+

从句子中拆出单词

利用指针,和strtok函数 字符数组实际上是char*即char类型的指针 char * strtok(char * str, const char * delim);连续调用该函数若干次,可以做到:从str中逐个抽取出被字符串delim中的字符分隔开的若干个子串. #include<cstdio> #include<iostream> #include<cstring> using namespace std; char str[50]; int main() {