main
HuangHai 4 weeks ago
parent 2a77361492
commit 138bfbd826

@ -63,16 +63,11 @@ def split_text(text, chunk_size=6000):
chunks.append('\n'.join(current_chunk)) chunks.append('\n'.join(current_chunk))
return chunks return chunks
def ask_llm(text_chunk): def ask_llm(text_chunk, is_final=False):
"""向大模型提问并获取响应""" prompt = """请将以下文本按内容相关性划分为段落,要求:
prompt = f"""请分析以下文本段落并返回有价值的内容: 1. 意思一致或强相关的内容放在同一段落
要求: 2. 每个段落有明确的主题
1. 保持原文关键信息 3. 输出格式为## 段落主题\n段落内容\n\n"""
2. 用清晰的格式返回
3. 可包含简要总结
文本段落内容:
{text_chunk}"""
return call_deepseek_api(prompt) return call_deepseek_api(prompt)
def process_document(input_file, output_file): def process_document(input_file, output_file):
@ -83,8 +78,11 @@ def process_document(input_file, output_file):
for i, chunk in enumerate(chunks, 1): for i, chunk in enumerate(chunks, 1):
print(f"正在处理第{i}个段落...") print(f"正在处理第{i}个段落...")
try: try:
response = ask_llm(chunk) processor = DocxProcessor()
save_to_txt(f"段落{i}响应:\n{response}", output_file) response = processor.ask_llm(chunk)
paragraphs = processor.process_llm_response(response)
for para in paragraphs:
processor.save_to_txt(para, output_file)
except Exception as e: except Exception as e:
save_to_txt(f"段落{i}处理失败: {str(e)}", output_file) save_to_txt(f"段落{i}处理失败: {str(e)}", output_file)
@ -138,6 +136,22 @@ def call_deepseek_api(prompt, stream_callback=None):
print(f"调用DeepSeek API出错: {str(e)}") print(f"调用DeepSeek API出错: {str(e)}")
def process_llm_response(response):
"""处理大模型的段落划分响应"""
paragraphs = []
current_para = ""
for line in response.split('\n'):
if line.startswith('## '):
if current_para:
paragraphs.append(current_para.strip())
current_para = line[3:] + '\n' # 去掉##标记
else:
current_para += line + '\n'
if current_para:
paragraphs.append(current_para.strip())
return paragraphs
if __name__ == "__main__": if __name__ == "__main__":
input_file = '../Txt/小学数学(史校长).docx' input_file = '../Txt/小学数学(史校长).docx'
output_file ='../Txt/小学数学(史校长).txt' output_file ='../Txt/小学数学(史校长).txt'

@ -0,0 +1,206 @@
段落1响应:
### 小学数学教学中的若干问题 - 关键信息分析
#### **作者信息**
- **作者**: 史宁中
- **机构**: 东北师范大学数学与统计学院
---
### **核心内容总结**
本书围绕小学数学教学的核心问题,探讨数学本质、教学方法和课程目标(“四基”:基础知识、基本技能、基本思想、基本活动经验),强调通过抽象、推理、模型培养学生的数学素养和创新思维。
---
### **目录结构及关键问题**
#### **第一部分:数的认识**
1. **数量与数量关系**
- 数量:对事物量的抽象。
- 本质关系:多与少。
2. **自然数**
- 抽象方法:对应法或定义法。
- 表示关键:十个符号和数位(十倍递进)。
3. **负数**
- 定义:与自然数数量相等、意义相反的数。
4. **分数**
- 本质是数(非运算),表示整体等分或比例关系。
5. **小数**
- 十进制扩展,表示有理数/无理数。
6. **数感**
- 抽象与现实背景的联系。
#### **第二部分:数的运算**
- 加法:对应或定义方法。
- 减法:加法的逆运算。
- 乘法:自然数中为加法简便运算,整数中则否。
- 除法:乘法的逆运算(推广到有理数)。
- **符号意识**:字母表示数,代数的基础。
- **方程本质**:描述现实世界的等量关系。
#### **第三部分:图形与几何**
- 几何核心:构建空间度量方法(欧几里得几何)。
- 图形抽象:点、线、面、体、角。
- 度量:长度(一维)、面积(二维)、体积(三维)。
- **几何直观**:经验层面的直接判断能力。
#### **第四部分:统计与概率**
- **数据分析观念**:通过样本推断总体。
- **统计图**:条形(数量)、扇形(比例)、折线(变化)。
- **随机性**:减少人为误差,估计概率。
- **平均数**:无偏估计,误差抵消。
---
### **附录与教学设计**
- **附录1**:拓展话题(如古代数字符号、素数、无理数证明等)。
- **附录2**:针对核心问题的教学片段设计(如自然数、负数、分数等)。
---
### **前言要点**
1. **课程目标演变**:从“双基”到“四基”,强调隐性素养(思想与经验)。
2. **教学改革**
- 反对机械记忆和重复练习,提倡感悟数学思想。
- 教师需设计符合认知规律的教学过程。
3. **本书目的**
- 揭示小学数学内容的实质,提供适合“四基”目标的教学方法。
---
### **简要总结**
本书系统分析了小学数学的核心概念(数、运算、几何、统计)及其教学实质,倡导通过“四基”培养数学素养。内容兼顾理论(数学本质)与实践(教学设计),适合教师及教育研究者参考。
段落2响应:
### 文本分析结果
#### 1. **数量的概念与历史发展**
- **定义**:数量是对现实生活中事物量的抽象。
- **历史背景**
- 远古时代:人们用语言表达量的多少(如狩猎收获、祭祀牺牲)。
- 商代甲骨文:早期数量表达的记录。
- **现代汉语中的数量表达**
- 数字 + 后缀名词(如“一粒米”“两条鱼”)。
- 这些表达具有具体背景,数字不具备符号功能,无法直接运算。
#### 2. **数量与数学抽象**
- **局限性**:数量是具体事物的抽象,但不足以作为数学研究对象。
- **本质**:数量关系的本质是“多与少”。
- 动物也能分辨多与少,说明这是基本属性。
- **比较方法**
- 同类事物通过递增多与传递性比较如3个苹果 < 4个苹果
- 不同事物:通过“对应法”比较(如集合配对法)。
#### 3. **自然数的抽象与表示**
- **定义**:自然数是对数量及数量关系的抽象(数的本质是“大与小”)。
- **两种抽象方法**
1. **基于对应**
- 图形 → 命名 → 符号化如“□□”对应“2”
- 适用于小学数学教学(直观、现实背景)。
2. **基于定义**
- 通过“后继”概念定义如2 = 1 + 13 = 2 + 1
- 完全脱离现实背景,适合数学严谨性研究。
- **表示自然数的关键**
- **十进制**基于十个符号0-9和数位个、十、百等
- **数位法则**:每高位是低位的十倍(如十个“千”是“万”)。
- **跨文化差异**
- 东亚系统:数位以四为基础(个、万、亿、兆)。
- 欧洲系统:数位以三为基础(个、千、百万、十亿)。
#### 4. **自然数的性质与分类**
- **分类标准**
- 奇数与偶数:
- 定义不能被2整除的为奇数能被2整除的为偶数。
- 应用:运算规律(如奇数 + 偶数 = 奇数)。
- 素数与合数:
- 素数只能被1和自身整除如2, 3, 5
- 合数可分解为素数乘积如60 = 2×2×3×5
- 高斯代数基本定理:多项式可分解为线性因式乘积。
#### 5. **负数的引入与意义**
- **现实背景**表示相反意义的量如盈余30元 vs. 亏损15元
- **定义**:在自然数前加“-”表示负数(如-2
- **性质**
- 绝对值越大,正数越大,负数越小。
- 0是正负数的分界点。
---
### 总结
文本系统性地阐述了从数量到自然数、再到负数的数学抽象过程,包括:
1. 数量的历史起源与现代表达。
2. 自然数的两种抽象方法(对应法 vs. 定义法)及其教学意义。
3. 自然数的表示(十进制与数位)和跨文化差异。
4. 自然数的分类(奇偶性、素数与合数)及其数学应用。
5. 负数的现实意义与数学定义。
核心观点:数学抽象通过剥离具体背景,研究一般规律,再应用于实际问题。
段落3响应:
### 文本分析结果
#### 1. 负数的发展历史
- **中国《九章算术》**
- 最早提到负数并给出正负数加减运算法则。
- 在“方程”篇中讨论“正负术”,用不同颜色的算筹解释运算法则。
- **印度数学家婆罗摩芨多Brahmagupta**
- 约公元628年给出负数的四则运算规则。
- **关键关系**
- 负数与减法运算密切相关,减法运算又依赖于加法运算。
#### 2. 分数的认识
- **定义与背景**
- 分数是数而非运算形如a/ba为分子b为分母通常为正整数
- 古希腊学者最初认为所有数可表示为分数后因√2的发现引入“有理数”与“无理数”概念。
- **真分数的本质**
- 表达两种关系:
1. **整体与等分**如1/5表示五等分之一2/5 = 1/5 + 1/5。
2. **整比例关系**如4只鹅对应鸭子数量的1/3即比例4:x=1:3。
- **运算规则**同分母分数相加直接合并单位异分母需通分如1/5 + 1/10 = 3/10
- **无量纲性**
- 分数与具体数量无关如1/5的月饼或蛋糕百分数用于比较增长率等
#### 3. 小数的认识
- **历史背景**
- 18世纪才建立稳定的十进位小数表示晚于微积分。
- 用途现实数量表达如6.75元)及数学需求(如无理数运算)。
- **十进制与幂表示**
- 整数和小数均可表示为10的幂次组合如238=2×10²+3×10¹+8×10⁰6.75=6×10⁰+7×10⁻¹+5×10⁻²
- 小数乘法解释0.1×0.1=10⁻¹×10⁻¹=0.01。
- **实数分类**
- 有理数:有限小数或无限循环小数;无理数:无限不循环小数。
#### 4. 数感(核心概念)
- **定义**
- 对数量、关系及运算结果的直觉感悟如100粒黄豆 vs. 100匹马100元买菜 vs. 买房)。
- **培养目标**
- 抽象与现实的联系(如估算数量、步长、场地大小)。
- 量纲选择(如促销让利单位依产品价格调整)。
#### 5. 数的运算
- **四则运算关系**
- 加法为基础,减法为其逆运算;乘法扩展加法,除法为其逆运算。
- 数集扩张保证运算封闭性(如整数集满足减法,有理数集满足除法)。
- **模型与应用**
- 小学数学基于加法与乘法模型派生问题。
- 符号化推动算术到代数(如方程表示数量关系的等式)。
#### 6. 自然数加法教学
- **两种解释方法**
1. **定义法**利用等式对称性如3+1=4因4=3+1
2. **对应法**:通过实物比较(如方块图)强调“量相等”本质。
- **教学建议**
- 低学段优先采用对应法,结合现实背景培养数学思想。
#### 7. 减法与逆运算
- **源于加法**:四则运算均以加法为源头。
- **教学示例**:用对应法(如方块图)直观解释减法关系。
---
### 简要总结
文本系统梳理了负数、分数、小数的历史发展与数学本质,强调数感培养及运算的抽象-现实联系。教学上建议通过对应法(如实物比较)直观解释加减法,避免过早依赖抽象定义。核心观点包括:
- 数学概念需结合现实背景理解(如分数无量纲性、数感)。
- 运算的逆关系与数集扩张逻辑(如减法→整数,除法→有理数)。
- 十进制幂表示是小数运算的基础,分数单位等分是关键过渡。

@ -1,18 +0,0 @@
2025-06-23 21:08:46,327 - INFO - POST https://10.10.14.206:9200/knowledge_base/_doc [status:400 duration:0.004s]
处理进度: 8%|▊ | 40/503 [00:01<00:17, 26.02句/s]
Traceback (most recent call last):
File "D:\dsWork\dsProject\dsRag\T2_ImportTxt.py", line 51, in <module>
process_file(file_path)
File "D:\dsWork\dsProject\dsRag\T2_ImportTxt.py", line 38, in process_file
save_to_es(sentence)
File "D:\dsWork\dsProject\dsRag\T2_ImportTxt.py", line 26, in save_to_es
es.index(index='knowledge_base', body=doc)
File "D:\anaconda3\envs\rag\lib\site-packages\elasticsearch\_sync\client\utils.py", line 415, in wrapped
return api(*args, **kwargs)
File "D:\anaconda3\envs\rag\lib\site-packages\elasticsearch\_sync\client\__init__.py", line 2951, in index
return self.perform_request( # type: ignore[return-value]
File "D:\anaconda3\envs\rag\lib\site-packages\elasticsearch\_sync\client\_base.py", line 271, in perform_request
response = self._perform_request(
File "D:\anaconda3\envs\rag\lib\site-packages\elasticsearch\_sync\client\_base.py", line 351, in _perform_request
raise HTTP_EXCEPTIONS.get(meta.status, ApiError)(
elasticsearch.BadRequestError: BadRequestError(400, 'document_parsing_exception', '[1:828] failed to parse: The [cosine] similarity does not support vectors with zero magnitude. Preview of invalid vector: [0.0, 0.0, 0.0, 0.0, 0.0, ...]', The [cosine] similarity does not support vectors with zero magnitude. Preview of invalid vector: [0.0, 0.0, 0.0, 0.0, 0.0, ...])
Loading…
Cancel
Save