diff --git a/dsRag/Tools/T4_DocxProcessor.py b/dsRag/Tools/T4_DocxProcessor.py index 31408ceb..20344b79 100644 --- a/dsRag/Tools/T4_DocxProcessor.py +++ b/dsRag/Tools/T4_DocxProcessor.py @@ -63,16 +63,11 @@ def split_text(text, chunk_size=6000): chunks.append('\n'.join(current_chunk)) return chunks -def ask_llm(text_chunk): - """向大模型提问并获取响应""" - prompt = f"""请分析以下文本段落并返回有价值的内容: -要求: -1. 保持原文关键信息 -2. 用清晰的格式返回 -3. 可包含简要总结 - -文本段落内容: -{text_chunk}""" +def ask_llm(text_chunk, is_final=False): + prompt = """请将以下文本按内容相关性划分为段落,要求: + 1. 意思一致或强相关的内容放在同一段落 + 2. 每个段落有明确的主题 + 3. 输出格式为:## 段落主题\n段落内容\n\n""" return call_deepseek_api(prompt) 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): print(f"正在处理第{i}个段落...") try: - response = ask_llm(chunk) - save_to_txt(f"段落{i}响应:\n{response}", output_file) + processor = DocxProcessor() + 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: 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)}") +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__": input_file = '../Txt/小学数学(史校长).docx' output_file ='../Txt/小学数学(史校长).txt' diff --git a/dsRag/Txt/小学数学(史校长).txt b/dsRag/Txt/小学数学(史校长).txt new file mode 100644 index 00000000..3c1c5500 --- /dev/null +++ b/dsRag/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 + 1,3 = 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/b(a为分子,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. 减法与逆运算 +- **源于加法**:四则运算均以加法为源头。 +- **教学示例**:用对应法(如方块图)直观解释减法关系。 + +--- + +### 简要总结 +文本系统梳理了负数、分数、小数的历史发展与数学本质,强调数感培养及运算的抽象-现实联系。教学上建议通过对应法(如实物比较)直观解释加减法,避免过早依赖抽象定义。核心观点包括: +- 数学概念需结合现实背景理解(如分数无量纲性、数感)。 +- 运算的逆关系与数集扩张逻辑(如减法→整数,除法→有理数)。 +- 十进制幂表示是小数运算的基础,分数单位等分是关键过渡。 + diff --git a/dsRag/Txt/运行结果.txt b/dsRag/Txt/运行结果.txt deleted file mode 100644 index c4a3d6dc..00000000 --- a/dsRag/Txt/运行结果.txt +++ /dev/null @@ -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 - 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, ...]) \ No newline at end of file