main
HuangHai 3 weeks ago
parent 7fc19bd56e
commit 5eb4705145

@ -8,6 +8,8 @@ import docx
from docx import Document
from docx.oxml.ns import nsmap
from Util import DocxUtil
# 抑制HTTPS相关警告
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')
@ -83,34 +85,6 @@ def extract_images_from_docx(docx_path, output_folder):
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):
"""按行遍历文本,发现'问题X''话题X'时开始分割,只移除前缀但保留整行内容"""
@ -164,11 +138,11 @@ class ImageReplacer:
return result
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)
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)
# 保存文本文件
# 从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
output_file = os.path.join(txt_output_dir, f"{subject_part}_{x[0]}.txt")
full_content = f"{firstLine}\n{content}"

@ -2,7 +2,8 @@ from Util.DocxUtil import *
if __name__ == '__main__':
# 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)

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

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

@ -247,7 +247,7 @@
</div>
</div>
<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>
</div>
<br>

Loading…
Cancel
Save