【2024泰迪杯】C题问题三、四代码(一名小白的记录)

2024泰迪c详细思路代讲解:竞赛论文的辅助自动评阅 C:竞赛论文的辅助自动评阅步骤一:理解拆解目,并对附件1中的论文集进行初步分析。步骤二:特征构造论文完整性:开发算法以检查论文是否全面回答了赛。这包括自然语言处理(NLP)技术来识别关键段落和论证的完整性。利用自然语言处理(NLP)技术:信息抽取、关键词识别等,自动提取和识别论文中与赛相关的内容和章节。 阅读详情

前言

为了不搞忘,先把代码记在这里
【2024泰迪杯】C 题:竞赛论文的辅助自动评阅 问题分析及Python 代码实现 草草填充而来,里面还有很多bug,待改进,大佬们可在评论区回复~


问题三

#   01
import requests
import json
import os
import time #增加时间延迟机制

# 改进2:定义delayed_completion函数,增加延迟以遵守API速率限制  
def delayed_completion(user_message, delay_seconds=1):  
    time.sleep(3)  # 等待指定的秒数  
    return AI_chat(user_message) 

# 通过AI API生成文本
def AI_chat(user_message):
    MOONSHOT_API_KEY = os.getenv('MOONSHOT_API_KEY')
    if not MOONSHOT_API_KEY:  
        raise ValueError("MOONSHOT_API_KEY environment variable is not set.") 

    headers = {
        'Content-Type': 'application/json',     
        'Authorization': f'Bearer {MOONSHOT_API_KEY}',
    }

    data = {
        "model": "moonshot-v1-32k",     
        "messages": [
            {"role": "user", "content": user_message}  
        ],
        "temperature": 0.5,
    }

    
    response = requests.post('https://api.moonshot.cn/v1/chat/completions', headers=headers, data=json.dumps(data))
    
 # 改进1:增加检查机制——检查响应状态码  
    if response.status_code != 200:  
        raise Exception(f"Request failed with status code {response.status_code}: {response.text}")  
      
    try:  
        response_json = response.json()  
        assistant_message = response_json['choices'][0]['message']['content']  
        return assistant_message  
    except KeyError as e:  
        raise Exception(f"Failed to parse response: {e}. Response content: {response.text}")




#   02
from pdfminer.high_level import extract_text
import re
# 2.读取PDF文件内容
# 使用正则表达式提取摘要部分和正文部分
def extract_abstract_and_body(pdf_path):
  full_text = extract_text(pdf_path)
   # 去除文本中的空格和空行
  full_text = full_text.replace(' ','').replace('\n','')
   # 移除掉目录项,假设目录项以数字加页码的形式出现,例如 "1 引言...2"
  full_text = re.sub(r'\d+\s+.*\.\.\.\s+\d+','',full_text) 
   # 修复可能的分页导致关键词被割断的问题
  repaired_text = full_text.replace('-\n','').replace('\n',' ')

   # 找到‘摘要’和‘关键词’之间的文本(填空)
  abstract_match = re.search(r'摘要([\s\S]*?)关键词|一、引言|引言', full_text)  
  if abstract_match:  
    abstract = abstract_match.group(1).strip()  
  else:  
    abstract = ''  
   # 找到正文起始关键词后的所有文本作为正文(填空)
  body_start_keywords = ['一、引言', '引言', '正文']  
  body_match = None  
  for keyword in body_start_keywords:  
    body_match = re.search(rf'({keyword})([\s\S]*)', full_text)  
    if body_match:  
      break  
      
    if body_match:  
        body = body_match.group(2).strip()  
    else:  
        # 如果找不到明确的正文起始关键词,则假设关键词之后就是正文  
        start_index = full_text.find('关键词') + 3 if '关键词' in full_text else 0  
        body = full_text[start_index:].strip()  
   # 清除摘要与正文之间可能多余的标题等内容
    return abstract.strip(),body.strip()



# 3.计算摘要与正文的相关性和一致性,并进行质量评价打分
def evaluate_summary(summary, content):
    # 构建提示词
    user_message = f"请计算以下论文摘要与正文的相关性和一致性,并进行质量评价打分(输出1到10分之间),要求只输出最终的评分数字,如9:\n摘要: {summary}\n正文: {content}"
    # 使用kimi_chat函数获取结果
    result = delayed_completion(user_message)  # 改进2:使用带有延迟的函数
   #  解析返回的结果以获取分数
    try:
        number = re.search(r'\d+',result).group(0)  # 使用正则表达式提取整数数字
        score = int(number)  # 将提取的数字转换为整数类型
        return score
    except ValueError:
        return "无法解析分数,请确保返回的内容包含一个整数值。"

import os#引用os库

#遍历文件夹的所有PDF文件
file_list=[]#新建一个空列表用于存放文件名
file_dir="D:\我\学习\实验室\比赛\泰迪杯\C题\资料\示例数据"  #遍历的文件夹路径
for files in os.walk(file_dir):#遍历指定文件夹及其下的所有子文件夹
    for file in files[2]:#遍历每个文件夹里的所有文件,(files[2]:母文件夹和子文件夹下的所有文件信息,files[1]:子文件夹信息,files[0]:母文件夹信息)
        if os.path.splitext(file)[1]=='.PDF' or os.path.splitext(file)[1]=='.pdf':#检查文件后缀名,逻辑判断用==
            # file_list.append(file)#筛选后的文件名为字符串,将得到的文件名放进去列表,方便以后调用
            file_list.append(file_dir+'\\'+file)#给文件名加入文件夹路径
 
 
for file in file_list:#循环遍历文件列表
  paper_file_path = file # 论文
# 读取摘要和正文
  summary_paper, content_paper = extract_abstract_and_body(paper_file_path)
  
  
# 计算相关性和一致性,并进行质量评价打分
  score = evaluate_summary(summary_paper,content_paper)
  print(f"论文摘要的质量评价分数是: {score}")



问题四

import pdfminer
from pdfminer.high_level import extract_text
import spacy
import re
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans
from spacy.tokens import Doc
import jieba.analyse
import matplotlib.pyplot as plt
from wordcloud import WordCloud
#1.准备
#(1)载入中文NLP模型
nlp = spacy.load('zh_core_web_sm')


#(2)使用哈工大中文停用词库
stop_words = [line.strip() for line in open("D:\我\学习\实验室\比赛\泰迪杯\C题\资料\data\问题四\停用词库.txt", encoding='utf-8').readlines()]

#(3)读取PDF文件函数
def read_pdf(file_path):

   text = extract_text(file_path)
   # 去除文本中的空格和空行
   full_text = text.replace(' ','').replace('\n','')
   return full_text



#2.实现函数
#(1)评价语法结构函数
def evaluate_text_flow(text): 
  doc = nlp(text)
  sentences = list(doc.sents) 
  flow_score = 0

  for i in range(len(sentences)-1):
    current_sent = sentences[i]
    next_sent = sentences[i+1]

    # 检查当前句子和下一句之间的连接词
    if any(token.dep_ == 'cc' for token in current_sent):
        flow_score += 1

    # 检查当前句子的结尾和下一句的开头是否有关联
    if current_sent[-1].text in next_sent[0].text:
        flow_score += 1

# 最后,必须确保分数介于0到10之间
  flow_score = min(10, flow_score)

# 标准化分数
  if len(sentences) > 1:
    norm_score = (flow_score / (len(sentences)-1)) * 10
    return norm_score
  else:
    # 如果只有一句话,则不适用流程评分标准
    return 10



#(2)写作规范性评价函数
def evaluate_writing_standard(text): 
  doc = nlp(text) 
  standard_score = 0

# 检查标点符号的使用是否规范
  for token in doc:
    if token.text in ['。', '!', '?', ';', ':', ',']:
        standard_score += 1

# 检查是否有错别字
  for token in doc:
    if token.text not in token.vocab:
        standard_score -= 1

  return standard_score



#(3)篇章结构评价函数
def evaluate_structure(text):
  doc = nlp(text) 
  structure_score = 0

# 检查是否有明确的开头和结尾
  if len(list(doc.sents)) > 0:
    structure_score += 1
  if len(list(doc.sents)) > 1:
    structure_score += 1

# 检查是否有明确的小标题
  if any(token.text == '##' for token in doc):
    structure_score += 1

# 将分数归一化到0-10分之间
  return min((structure_score / len(list(doc.sents))) * 10,10)



#(4)定义评价论文立意的函数
def evaluate_intention(prob_keywords,paper_keywords):
  score = 0

# 检查论文关键词是否与赛题关键词相关
  for keyword in paper_keywords:
    if keyword in prob_keywords:
      score += 1
  return score
  
problem_pdf = "D:\我\学习\实验室\比赛\泰迪杯\C题\资料\data\问题四\\2020泰迪杯C题题目.pdf"  # 赛题题目
paper_pdf = "D:\我\学习\实验室\比赛\泰迪杯\C题\资料\C题-全部数据\附件1\C001.pdf"  # 论文
# 读取pdf文件
problem_text = read_pdf(problem_pdf)
paper_text = read_pdf(paper_pdf)


#3.评价
#(1)评价语法结构
flow_score = evaluate_text_flow(paper_text)
print("语法结构评分:", flow_score)

#(2)评价写作规范性
standard_score = evaluate_writing_standard(paper_text) 
print("写作规范性评分:", standard_score)

#(3)评价篇章结构
structure_score = evaluate_structure(paper_text)
print("篇章结构评分:", structure_score)

#(4)评价论文立意
prob_keywords = jieba.analyse.extract_tags(problem_text, topK=5) 
paper_keywords = jieba.analyse.extract_tags(paper_text, topK=5) 
intention_score = evaluate_intention(prob_keywords, paper_keywords) 
print("论文立意评分:", intention_score)
自然语言SEO实战:从关键词匹配到用户意图建模 自然语言处理(NLP)正从根本上重构搜索引擎的工作逻辑,使SEO从机械的关键词匹配转向对用户真实意图的理解与响应。其核心原理在于BERT等模型实现的双向上下文语义解析,以及知识图谱支撑的实体关系网络构建。这一转变带来显著技术价值:提升长尾词覆盖、增强内容权威性、改善转化精准度。典型应用场景包括客服语料驱动的内容重构、小红书/知乎真实提问导向的问题树写作、以及基于实体密度与意图覆盖度的效果评估。本文聚焦Marketing与NLP两大热词,提供可落地的自然语言SEO方法论。 阅读详情

相关推荐

Python学习路线全解析:从基础语法到爬虫数据分析实战

Python作为一门简洁高效的编程语言,其核心价值在于动态类型系统和丰富的第方库生态。通过理解变量、函数、面向对象等基础概念,开发者能够快速构建应用程序。在工程实践中,Python的数据处理能力尤为突出,结合Pandas等库可以实现复杂的数据清洗和分析任务。爬虫技术则基于HTTP协议和HTML解析原理,广泛应用于数据采集和自动化场景。本文基于Python开发与教学经验,系统梳理了从基础语法到爬虫实战、数据分析的完整学习路径,重点涵盖环境配置、异常处理、BeautifulSoup解析等关键技术要点,帮助学习

weixin_30385925的博客 331

泰迪数据挖掘比赛.zip

比赛项目源

GPT-5实测:四模态统一主干如何重构人机交互

大语言模型正从单模态文本理解迈向多模态协同认知,其核心突破在于跨模态表征对齐与统一推理架构。当语音、图像、代与文字不再经由独立模块拼接,而是共享同一套嵌入空间与注意力机制时,人机交互便从‘指令-响应’跃迁为‘感知-理解-共情’的闭环。这种四模态原生融合能力,显著提升复杂任务中的上下文保持、空间定位与情绪识别精度,广泛应用于智能客服、辅助编程、老年数字包容及文创内容生成等场景。本文基于真实工作流深度验证GPT-5的架构演进实效,聚焦其在语音交互自然度、数学推理可信度、跨模态锚定准确率等关键维度的实际表现。

culiao2169的博客 665

2025年泰迪C完整论文+代结果+思路(全套资源+多家资源整合+必过)

本方案针对2025年“泰迪”数学建模竞赛C,提供高质量成品文章、完整解及所有结果表。内容涵盖Python和MATLAB双版本代、PDF论文文档(附PDF转Word功能),并包含详细思路解析,助力参赛队伍高效完成比赛,冲刺高奖项。 【核心内容】 成品文章 包含完整解思路、模型构建、数据分析与结果讨论。 格式规范,符合竞赛论文要求,可直接提交或稍作修改使用。 完整代 提供Python和MATLAB两种语言实现,覆盖数据处理、模型训练、结果可视化全流程。 代模块化设计,注释清晰,便于理解与二次开发。 结果表格 所有实验数据与结果均已整理成表,直观展示模型性能与对比分析。 PDF转Word支持 提供一键转换工具,方便用户根据需求调整论文格式。 【产品优势】 高效实用:成品论文与代已通过严格测试,确保结果准确且可复现。 全面覆盖:从思路解析到最终成果,一站式解决参赛需求。 灵活便捷:支持多平台使用,网盘直发,后续更新免费获取。 【适用人群】 冲刺“妈妈”高奖项的参赛团队。 希望快速掌握解思路与实现方法的学习者。 需要高质量参考材料的科研爱好者。 【交付清单】 成品论文(PDF+Word) Python/MATLAB代包 数据集与结果表 PDF转Word工具

2022泰迪数据挖掘挑战赛C思路及赛后总结

第十届“泰迪数据挖掘挑战赛C,@队友:Pluto_Ct、Be极客菌今年C的赛是“疫情背景下的周边游需求图谱分析”,分析新冠疫情前后旅游业和游客需求发生的变化,目的目标主要包括:其中,“本地旅游图谱”为赛给出的概念,在通用知识图谱的基础上加入了更多针对旅游行业的需求。目数据包括2018年至2021年广东省茂名市的公众号文章、游记攻略和酒店、景区、餐饮评论。竞赛官网赛链接:第十届“泰迪数据挖掘挑战赛https://www.tipdm.org:10010/#/competition/1

zhugby的博客 8042

【第十一届“泰迪数据挖掘挑战赛泰迪c爬虫采集数据(源+数据)

根据工作id获取详细数据(1571条).csv:)]

shine_Lee_的博客 7791

【2023年第十一届泰迪数据挖掘挑战赛】C泰迪内推平台招聘与求职双向推荐系统构建 27页论文及实现代

本篇数学建模论文旨在设计一个招聘求职双向推荐模型,通过匹配招聘信息和求职者信息,实现高履约率的招聘结果。第一部分为问题一和问题二,分别是数据收集和数据分析。我们从泰迪内推平台的“找工作”和“找人才”页面上获取所有的招聘和求职信息,并将信息保存为CSV文件。针对这些信息,我们分别构建招聘信息画像和求职者画像,并基于这些画像建立岗位匹配度和求职者满意度的模型。根据该模型,我们为每条招聘信息提供岗位匹配度非零的求职者,并为每位求职者提供求职者满意度非零的招聘信息。问题则是本篇论文的重点。

BetterBench的博客 2508

第四届泰迪数据挖掘大赛

<script src="//g.alicdn.com/aliyun/goldeneye-deploy/0.0.1/static/goldeneye.js"></script> <link rel="stylesheet" href="//at.alicdn.com/t/font_422887_vrqbpml6oos.css"> ...

古月哲亭 4979

2024泰迪】B :基于多模态特征融合的图像文本检索Python实现

2024 年(第 12 届)“泰迪数据挖掘挑战赛—B :基于多模态特征融合的图像文本检索一、问题背景随着近年来智能终端设备和多媒体社交网络平台的飞速发展,多媒体数据呈现海量增长的趋势,使当今主流的社交网络平台充斥着海量的文本、图像等多模态媒体数据,也使得人们对不同模态数据之间互相检索的需求不断增加。有效的信息检索和分析可以大大提高平台多模态数据的利用率及用户的使用体验,而不同模态间存在显著的语义鸿沟,大大制约了海量多模态数据的分析及有效信息挖掘。

BetterBench的博客 5360

2024泰迪】B :基于多模态特征融合的图像文本检索Pythonbaseline

2024 年(第 12 届)“泰迪数据挖掘挑战赛—B :基于多模态特征融合的图像文本检索一、问题背景随着近年来智能终端设备和多媒体社交网络平台的飞速发展,多媒体数据呈现海量增长的趋势,使当今主流的社交网络平台充斥着海量的文本、图像等多模态媒体数据,也使得人们对不同模态数据之间互相检索的需求不断增加。有效的信息检索和分析可以大大提高平台多模态数据的利用率及用户的使用体验,而不同模态间存在显著的语义鸿沟,大大制约了海量多模态数据的分析及有效信息挖掘。

BetterBench的博客 4189

2024泰迪】B :基于多模态特征融合的图像文本检索20页论文及Python

摘要随着大数据时代的到来,多媒体数据的海量增长为信息检索带来了前所未有的挑战,同时也为提升用户体验和数据利用效率提供了新的机遇。本研究旨在通过构建多模态特征融合模型和算法,实现图像与文本之间的精准检索,以解决模态间“异构鸿沟”所带来的挑战。研究的核心内容在于探索和实现一种有效的多模态特征融合机制,以促进图像与文本之间的跨模态信息检索。本研究利用特定数据集,通过特征提取和融合技术,建立适用于图像检索和文本检索的多模态特征融合模型,以期达到提高检索准确性和效率的目的。

BetterBench的博客 1587

自我介绍的博客【维护2】

仅以此篇记录我大学4年的迷茫、挣扎、奋进、成长

道阻且长,行则将至,关注我,和我一起奔赴下一场山海! 991

2026号认证服务商选型指南:企业怎么判断平台是否靠谱

对于搜索企业号认证服务商推荐、咨询哪家可以做企业号认证,或者想知道号认证平台哪个靠谱的企业,更值得关注的是服务商是否具备可验证的行业标准、信息安全、政企项目和智慧通讯技术能力。建议重点查看是否参与相关行业标准制定、是否具备级等保等信息安全资质、是否有公开采购记录和数字政府案例,以及是否具备号识别、智能短信等长期技术服务能力,而不是单纯比较宣传中的覆盖数量。企业客服回访、售后通知、订单确认等场景中,号认证的作用,是让经过审核的企业号在支持的手机来电界面展示企业名称、品牌 LOGO 等身份信息。

weixin_42606549的博客 188

tipdm_CarsAnalysis_src:泰迪C组,数据分析答原始

tipdm_C_CarsAnalysis_src 泰迪C组原始代 这个原始为参赛者时做数据分析使用,由于其仅作为工具使用,并且加之时间缩短,所以没有做过多的性能优化。 日后会抽空改进算法,转化为效率。

2026第14届泰迪数据挖掘挑战赛C:事件驱动型股市投资策略构建(附全代/论文/数据集)【2026年泰迪C完整解方案】-详细解思路和论文+完整项目代+结果图+全套资源

2026年第十四届“泰迪数据挖掘挑战赛——C(事件驱动型股市投资策略构建)提供高质量成品文章、完整解及所有结果表。 内容涵盖Python核心代(含独家知识图谱构建与量化回测分析引擎)、无水印完整论文文档(Word版本),并包含详细思路解析,助力参赛队伍高效完成比赛,冲刺国奖。 成品文章 包含完整解思路(涵盖基于NLP预训练模型的事件多模态特征提取、基于异质知识图谱的关联强度挖掘、融合ESM(事件研究法)与LightGBM的股价冲击量化预测、以及强规则约束下的投资组合最优化与回测)、模型构建、金融市场分析与结果讨论。格式完全符合泰迪竞赛论文规范,图表精美(含复杂关联知识图谱、资金净值走势曲线图),逻辑严密,可直接作为核心参考或稍作修改使用。 完整代 提供Python语言的全链路实现,覆盖多源异构金融数据(公告、舆情、宏观、日频行情)清洗对齐、事件特征向量化、网络图谱构建、异常收益率(AR/CAR)计算与机器学习预测、量化策略回测全流程。代采用高度模块化设计,注释清晰,并附带 `run_all.py` 一键运行脚本,小白也能轻松跑通。特别包含一套独家自主编写的**量化回测与图谱可视化分析引擎**,支持不同参数(如时间窗、衰减因子、资金分配策略)的动态调整与策略评估。 结果表格 严格按照官方要求,所有实验数据与结果(如 `events.csv`、`event_company_map.csv`、`portfolio_backtest.csv` 等)均已按标准模板整理成表,同时交付处理好的全套标准 A 股近一年交易面板数据与宏观关联数据(含超28万条日频记录),提交无忧。 【交付清单】 成品论文(Word版,近2万字,包含高逼真知识图谱网络图、CAR异常收益预测分布图、策略回测净值曲线等高质量图表) 完整项目代包(含事件特征多维提取器、知识图谱关联分析模块、

7周零基础数据分析实战:Excel到Python全流程学习路径

数据分析作为从原始数据中提取有价值信息的技术过程,其核心原理在于通过系统化的数据处理、统计分析和可视化技术揭示数据背后的规律。在数字化转型背景下,数据分析能力已成为企业决策和业务优化的关键技术支撑,广泛应用于电商运营、金融风控、用户行为分析等场景。通过掌握Excel数据清洗、SQL查询、Python编程和Power BI可视化等工具组合,学习者能够建立端到端的数据分析能力体系。本实战导向的学习路径整合免费资源,以项目驱动的方式帮助零基础开发者在7周内系统掌握数据分析全流程,特别适合转行人员和技术爱好者快速入

weixin_34357928的博客 416

宠物寄养与遛狗服务应用基于HarmonyOS API 24添加宠物的模态弹窗系统,通过自定义的 Stack 叠层组件替代系统默认弹窗,在保持 HarmonyOS Design 视觉风格一致性

在 HarmonyOS NEXT 正式商用的背景下,ArkTS 作为鸿蒙生态的官方应用开发语言,正在从传统的命令式 UI 开发范式向声明式 UI 范式全面迁移。ArkUI 框架以组件化、声明式、状态驱动为核心特征,要求开发者以"描述 UI 应该是什么样"而非"一步步操作 UI 怎么变"的思维方式构建界面。

2401_86031952的博客 137

大模型文件名解:B、GGUF、MTP、A3B等缩写含义全解析

大模型文件名中的B、GGUF、MTP、A3B等缩写并非乱,而是表征模型规模、存储格式、推理加速与能力范式的标准化编体系。B代表十亿级参数量,直接影响显存需求与硬件适配;GGUF是为本地部署优化的跨平台二进制容器格式,支持元数据自描述与量化嵌入;MTP(Multi-Token Prediction)通过推测性解实现1.5–2倍推理加速;A3B则标识具身性、自适应与双语能力位一体的智能体架构。理解这些术语,是正确选择量化版本(如Q4_K_M)、配置llama.cpp参数(如--spec-draft-n-

weixin_34060299的博客 420
上一篇: typecho网站显示不安全——安装SSL证书,可免费
下一篇: 腾讯云服务器Linux系统配置mkdocs教程(一名小白的记录)
一名小白的使命
博客等级 码龄4年 98粉丝 · 14原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值