main
HuangHai 4 weeks ago
parent 7fc19bd56e
commit 5eb4705145

@ -8,6 +8,8 @@ import docx
from docx import Document from docx import Document
from docx.oxml.ns import nsmap from docx.oxml.ns import nsmap
from Util import DocxUtil
# 抑制HTTPS相关警告 # 抑制HTTPS相关警告
warnings.filterwarnings('ignore', message='Connecting to .* using TLS with verify_certs=False is insecure') warnings.filterwarnings('ignore', message='Connecting to .* using TLS with verify_certs=False is insecure')
warnings.filterwarnings('ignore', message='Unverified HTTPS request is being made to host') warnings.filterwarnings('ignore', message='Unverified HTTPS request is being made to host')
@ -83,34 +85,6 @@ def extract_images_from_docx(docx_path, output_folder):
return image_data return image_data
def read_word_content(docx_path):
res = ""
idx = 0
"""遍历Word文档的每个段落输出文字或图片标识"""
try:
doc = docx.Document(docx_path)
for paragraph in doc.paragraphs:
has_image = False
# 检查段落中是否有图片
for run in paragraph.runs:
for element in run._element:
if element.tag.endswith('drawing'):
# 找到图片元素
has_image = True
break
if has_image:
break
if has_image:
idx = idx + 1
res = res + "\n" + "【图片" + str(idx) + ""
elif paragraph.text.strip():
res = res + "\n" + paragraph.text.strip()
return res
except Exception as e:
print(f"处理Word文档时出错: {str(e)}")
def split_into_blocks(text): def split_into_blocks(text):
"""按行遍历文本,发现'问题X''话题X'时开始分割,只移除前缀但保留整行内容""" """按行遍历文本,发现'问题X''话题X'时开始分割,只移除前缀但保留整行内容"""
@ -164,11 +138,11 @@ class ImageReplacer:
return result return result
return match.group() return match.group()
def process_document(word_document_path, txt_output_dir, img_output_dir): def process_document(docx_file, txt_output_dir, img_output_dir):
# 提取图片 # 提取图片
listImage = extract_images_from_docx(word_document_path, img_output_dir) listImage = extract_images_from_docx(docx_file, img_output_dir)
# 读取内容 # 读取内容
res = read_word_content(word_document_path) res = DocxUtil.get_docx_content_by_pandoc(docx_file)
# 分块 # 分块
chunks = split_into_blocks(res) chunks = split_into_blocks(res)
saved_count = 0 saved_count = 0
@ -186,7 +160,7 @@ def process_document(word_document_path, txt_output_dir, img_output_dir):
content = pattern.sub(replacer.replace, content) content = pattern.sub(replacer.replace, content)
# 保存文本文件 # 保存文本文件
# 从docx文件名提取学科和编号 # 从docx文件名提取学科和编号
docx_name = os.path.basename(word_document_path).split('.')[0] docx_name = os.path.basename(docx_file).split('.')[0]
subject_part = '_'.join(docx_name.split('_')[-2:]) # 获取最后两部分如CHINESE_1 subject_part = '_'.join(docx_name.split('_')[-2:]) # 获取最后两部分如CHINESE_1
output_file = os.path.join(txt_output_dir, f"{subject_part}_{x[0]}.txt") output_file = os.path.join(txt_output_dir, f"{subject_part}_{x[0]}.txt")
full_content = f"{firstLine}\n{content}" full_content = f"{firstLine}\n{content}"

@ -2,7 +2,8 @@ from Util.DocxUtil import *
if __name__ == '__main__': if __name__ == '__main__':
# docx文件路径 # docx文件路径
docx_file = 'D:\dsWork\dsProject\dsRag\static\Txt\化学方程式_CHEMISTRY_1.docx' #docx_file = '/static/Txt/Backup/化学方程式_CHEMISTRY_1.docx'
docx_file = '../static/Backup/化学方程式_CHEMISTRY_1.docx'
# 整合最终的拼接完的文本 # 整合最终的拼接完的文本
content = get_docx_content_by_pandoc(docx_file) content = get_docx_content_by_pandoc(docx_file)

@ -1 +1,2 @@
:氢气与氧气燃烧的方程式 氢气与氧气燃烧的方程式
$$ FeO+4HNO_{ 3 } ⇒Fe(NO_{ 3 } )_{ 3 } +2H_{ 2 } O+NO_{ 2 } ↑ $$

@ -1 +1,2 @@
:硝酸光照分解的方程式 氢气与氧气燃烧的方程式
$$ 2H_{ 2 } +O_{ 2 } =2H_{ 2 } O $$

@ -0,0 +1,2 @@
我是一个图片
![](./Images/CHEMISTRY_1_1.png)

@ -1,2 +1 @@
数量是什么?数量关系的本质是什么? 几种古代的数字符号
数量是对现实生活中事物量的抽象 / 数量关系的本质是多与少

@ -1,2 +1 @@
为什么说减法是加法的逆运算? 负数的意义
四则运算源于加法 / 减法是加法的逆运算 / 相反数 / 整数集合

@ -1,2 +1 @@
乘法是加法的简便运算吗? 用符号表示分类
自然数集合上的乘法 / 乘法运算的性质 / 整数集合上的乘法不是加法的简便运算

@ -1,2 +1 @@
整数集合上的乘法是如何得到的? 素数的故事
整数集合上的乘法运算是一种推广 / 为什么负负为正 / 运算与算理等价

@ -1,2 +1 @@
为什么说除法是乘法的逆运算? 有理数与无理数
如何表示除法 / 得到的商是一个整数 / 得到的商不是整数 / 倒数 / 有理数集合

@ -1,2 +1 @@
为什么混合运算要先乘除后加减? 用反证法证明 √2是无理数
运算次序的两个基本法则 / 所有混合运算都是在讲述两个以上的故事

@ -1,3 +1 @@
为什么要学习估算? 数学证明的思维过程
精算有利于培养抽象能力 / 估算有利于培养直观能力 / 估算问题要有合适的实际背
景:合适的量纲 / 大多数的估算问题是为了得到上界或者下界

@ -1,3 +1 @@
什么是符号意识? 逻辑推理的思维起点
用字母表示数 / 代数学的开始 / 两类符号:概念符号和关系符号 / 基于符号的运算 /
符号的表达具有一般性

@ -1,3 +1 @@
方程的本质是什么? 数学归纳法的逻辑基础
用字母表示未知的量 / 讲述的是现实世界中的两个故事 / 两个故事的共同点 / 要用等
式的性质解方程

@ -1,2 +1 @@
什么是模型?小学数学中有哪些模型? 用小数定义有理数和无理数
用数学的语言讲述现实世界中一类与数量有关的故事 / 总量模型 / 路程模型 / 植树模型 / 工程模型

@ -1,3 +1 @@
发现问题和提出问题有什么不同? 乘法的定义
从双基到四基 / 发现问题与创新意识 / 提出问题与创新能力
第三部分 图形与几何

@ -1,3 +1 @@
如何认识自然数? 数量的本质
数是对数量的抽象 / 数关系是对数量关系的抽象:大与小 / 可以有两种方法实现这种抽
象:对应的方法和定义的方法

@ -1,3 +1 @@
为什么要把“空间与图形”修改为“图形与几何”? 除法运算规定0不能为除数
时间和空间是人类认识世界最为基本的概念 / 几何学是研究如何构建空间度量方法的
学科 / 欧几里得几何是平直的 / 欧几里得几何的核心是直线距离

@ -1,3 +1 @@
如何理解点、线、面、体、角? 除数是分数时的除法运算
看到的物体都是立体的 / 点、线、面、体、角是从立体图形中抽象出来的概念 / 如何用
描述的方法给出几何概念

@ -1,2 +1 @@
认识图形的教育价值是什么? 数学中的符号表达
更重要的是让学生学会分类 / 制定标准和遵循标准 / 培养学生的抽象能力

@ -1,3 +1 @@
如何理解长度、面积、体积? 路程模型:绝对时间和相对时间
长度是一维空间图形的度量 / 面积是二维空间图形的度量 / 体积是三维空间图形的度
量 / 度量的基础是直线距离

@ -1,2 +1 @@
如何理解平移、旋转、轴对称? 几何学的由来
图形的运动 / 保持两点间直线距离不变:刚体运动 / 运动的参照物

@ -1,4 +1 @@
如何理解空间观念和几何直观? 欧几里得《几何原本》
空间观念的本质是空间想象力 / 直观是对事物的直接判断因此是经验层面的 / 直观能
力的养成依赖本人参与其中的思维活动 / 几何直观不限于几何甚至不限于数学
第四部分 统计与概率

@ -1,2 +1 @@
为什么要强调数据分析观念? 几何基本概念的进一步抽象
统计学研究的基础是数据 / 描述数据分析 / 推断数据分析 / 通过样本推断总体

@ -1,3 +1 @@
三种统计图之间有什么共性和差异? 长度单位的确定
直观地表述数据是三种统计图的共性 / 条形统计图表述数量的多少 / 扇形统计图表
述数量的比例 / 折线统计图表述数量的变化

@ -1,3 +1 @@
如何理解数据的随机性? 曹冲称象与浮力
随机性与不确定性有所区别 / 减少系统误差 / 减少人为因素 / 估计是统计推断的重
要手段 / 最大似然估计 / 通过样本频率估计概率

@ -1,3 +1 @@
平均数的意义是什么? 统计学的由来
样本平均数不仅是一个算式 / 误差模型 / 误差的随机性:正负抵消和为零 / 样本平均
数是随机的 / 样本平均数是无偏估计

@ -1,2 +1 @@
表示自然数的关键是什么? 数量多少的比较
十个符号和数位 / 数位法则是依次相差十倍 / 自然数集合

@ -1,4 +1,2 @@
什么是概率?如何得到概率? 概率的定义和基于概率模型的估计
概率是随机事件发生的属性 / 概率是未知的 / 估计概率 / 定义概率 / 定义概率是一 **附录2 相关内容的教学设计**
种度量 / 古典概率模型
附录1 若干与小学数学有关的话题

@ -1 +1 @@
几种古代的数字符号 "如何认识自然数"的相关教学设计

@ -1 +1 @@
数量的本质 "表示自然数的关键是什么"的相关教学设计

@ -1 +1 @@
数量多少的比较 "如何认识自然数的性质"的相关教学设计

@ -1 +1 @@
十进制的自然数 "如何认识负数"的相关教学设计

@ -1 +1 @@
十二进制与六十进制 "如何认识分数"的相关教学设计

@ -1 +1 @@
公理体系定义的自然数 "如何认识小数"的相关教学设计

@ -1 +1 @@
借助算术公理体系解释加法运算 "什么是数感"的相关教学设计

@ -1 +1 @@
公理体系的必要性与数学证明的形式 "如何解释自然数的加法运算"的相关教学设计

@ -1 +1 @@
加法运算和减法运算性质的证明 "乘法是加法的简便运算吗"的相关教学设计

@ -1,2 +1 @@
如何认识自然数的性质? 十进制的自然数
依据性质可以对自然数进行分类 / 奇数与偶数 / 素数与合数

@ -1 +1 @@
负数的意义 "为什么说除法是乘法的逆运算"相关教学设计

@ -1 +1 @@
用符号表示分类 "为什么混合运算要先乘除后加减"的相关教学设计

@ -1 +1 @@
素数的故事 "为什么要学习估算"的相关教学设计

@ -1 +1 @@
有理数与无理数 "什么是符号意识"的相关教学设计

@ -1 +1 @@
用反证法证明 √2是无理数 "方程的本质是什么"的相关教学设计

@ -1 +1 @@
数学证明的思维过程 "小学数学中有哪些模型" 的相关教学设计

@ -1 +1 @@
逻辑推理的思维起点 "如何理解点、线、面、体、角"的相关教学设计

@ -1 +1 @@
数学归纳法的逻辑基础 "如何理解长度、面积、体积"的相关教学设计

@ -1 +1 @@
用小数定义有理数和无理数 "如何理解平移、旋转、轴对称"相关教学设计

@ -1 +1 @@
乘法的定义 "三种统计图之间有什么共性和差异"相关教学设计

@ -1,2 +1 @@
如何认识负数? 十二进制与六十进制
负整数是与自然数数量相等意义相反的数 / 绝对值表示数量

File diff suppressed because it is too large Load Diff

@ -1,2 +1 @@
如何认识分数? 公理体系定义的自然数
分数本身是数而不是运算 / 整体与等分关系 / 整比例关系

@ -1,2 +1 @@
如何认识小数? 借助算术公理体系解释加法运算
对应的方法 / 重新理解十进制 / 基底与线性组合 / 表示有理数与无理数

@ -1,3 +1 @@
什么是数感? 公理体系的必要性与数学证明的形式
数与现实的联系 / 抽象的核心是舍去现实背景 / 联系的核心是回归现实背景
第二部分 数的运算

@ -1,2 +1 @@
如何解释自然数的加法运算? 加法运算和减法运算性质的证明
可以有两种方法解释加法:对应的方法和定义的方法 / 如何体现数学思想

@ -14,6 +14,9 @@ def get_latex_list(docx_file):
output = os.path.join(os.environ['TEMP'], uuid.uuid4().hex + '.txt') output = os.path.join(os.environ['TEMP'], uuid.uuid4().hex + '.txt')
command = mtef + r" -w " + docx_file + " -o " + output command = mtef + r" -w " + docx_file + " -o " + output
os.system(command) os.system(command)
# 如果output没有正确生成
if not os.path.exists(output):
return res
with open(output, 'r', encoding='utf-8') as file: with open(output, 'r', encoding='utf-8') as file:
for i, line in enumerate(file): for i, line in enumerate(file):
res.append(line.strip()) res.append(line.strip())
@ -31,8 +34,8 @@ def get_docx_content_by_pandoc(docx_file):
# 调用pandoc将docx文件转换成markdown # 调用pandoc将docx文件转换成markdown
subprocess.run(['pandoc', docx_file, '-f', 'docx', '-t', 'markdown', '-o', temp_markdown]) subprocess.run(['pandoc', docx_file, '-f', 'docx', '-t', 'markdown', '-o', temp_markdown])
# 打印 temp_markdown 文件 # 打印 temp_markdown 文件
# with open(temp_markdown, 'r', encoding='utf-8') as f: with open(temp_markdown, 'r', encoding='utf-8') as f:
# print(f.read()) print(f.read())
# 读取然后修改内容,输出到新的文件 # 读取然后修改内容,输出到新的文件
wmf_idx = 0 # wmf索引 wmf_idx = 0 # wmf索引
img_idx = 0 # 图片索引 img_idx = 0 # 图片索引

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

@ -247,7 +247,7 @@
</div> </div>
</div> </div>
<div><h3>知识库文稿下载</h3> <div><h3>知识库文稿下载</h3>
<a href="/static/Txt/小学数学教学中的若干问题_MATH_1.docx" class="doc-link">小学数学</a> <a href="/Backup/小学数学教学中的若干问题_MATH_1.docx" class="doc-link">小学数学</a>
<a href="/static/Txt/高中文言文_CHINESE_1.docx" class="doc-link">高中文言文</a> <a href="/static/Txt/高中文言文_CHINESE_1.docx" class="doc-link">高中文言文</a>
</div> </div>
<br> <br>

Loading…
Cancel
Save