利用AI做科研的实践

一直以来都是听别人说,AI怎么怎么厉害,尤其在做科研方面,从实验到论文。虽然也在一些常见任务上经常使用AI,但是系统完整的体验,尤其面向一个具体的较大规模科研任务,AI是否可以提供足够的支撑,我还从未有过经验。今年暑假,我得空尝试了下。一开始,先不说结论,先开始。

这是一个比较大的任务。有大约50多万篇文献数据,每篇论文都给出了标题、摘要等基本信息,我想通过一些可视化手段全面展示这些文献相关研究内容的主题变迁。

首先需要处理数据。原始数据过于庞杂,而且都是自然语句,不便于分析和展示,我想对其进行关键词抽取。第一个提示词:

你是一名研究图书情报学科的专家,掌握较好的深度学习和自然语言处理技能,现在有一份几十万条的论文数据,具体各个字段为:
doi,title,authors,organizations,abstract,keywords,english_title,english_abstract,english_keywords,classification_number,publish_date,online_publish_date,pages,journal_title,issn,year_issue,column_name,detail_url,crawled_at

比如这是一条对应的记录:
10.11925/infotech.2096-3467.2024.0259,融合古籍信息的中医药知识图谱推理研究,韩青; 周晓英,浙江中医药大学医学技术与信息工程学院 杭州 310053; 中国人民大学信息资源管理学院 北京 100872,"[目的]针对中医药知识图谱存在结构稀疏、语义信息利用不足等问题,将中医古籍文本作为实体描述信息引入表示学习模型,以提升知识图谱推理性能.[方法]以《伤寒论》398条条文为语料,通过人工标注与自动抽取相结合的方式构建经方知识图谱,并将《伤寒论》及《金匮要略》中与实体相关的条文作为实体描述语料输入预训练语言模型.在TransE、DistMult、ComplEx、SimplE等基线模型上分别融合静态BERT表示(BERT-Static)和端到端微调BERT表示(BERT-Dynamic)进行知识图谱推理实验.[结果]在经方知识图谱上,融合古籍信息后的推理模型在MRR、Hits@1、Hits@3、Hits@10等指标上的性能均明显优于对应的基线模型.从绝对数值看,MRR 由 0.062~0.089提升至0.257~0.270,Hits@10 由 0.148~0.181 提升至 0.513~0.547.文本长度消融实验表明:当BERT输入长度由16增加至96个中文字符时,模型性能持续提升;但超过96个中文字符后性能提升不再显著,而训练时间近似线性增长.[局限]本研究实验数据主要来源于《伤寒论》及《金匮要略》相关条文,知识图谱规模相对有限;方法上仅考虑实体描述信息与结构三元组的联合表示,未纳入关系路径与规则推理等结构增强信息.[结论]将中医古籍文本作为实体描述信息并与预训练语言模型结合,能够有效增强中医药知识表示能力,显著提升中医药知识图谱推理性能.",中医药; 中医古籍; 知识图谱推理; 预训练语言模型; 经方知识图谱; 表示学习,Knowledge Graph Reasoning for Traditional Chinese Medicine Enhanced by Classical Texts,"[Objective]This study introduces classical traditional Chinese medicine(TCM)texts as entity descriptions into representation learning models to improve knowledge graph reasoning performance,addressing the problems of structural sparsity and insufficient utilization of semantic information in TCM knowledge graphs.[Methods]A classical formula knowledge graph was constructed using 398 clauses from Shanghan Lun as the primary corpus,combining manual annotation and automatic extraction in a hybrid process.Relevant passages from Shanghan Lun and Jinkui Yaolue,associated with the graph's entities,were used as textual descriptions and were encoded using a pre-trained language model.Knowledge graph reasoning experiments were conducted by integrating static BERT representations(BERT-Static)and fine-tuned BERT representations(BERT-Dynamic)with several baseline models,including TransE,DistMult,ComplEx,and SimplE.[Results]On the Jingfang knowledge graph,the reasoning models enhanced with classical text information consistently outperformed their corresponding baseline models in MRR,Hits@1,Hits@3,and Hits@10.In absolute terms,MRR increased from 0.062~0.089 to 0.257~0.270,and Hits@10 increased from 0.148~0.181 to 0.513~0.547.Ablation experiments on input length further indicated that model performance improved as the BERT input length increasing from 16 to 96 Chinese characters,but improvements became marginal beyond this point while training time increased approximately linearly.[Limitations]The experimental data mainly derive from passages in Shanghan Lun and Jinkui Yaolue,and the scale of the knowledge graph remains relatively limited.Moreover,the proposed method only considers the joint representation of entity descriptions and structural triples,while additional structural enhancement mechanisms such as relation paths and rule-based reasoning are not yet incorporated.[Conclusions]Incorporating classical TCM texts as entity descriptions and integrating them with pre-trained language models can effectively enhance knowledge representation and significantly improve reasoning performance in TCM knowledge graphs.",Traditional Chinese Medicine; Classical Texts; Knowledge Graph Reasoning; Pre-Trained Language Models; Jingfang Knowledge Graph; Representation Learning,G255; TP391.1; R2-03,2026-03-25,2026-05-25,12 (25-36),数据分析与知识发现,2096-3467,"2026,10(3)",研究论文,https://d.wanfangdata.com.cn/periodical/xdtsqbjs202603003,2026-07-19T15:42:21+08:00

传统词语共现方法可以只能得到词语之间纯粹的共现关系,从而导致诸如“研究”“性能”等无关词语也具有较高的共现频次,我想利用人工智能方法,通过调用本地Ollama大语言模型,调用 Ollama + 固化 JSON Schema 抽取的Python代码,将每条记录都抽取成几个方面:
比如抽取成ID(行号),research_object,core_tech,research_task,app_scenario,publish_date,online_publish_date,year_issue,publish_year等

请完成一个Python代码版本,逐条抽取几十万条的论文数据文件(articles_merged.csv)中每条记录,并解析成各个成分字段,存储到papers_extracted.csv,其中考虑到中途可能崩溃,抽取代码可以首先判断papers_extracted.csv最后一条记录的行号,并接着下一条记录继续抽取

主要感受:

1)这个提示词其实并非一下子写出来,也是将问题抛给大语言模型后结合自己的专业认知,形成了一个初步的思路。其中大语言模型给我的主要建议就是具体给出了可以抽取的几个主要部分,如研究对象、核心技术、研究任务和应用领域。我觉得比较合理。但是我自己也从实际运行中调整补充了两点:一是要求使用本地Ollama,当然为了节省大量的Token费用;二是抽取非常漫长,中间可能会意外中断,我希望能接着继续抽取而不是从头再来。

2)目前的大语言模型代码质量出乎我的意料,非常高,大部分情况下都可以直接运行,即使对于这里非常复杂的需求,仍然可以满足。但是需要在提示词中尽可能详细的描述清楚,比如字段名称和内容等,需求也需要先期通过大语言模型和自己运行调整,并非一蹴而就就可以写成。比如后期仍然还是继续调整了要求,要求提高运行速度,并且增加中间处理过程的输出,能看到目前的进展。在维持上下文会话状态时,可以直接继续提问,如果不放心,可以将上一次生成的代码作为附件,继续要求在此基础上修改。

3)具体的大语言模型可以使用自己觉得不错的任何模型,我使用的是Gemini和阿里的Qoder,前者比较适合整体输出,后者非常适合对于具体问题实时调整。


接着需要对抽取的每个论文成分继续关键词抽取,这是提示词:

下面是papers_extracted.csv文件,基本字段列结构为:

ID,doi,research_object,core_tech,research_task,app_scenario,publish_date,online_publish_date,year_issue,publish_year

请编写Python代码,可以将ID和research_object列信息单独抽取出来,其中research_object列内容再次使用分词方法拆解为一个或者多个关键词,去除常见的无用词语,比如“科学论文的颠覆性与其技术影响的关系”应该得到“科学论文”“颠覆性”技术影响”,最终形成ID和research_object拆解关键词列,每个关键词使用逗号分隔

主要感受:

1)因为我们在进行这些工作之前,往往并不可能意识到全部的具体技术路线,因此不可能一下子就能写出完整的需求。同时,从理论上看,也不建议这样做,还是小步试错、逐渐求精更为合理。

2)这个版本的提示词结合刚才生成的论文抽取成分文件,只对其中一个成分进行关键词抽取。默认情况下,大语言模型会使用诸如jieba等分词工具,效果有限。通过观察,我再次要求改为使用Ollama调用大语言模型来分词。

3)为了和原始数据能对应上,我还继续要求在编写Python代码时,在从第二行开始的每条记录前增加一个从1开始的计数列,并在第一行标注列名为ID,以便和原始数据行号对应便于我核实。显然这些要求都是在实际运行时才能知道需要增加的。还是老方法,要么维持在当前会话状态下,要么把已经可以运行并且需要修改的代码附件上去,以确保在原先内容上进行修改。

4)年份信息非常重要,考虑到原始数据年份信息可能有误或者部分缺失,因此要求从publish_year抽取,如果该列原始内容为空,则考虑从publish_date、online_publish_date、year_issue等更多列中按照最常出现的年份来获取年份填充进去。


利用词语共现是一种常见的分析方法。因此接下来,我准备对刚才拆分好的论文各个成分,先取出研究对象,进行双词共现分析。提示词为:

下面有papers_keywords_split.csv文件,其中有research_object_keywords列,该列内容为可能为空,大部分情况下都有值,内容为使用逗号分隔的多个关键词或者一个关键词,如:
中医知识问答系统
科学论文,颠覆性,技术影响
...

请编写Python代码,遍历全部该列各行,首先抽取所有的关键词,统计每个关键词出现的行数,并存储到文件中。
然后再次所有共现关键词,即同时出现在一行中任意两个关键词,统计所有共现关键词对及其出现的行数,也存储到文件中。

在这个地方,即使AI可以帮助我们快速完成代码,但是在思路上还需要自己进行把控。比如我的想法是获得每个关键词的频次和每两个关键词的共现频次,以备后续分析使用。

但是做到这一步,问题就逐渐产生了。生成的双词首先会形成冗余互对,即A和B共现必然还有一个B和A共现。另一个关键问题是对于”研究“”问题“等词语常常都是高居大部分词语共现榜首的高频共现词语。

科研做到这一步,将会产生明显的分化。既可以通过AI询问,更应该结合自己的专业知识做出合理选择。


我的初步想法是,在存储共现关键词对时,保证第一个关键词出现的行数要大于等于第二个关键词。因为我认为上位概念对应的关键词出现频次应该高于下位的概念词语。这显然是一个假设。

提示词为:

请修改上述代码,确保在存储共现关键词对时,保证第一个关键词出现的行数要大于等于第二个关键词

为了进一步观察这种划分的效果,我再次发出提示词:

现在有文件keyword_cooccurrences.csv,内容如:

source,target,weight

图书馆,服务,1052

图书馆,网络环境,512

高校图书馆,信息服务,485

高校图书馆,服务,453

图书馆,建设,441

服务,参考咨询,392

图书馆学,情报学,380

档案管理,事业单位,377

公共图书馆,服务,324

图书馆,管理,311

图书馆,读者,296

图书馆,阅读推广,280

...

请根据用户在运行时输入的一个词语,抽取该所有以该词语作为source的行,取weight值最大的前10行,以对应的target关键词作为下级节点,再对每一个下级节点,再次使用同样的方法抽取下一层各自的节点,只需三级即可,最后绘制下树状图。生成的树状图可以拖拽,默认关闭所有节点下级节点,点击某个节点才展示下一级节点,并且可以拖拽调整显示位置。


以上是这个科研工作刚起步的感受和过程,我在大约十几年前也做过类似的工作。当时不论是数据处理还是可视化展示都花了很多时间,当然还包含这次做法的一些经验形成。然而,有了AI,对于大部分代码工作都已经不用我来完成,我只需提供思路,引导生成所需的内容。前前后后也就一二个小时,效果惊人。我觉得就像OPC一人公司一样,未来一人科研团队也极有可能。

相关新闻

KafkaProducer 源码深度剖析:RecordAccumulator 封装消息流程

KafkaProducer 源码深度剖析:RecordAccumulator 封装消息流程

为什么需要 RecordAccumulator 前面几篇讲了 send() 怎么序列化、怎么选分区。但选完分区后,消息不是直接发出去的——那样每条消息一次网络请求,吞吐会惨不忍睹。 Kafka Producer 的核心优化就是攒批:同一分区的消息先在内存里攒成一个批次&…

2026/10/21 5:17:06 阅读更多 →
HTML5视频播放实战:从video标签到编码兼容与性能优化

HTML5视频播放实战:从video标签到编码兼容与性能优化

1. 先搞清楚:为什么视频不能直接塞进网页1.1 从GIF到HTML5视频的演进前几年还经常能看到有人用GIF做演示动效,一个十几秒的录屏转成GIF之后动辄几十MB,加载起来页面卡得不行。GIF本质上是图像格式,不是为连续画面临时设计的&#…

2026/10/21 5:16:06 阅读更多 →
朴素贝叶斯与SVM同场竞技:垃圾邮件识别Python工程全解析

朴素贝叶斯与SVM同场竞技:垃圾邮件识别Python工程全解析

简介:这是一个基于朴素贝叶斯与支持向量机(SVM)的垃圾邮件识别系统,适合机器学习入门者、毕业设计及分类项目实战人群。项目通过对正常邮件和垃圾邮件进行语料训练,完成词频统计与模型对比,实现邮件自动分类…

2026/10/21 5:16:06 阅读更多 →

最新新闻

Elasticsearch集群安全配置:TLS/SSL与密钥库管理全解析

Elasticsearch集群安全配置:TLS/SSL与密钥库管理全解析

给Elasticsearch集群做安全配置这件事,远比想象中麻烦。很多人以为在elasticsearch.yml里加几行TLS/SSL配置就能收工,结果往往是节点之间互相不认证书、Kibana连不上、客户端报handshake failed,最后只能回滚。我这次把一套三节点ES集群从裸H…

2026/10/21 5:49:18 阅读更多 →
嘎嘎降AI实战教程:从注册到多轮降重,让AI文本更自然

嘎嘎降AI实战教程:从注册到多轮降重,让AI文本更自然

"嘎嘎降AI"这名字听起来有点随意,但用起来确实能解决一个实际问题:AI生成的内容,如何改得更像人写的。很多朋友现在写材料、做方案、写公众号,第一稿都习惯让AI对话软件先起个草,然后再自己改。可草稿一到手…

2026/10/21 5:49:18 阅读更多 →
广播、未知、同网、异网:交换机转发与排障核心解析

广播、未知、同网、异网:交换机转发与排障核心解析

干网络这行久了,最常被新人追问的一个问题是:交换机把一个帧从某个端口收进来之后,它凭什么决定从哪个端口送出去?教科书上会讲查MAC地址表、泛洪、丢弃,但真到排障时,大家还是容易懵。后来我发现&#xff…

2026/10/21 5:49:18 阅读更多 →
嘎嘎降AI工具详解:从注册到实操的AI文本自然化处理指南

嘎嘎降AI工具详解:从注册到实操的AI文本自然化处理指南

“你手头有一段AI生成的文章,第一眼读起来特别工整,逻辑也没什么毛病,但总觉得有点‘板’,像戴着面具在说话”——这就是我最初接触到“嘎嘎降AI”这个工具时最想解决的问题。它不是用来做文案初稿的,也不是单纯改错别…

2026/10/21 5:49:18 阅读更多 →
技能管理系统:从技能地图到刻意练习的完整框架

技能管理系统:从技能地图到刻意练习的完整框架

很多人看到“skills”这个词,第一反应是“又一篇讲职场技能提升的文章”。但我今天想换个角度聊:技能不是一个名词,而是一套需要持续维护的系统。你收藏过一堆课程、买过一堆书、报过训练营,最后真正变成自己能力的,其…

2026/10/21 5:49:18 阅读更多 →
AI信息挖掘实战:从提问到交叉验证,把碎片信息串成认知

AI信息挖掘实战:从提问到交叉验证,把碎片信息串成认知

元旦的钟声刚敲过,我猜不少人正把“新的一年多学点东西、把手头的事做精”写进计划表。这几天我发现一个很有意思的现象:大家不是不想查资料,而是被资料淹没了。打开浏览器想看某个行业的最新动态,结果十条链接里八条是去年的&…

2026/10/21 5:48:18 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/21 4:27:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →