lyk24192419 2025-05-10 12:47 采纳率: 0%
浏览 9

如何使用SQL和Python筛选不符合研究领域的论文?

标题: 如何优化大模型API调用实现论文研究领域验证?(Python/SQL/deepseek)

问题背景:
我正在处理一个知识图谱数据库(MySQL 8.0),包含两个数据表:

  • research_field:存储900+个人工智能研究领域(如"深度学习")
  • ai_dissertation:存储数千篇论文,包含标题(title)摘要(abstract)字段,但无研究领域字段

环境信息:

  • Python 3.11
  • MySQL默认端口

需求:
筛选出研究领域不在research_field表中的论文,并将这些异常论文的标题输出到txt文件。
不清楚ai_dissertation表中论文的研究领域是否符合research_field表里900个研究领域的其中一个,要筛选出不符合的论文。
1、请问当前的方案1好还是方案2好?这两个方案还可以如何优化?
2、请问还有其他解决需求的方法吗?核心期望是API调用不要过多

当前方案(痛点:API调用过多):

现有实现的核心逻辑(基于deepseek API)
def 验证论文(摘要, 领域列表):

  1. 领域提取+本地比对

    • 每个摘要调用1次API提取领域
    • 本地进行简单字符串匹配
  2. 直接验证

    • 每个摘要调用1次API(但需传入900个领域)

    • Token消耗更高

      响应 = 提问"该摘要是否属于以下领域?{领域列表}"

关键约束:

  • 预算限制:需将月API成本控制在500元以内
  • 准确率:要求≥85%
  • 语言特性:主要处理中文摘要
  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-05-10 12:47
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解决方案

    使用 SQL 和 Python 可以实现论文研究领域验证。下面是一个示例解决方案:

    首先,使用 SQL 查询获取论文的领域信息:

    SELECT * FROM research_field WHERE id IN (SELECT field_id FROM research_paper WHERE title LIKE '%your_paper_title%');
    

    这将获取论文的领域信息,假设论文的标题包含 your_paper_title

    然后,使用 Python 和 deepseek 库来验证论文是否符合研究领域。首先,安装 deepseek 库:

    pip install deepseek
    

    接下来,使用 Python 代码来验证论文:

    import deepseek
    
    # 获取论文的领域信息
    field_info = pd.read_sql_query("SELECT * FROM research_field WHERE id IN (SELECT field_id FROM research_paper WHERE title LIKE '%your_paper_title%')", conn)
    
    # 使用 deepseek 库来验证论文是否符合研究领域
    paper_info = pd.read_sql_query("SELECT * FROM research_paper WHERE title LIKE '%your_paper_title%'", conn)
    for paper in paper_info:
        field_id = paper['field_id']
        field_name = field_info[field_info['id'] == field_id]['name'].values[0]
        if field_name not in ['your_research_field1', 'your_research_field2', ...]:
            print(f"论文 '{paper['title']}' 不符合研究领域 '{field_name}'")
    

    这将验证论文是否符合研究领域,如果不符合,则输出论文的标题和不符合的领域名称。

    代码解释

    1. 使用 SQL 查询获取论文的领域信息。
    2. 使用 deepseek 库来验证论文是否符合研究领域。
    3. 遍历论文信息,获取论文的领域 ID 和名称。
    4. 如果论文的领域名称不在指定的研究领域列表中,则输出论文的标题和不符合的领域名称。

    重要提示

    • 在上面的代码中,需要将 your_paper_titleyour_research_field1, your_research_field2, ... 替换为实际的论文标题和研究领域名称。
    • 在实际应用中,需要根据具体的论文和研究领域信息来调整代码。
    评论

报告相同问题?

问题事件

  • 创建了问题 5月10日