Spaces:
Running
Running
| # -*- coding: utf-8 -*- | |
| import json | |
| import re | |
| from sentence_transformers import SentenceTransformer, util | |
| # model_path = r'.\sbert\models--shibing624--text2vec-base-chinese\snapshots\183bb99aa7af74355fb58d16edf8c13ae7c5433e' | |
| # # 从本地加载模型 | |
| # MODEL = SentenceTransformer(model_path) | |
| MODEL = SentenceTransformer("BAAI/bge-large-zh-v1.5") | |
| # MODEL.save("E:/pythonPro/教育教学改革工程/XGISeek/bge-large-zh-v1.5") | |
| # MODEL = SentenceTransformer('BAAI/bge-large-zh-v1.5') | |
| print(MODEL) | |
| def semantic_similarity(text1, text2): | |
| text1 = "passage: " + text1.strip() | |
| text2 = "passage: " + text2.strip() | |
| emb1 = MODEL.encode(text1, normalize_embeddings=True) | |
| emb2 = MODEL.encode(text2, normalize_embeddings=True) | |
| return float(util.cos_sim(emb1, emb2)) | |
| def extract_core_painpoints(text): | |
| pattern = r"核心痛点[::\s]*([\s\S]*?)优化措施[::\s]*" | |
| m = re.search(pattern, text, flags=re.S) | |
| if m: | |
| res = m.group(1).strip() | |
| # 去掉编号 | |
| res = re.sub(r"-?\s*核心教学痛点\d*[::]\s*", "", res) | |
| return res | |
| return "" | |
| def calcDocSims(file): | |
| texts = re.findall(r'text=(.*?),\s*error=', file, flags=re.DOTALL) | |
| res_list = [extract_core_painpoints(t) for t in texts] | |
| # 假设只比较前两个 | |
| sim = semantic_similarity(res_list[0], res_list[1]) | |
| return 1-sim, res_list[0], res_list[1] | |
| if __name__ == '__main__': | |
| s = """ | |
| {"a":[[{"success":true,"objectId":"af9193c120bdb392c7b7d774b2c4d252","text":"# 教学优化方案\n\n## 1. 核心痛点\n\n- 核心教学痛点1:学生对地理信息系统(GIS)的核密度分析、搜索半径选择和城市规划应用等核心概念和技能掌握不够深入,导致在实际应用中出现数据处理错误,影响容积率计算准确性。\n- 核心教学痛点2:学生对GIS数据的连接和叠加、字段的运算和连接等操作存在混淆,容易导致数据处理错误。\n- 核心教学痛点3:学生对GIS容积率可视化分析的应用场景和方法不够熟悉,导致在实际应用中难以灵活运用。\n\n## 2. 优化措施\n\n- 优化措施1:针对核心教学痛点1,可以通过微课、演示和作业等方式,加强学生对核密度分析、搜索半径选择和城市规划应用等核心概念和技能的掌握,提高学生在实际应用中的数据处理能力和容积率计算准确性。\n- 优化措施2:针对核心教学痛点2,可以通过微课、演示和作业等方式,加强学生对GIS数据的连接和叠加、字段的运算和连接等操作的理解和掌握,减少数据处理错误的发生。\n- 优化措施3:针对核心教学痛点3,可以通过微课、演示和作业等方式,加强学生对GIS容积率可视化分析的应用场景和方法的熟悉和掌握,提高学生在实际应用中的灵活性和应用能力。\n\n## 3. 微课脚本\n\n### 标题:GIS容积率可视化分析\n\n### 步骤演示:\n\n1. **介绍GIS容积率可视化分析的基本概念和应用场景**,包括城市规划与设计、房地产开发与投资等。\n2. **演示GIS容积率可视化分析的步骤和方法**,包括数据的连接和叠加、字段的运算和连接、容积率计算和可视化分析等。\n3. **演示GIS容积率可视化分析的案例和应用**,包括城市规划与设计、房地产开发与投资等场景下的容积率可视化分析案例和应用。\n\n## 4. 课后作业\n\n### 验证学生掌握\n\n- 作业题目:GIS容积率可视化分析应用\n- 作业要求:学生根据所学知识和技能,选择一个城市规划与设计或房地产开发与投资场景,进行GIS容积率可视化分析,并撰写分析报告。\n- 作业评价:根据学生分析报告的准确性和实用性进行评分,评价学生对GIS容积率可视化分析的应用能力和掌握程度。\n\r\n","error":""}],[{"success":true,"objectId":"17e11a9eec1be962ec37987e9a250e05","text":"# 教学优化方案\n\n## 1. 核心痛点\n\n- 核心教学痛点1:学生在核密度分析中难以理解参数设置的重要性及如何合理选择参数。\n- 核心教学痛点2:学生在应用场景中难以将核密度分析与城市规划等实际问题相结合。\n- 核心教学痛点3:学生在实验过程中缺乏有效的学习策略和方法,导致学习效果不佳。\n\n## 2. 优化措施\n\n- 针对核心教学痛点1,可以通过微课和演示的方式,详细讲解核密度分析参数设置的重要性及如何合理选择参数,同时结合案例分析,帮助学生更好地理解和掌握。\n- 针对核心教学痛点2,可以通过作业的方式,要求学生将核密度分析与城市规划等实际问题相结合,分析人口分布热点区域,优化公共服务设施的布局。\n- 针对核心教学痛点3,可以通过课前预习、课堂互动、课后复习等方式,帮助学生建立有效的学习策略和方法,提高学习效果。\n\n## 3. 微课脚本\n\n标题:核密度分析参数设置的重要性及如何合理选择参数\n\n步骤1:介绍核密度分析参数设置的重要性,包括输出像元大小和搜索半径等参数的选择对分析结果的影响。\n\n步骤2:演示如何合理选择核密度分析参数,包括如何根据数据分辨率和分析精度选择输出像元大小和搜索半径等参数。\n\n步骤3:结合案例分析,展示如何根据实际问题选择核密度分析参数,如分析人口分布热点区域,优化公共服务设施的布局。\n\n## 4. 课后作业\n\n要求学生结合核密度分析参数设置的知识,分析一个实际问题,如分析某个城市的交通流量分布,选择合适的参数设置,生成交通流量分布图,并根据分析结果提出优化建议。作业完成后,要求学生提交分析报告和生成的交通流量分布图。\n\r\n","error":""}]]} | |
| """ | |