当前位置:首页>python>Python搭建Bert-BiLSTM-CRF与Neo4j知识图谱实现心理疾病咨询问答系统|附AI智能体、代码和数据

Python搭建Bert-BiLSTM-CRF与Neo4j知识图谱实现心理疾病咨询问答系统|附AI智能体、代码和数据

  • 2026-07-06 22:31:04
Python搭建Bert-BiLSTM-CRF与Neo4j知识图谱实现心理疾病咨询问答系统|附AI智能体、代码和数据

全文链接:https://tecdat.cn/?p=46314

原文出处:拓端数据部落公众号

作者信息

Xinyu Li

西南财经大学统计学硕士,四外维科技数据分析岗位

在此对Xinyu Li对本文所作的贡献表示诚挚感谢,她在西南财经大学完成了统计学专业的硕士学位,专注深度学习、数理金融和数据采集领域。擅长SQL、R语言、Python和Excel。Xinyu Li曾在四外维科技公司担任数据分析岗位,深度参与心理疾病数据挖掘与知识图谱构建项目,积累了从数据爬取到模型训练再到系统部署的端到端实践经验。

心理健康问题日益受到社会关注,但互联网上的相关信息质量参差不齐,用户难以快速获取科学可靠的心理疾病知识。知识图谱技术可以将分散在互联网上的心理健康知识进行结构化整合,配合自然语言处理技术实现智能问答,为用户提供精准的心理咨询服务。我们之前为一个心理健康咨询平台完成了这样一套系统的设计与交付——从数据爬取、知识图谱构建到NER模型训练再到问答系统上线,整个过程积累了不少实战经验。本文将我们的Bert-BiLSTM-CRF+Neo4j知识图谱建模经验沉淀为一个对话式AI智能体。

—— Xinyu Li

阅读原文进群获取本文完整代码、数据、AI智能体及更多最新AI见解和行业洞察,可与900+行业人士交流成长;还提供人工答疑,拆解核心原理、代码逻辑与业务适配思路;遇代码运行问题,更能享24小时调试支持。

心理疾病数据爬取

实体/关系/属性抽取

Neo4j知识图谱构建 ←── 知识可视化展示

Bert-BiLSTM-CRF实体识别 ──→ 特征词意图分类

│ │

▼ ▼

Cypher查询语句生成 ──→ 知识图谱检索 ──→ 答案组装返回

相关阅读

READ MORE

原文链接:https://tecdat.cn/?p=45777

本文在约20万条标注数据基础上,构建了BERT-BiLSTM-FixedCRF模型,针对4GB显存环境实施了梯度累积、混合精度等优化策略,测试集F1分数达98.9%,系统已封装为Flask API与Web交互界面。文中详细展示了数据预处理、模型选型、训练监控、结果可视化及错误诊断的全流程,与本文的心理疾病NER模型形成技术互补——本文侧重小样本心理疾病场景的Bert-BiLSTM-CRF实践,而该文侧重大规模医疗数据的FixedCRF优化与部署方案。

项目概述

心理健康不仅关系到个人的幸福感,还直接影响到社会的整体和谐与发展。面对海量的心理健康相关信息,如何快速、准确地获取专业知识成为一大挑战。

知识图谱技术作为一种语义网络技术,通过将复杂的知识结构化、可视化,促进了信息的整合和智能检索。利用知识图谱构建心理咨询问答系统,可以有效组织和利用分散在互联网上的心理健康知识,为用户提供精准、个性化的咨询服务。

📌 注释:知识图谱就好比给海量信息装了一套"导航系统"——以前用户在互联网上找心理疾病知识像是在迷宫中摸索,现在有了图谱,每条信息之间都建立了清晰的"路标"和"关联线",用户可以直接从"抑郁症"这个节点跳到"症状"、"治疗方法"等相关节点,不再漫无目的地搜索。

越来越多的人们愿意通过互联网搜索心理方面的知识,但这些信息质量良莠不齐,难以筛选出可靠的信息。问答系统可以根据用户问题针对性地返回答案,节约用户时间。

本系统基于知识图谱构建心理咨询问答平台,主要特点包括:

  1. 知识图谱构建:包含心理疾病、症状、治疗方法等实体和关系的心理健康知识图谱
  2. 智能问答:利用自然语言处理技术理解用户问题并提供答案
  3. 知识可视化:通过图形化展示知识图谱,直观理解心理健康概念及其相互关系
  4. 用户友好的交互界面:简洁、直观的界面设计

数据处理及图谱构建

知识图谱构建流程

构建心理疾病知识图谱包括数据爬取、知识抽取、存储与可视化等步骤。首先在选取数据源时,考虑到心理疾病知识图谱专业性较强,数据源筛选尤为重要。然后通过爬虫技术从目标数据源爬取心理疾病相关数据。接着从这些数据中抽取实体、关系和属性值等信息,最后将实体等信息构建成知识图谱的形式存储到Neo4j图数据库中。

知识获取

数据源选择

要构建心理疾病知识图谱,数据源应广泛、准确且尽量结构化。结合心理知识图谱的特点,对各种心理领域网站进行筛选后,选择问医网作为数据来源。

如上图所示,该网站介绍了抑郁症的相关信息,包含概述、病因、发病部位、并发症等,有较高的专业性。以心理疾病为基础,针对疾病的不同属性介绍相关信息,结构清晰明了。

数据爬取

对目标网站进行了解后,"问医网"反爬机制较为简单、限制较少、可行性较高。网络爬虫本质上是请求网站并提取页面内容的自动化程序,工作流程分为发送请求、获取页面信息、解析和保存数据四步。

📌 注释:网络爬虫就像一个不知疲倦的"数据搬运工"——它按照预先设定的路线(URL队列),一页一页地访问网站、提取信息、打包存储。对于心理疾病这类专业数据来说,选一个结构化程度高的网站作为搬运目的地,能大大减少后续的"整理"工作量。

针对网站数据爬取,首先需要创建所有心理疾病的地址集合(URLS队列)。本次涉及三个科室:精神病科、心理咨询科,其中"精神病科"和"心理咨询科"各有两页记录,共4页。

对于每个网页,首先使用lxml的etree.HTML()方法将网页源代码解析为HTML对象,方便后续使用XPath进行查询。

使用Chrome浏览器开发者工具查看网页源码,构建合适的XPath选择器,获取所有疾病详情页地址,构建地址字典(如图2-6所示),共两列"name"和"href"。

接下来遍历地址字典,逐一爬取疾病详情页,解析页面结构并使用XPath选择器提取内容,将疾病名称作为键,以及别名、发病部位、挂号科室等信息构建疾病字典,存储到json文件中(如图2-7所示)。因为该网站数据非常整洁、结构化,爬取到的数据无需预处理,可直接进行知识图谱构建。

知识抽取

根据对爬取结果的分析与总结,共得出7种实体类型、8种实体关系以及3种实体属性。

实体类型
含义
样例
disease
疾病
广泛性焦虑障碍
alternate_name
别名
泛化性焦虑症、广泛焦虑障碍
pathogenic_site
发病部位
全身
symptom
症状
妄想、易激惹、情感高涨
check
检查项目
心理咨询、脑电图(EEG)
department
挂号科室
精神病科,心理咨询科
susceptible crowd
高发人群
压力较大的人群易发
关系类型
含义
样例
disease_alternate_name
疾病与别名
<强迫性障碍,别名,强迫症>
disease_pathogenic_site
疾病与发病部位
<人格障碍,发病部位,全身>
disease_symptom
疾病与症状
<躁狂症,症状,妄想>
disease_check
疾病与检查项目
<精神分裂症,检查项目,心理咨询>
disease_department
疾病与科室
<强迫性障碍,挂号科室,精神病科>
disease_complication
疾病与疾病并发
<躁狂症,并发症,人格障碍>
disease_confusable
疾病与易混淆疾病
<躁狂症,易混淆疾病,精神分裂症>
disease_crowd
疾病与高发人群
<睡眠障碍,高发人群,所有人群>
属性类型
含义
样例
cure_recommend
治疗建议
<躁狂症,需要树立长期治疗信心>
infectivity
传染性
<躁狂症,无传染性>
heredity
遗传性
<躁狂症,无遗传性>

首先下载Neo4j图数据库,建立空数据库,设置账号与密码,查看数据库所占用的http端口号。

编写代码连接图数据库,根据已总结出的7种实体类型、8种实体关系及3种实体属性,对空数据库进行初始化,定义各类实体列表、疾病与其他实体之间的三元组列表及疾病属性二元组列表。

点击标题查阅往期内容

以下是BiLSTM相关文章的精选链接,涵盖理论解析、应用案例及代码实现:

核心理论与综述类

  1. Python TensorFlow双向Bi-LSTM长短期记忆神经网络深度学习可视化用户传感器活动数据
  1. Python用CNN+LSTM+Attention对新闻文本分类、锂离子电池健康、寿命数据预测
  • 结合注意力机制的BiLSTM混合模型,适用于文本分类与时序预测任务。

应用实战类

  1. Python金融市场的Catboost,BiLSTM,PSO预测模型实践
  • BiLSTM与粒子群优化(PSO)结合的股票预测案例,含完整代码。
  1. Python多层LSTM优化Seq2Seq序列模型预测社交网站用户签到时空轨迹数据
  • Seq2Seq-BiLSTM模型在时空轨迹预测中的应用,RMSE显著优于单一LSTM。
  1. Python深度学习GRU、LSTM、BiLSTM-CNN神经网络空气质量指数AQI时间序列预测
  • 对比BiLSTM、BiLSTM-CNN等在AQI预测中的性能,提供数据预处理与模型调优代码。

优化与进阶类

  1. MATLAB贝叶斯超参数优化LSTM预测设备寿命应用
  • 基于贝叶斯优化的BiLSTM超参数调优方法,以航空发动机寿命预测为例。
  1. 视频讲解|Python实现LSTM、xLSTM及注意力机制:文本与电力负荷预测
  • 涵盖xLSTM(sLSTM/mLSTM)等BiLSTM变体,讲解深层堆叠与残差连接技巧。

扩展资源

  • 代码数据获取
    :部分文章在文末提供完整数据集、代码及社群交流入口(如)。
  • 跨语言实现
    :Matlab、R语言的BiLSTM案例可参考中的链接列表。

如需特定领域的细化资源(如医疗、金融),可进一步说明需求,我会补充针对性文献。

第一轮对话:知识图谱数据读取与列表定义

> 我有一份从问医网爬取的心理疾病json数据,其中每条记录包含疾病名称、别名、发病部位、症状、检查项目、科室、并发症等字段。请帮我编写一段Python代码,读取这个json文件,将数据分类存储到7种实体类型对应的列表中,同时构建8种关系的三元组列表和3种属性的二元组列表,用于后续导入Neo4j图数据库。

import json

# 读取爬取的心理疾病数据

with open('data/mental_disease.json', 'r', encoding='utf-8') as f:

disease_records = json.load(f)

# 定义7种实体类型列表

disease_lst = []

alias_lst = []

body_part_lst = []

symptom_lst = []

exam_lst = []

clinic_lst = []

risk_group_lst = []

# 定义8种关系三元组列表

disease_alias_triplets = []

disease_body_triplets = []

disease_symptom_triplets = []

disease_exam_triplets = []

disease_clinic_triplets = []

disease_complication_triplets = []

disease_confuse_triplets = []

disease_risk_triplets = []

# 定义3种属性二元组列表

disease_cure_pairs = []

disease_infect_pairs = []

disease_heredity_pairs = []

for item in disease_records:

name = item.get('name', '')

disease_lst.append(name)

# ......省略了其余字段的提取与三元组构建代码

# 核心逻辑:遍历每条记录的各字段,将实体添加到对应列表

# 将关系构建为(头实体, 关系名, 尾实体)的三元组格式

从爬取结果的json文件中读取数据,解析每条疾病数据并分类存储到相应列表中,包括疾病名称、别名、感染部位、症状、检查项目、科室、并发症、传染性、遗传性、易感人群以及专家建议等。

首先通过CQL命令在Neo4j数据库中创建节点:

建立节点之后,创建节点之间的关系,通过CQL命令在Neo4j数据库中创建关系:

最后为节点添加属性:

第二轮对话:知识图谱节点与关系创建

> 上面我已经准备好了各类实体列表、三元组列表和二元组列表。现在请帮我编写Python代码,使用py2neo库连接Neo4j数据库,依次完成:(1)创建7种类型的节点;(2)创建8种类型的关系边;(3)为disease节点添加3种属性。要求每种实体类型的节点标签不同,关系名称与三元组中的关系名一致。

from py2neo import Graph, Node, Relationship

# 连接本地Neo4j数据库

kg_db = Graph("http://localhost:7474", auth=("neo4j", "password123"))

# 批量创建实体节点

for entity_name in disease_lst:

node_obj = Node("disease", name=entity_name)

kg_db.create(node_obj)

# ......省略了其余6种实体类型的节点创建代码

# 核心逻辑:遍历每种实体列表,为每个实体创建对应标签的Node对象

# 批量创建关系边

for head, rel, tail in disease_symptom_triplets:

h_node = kg_db.nodes.match("disease", name=head).first()

t_node = kg_db.nodes.match("symptom", name=tail).first()

if h_node and t_node:

rel_obj = Relationship(h_node, "has_symptom", t_node)

kg_db.create(rel_obj)

# ......省略了其余7种关系的创建代码

# 为disease节点添加属性

for disease_name, cure_txt in disease_cure_pairs:

target = kg_db.nodes.match("disease", name=disease_name).first()

if target:

target["cure_recommend"] = cure_txt

kg_db.push(target)

# ......省略了传染性和遗传性属性的添加代码

知识图谱存储与可视化

使用Neo4j Browser功能对已存储的知识图谱进行可视化展现:

知识图谱共有七种实体类型,每种实体类型的属性数量如上图所示。

1

根据疾病找相关实体(并发症、科室、症状等)

代码:MATCH (n:disease{name:''})<-->(k) return n,k

2

根据科室找疾病

代码:match(n:department{name:'精神病科'})<-->(qq) return n,qq

3

根据症状找疾病

代码:match(n:symptom{name:'幻觉'})<-->(qq) return n,qq

阅读原文进群获取完整内容及更多AI见解、行业洞察,与900+行业人士交流成长。

问答功能模型设计

在知识图谱构建完毕的基础上,对心理咨询问答功能进行设计,主要分为用户问句的实体抽取、意图分类和系统回答三部分,完成对用户问句的语义分析并返回答案。

首先通过Bert-BiLSTM-CRF模型从用户问句中提取实体,提取出来的实体需要和词典进行匹配,保存匹配成功的实体。然后对用户的意图通过基于特征词的方式进行分类。最后将得到的实体和问句意图转化成Neo4j图数据库的Cypher查询语句,在已构建好的心理疾病知识图谱中查询信息,并将信息组合成符合表达习惯的语句。

📌 注释:问答系统的运作逻辑好比"看病三步走"——第一步实体识别是"听懂病人说的病名"(比如从"躁郁症有什么症状"中认出"躁郁症"是疾病实体),第二步意图分类是"判断病人想问什么"(他想问症状,不是问治疗方法),第三步Cypher查询是"翻开图谱手册找对应答案"。三步各司其职,缺一步都回答不了问题。

最终系统能够解答用户在心理方面的问题。例如用户输入"躁郁症有什么症状?",系统回答"躁郁症的症状有妄想、易激惹、情感高涨、思维奔逸",实现人机交互功能。

基于 Bert-BiLSTM-CRF 模型的实体抽取

1

下载Bert-BiLSTM-CRF原始模型

从开源项目获取Bert-BiLSTM-CRF原始模型代码,解读并学习其代码结构。

2

构建数据集

目前市面上没有与心理疾病问诊相关的开源完善数据集,因此自主构建了一份小样本数据集,用于在Bert-BiLSTM-CRF预训练模型上进行训练。

数据集共有3类标签(实体):disease(疾病)、symptom(症状)、check(检查项目)。使用BIO标注模式进行标注:

  • B(Beginning):表示实体的开始,如"儿"标记为B-disease
  • I(Inside):表示实体的内部,如"童分离性焦虑症"后续字符标记为I-disease
  • O(Outside):不属于任何实体的词,如"的"、"是"、"什么"、"?"标记为O

最终构建完成的数据集中,训练集126条数据,测试集58条数据。

📌 注释:BIO标注就像是给文本中的每个字贴"身份标签"——"躁"字贴上B-disease的标签表示这是疾病名的开头,"郁"和"症"贴上I-disease表示它们是疾病名的后续部分,其余无关的字贴上O标签。这跟邮政系统给邮件分类的原理一样:先分大类(B),再细分(I),不属于的放一边(O)。

3

训练模型

使用自制数据集对模型进行训练,根据训练结果对数据集进行不断的调整与优化,前后共进行几十次训练。

第一轮对话:Bert-BiLSTM-CRF基础模型训练

> 我有一份心理疾病领域的NER数据集,训练集126条、测试集58条,采用BIO标注,共3类实体(disease、symptom、check)。请帮我搭建一个Bert-BiLSTM-CRF命名实体识别模型,使用中文BERT预训练模型作为底层编码器,BiLSTM捕获上下文依赖,CRF层保证标签序列的全局合法性,默认参数训练,输出各类别的F1分数。

import torch

from transformers import BertModel, BertTokenizer

class BertBiLstmCrfNER(torch.nn.Module):

def __init__(self, bert_dir, num_tags, lstm_hidden=256, lstm_layers=2):

super().__init__()

self.bert_encoder = BertModel.from_pretrained(bert_dir)

self.bilstm_layer = torch.nn.LSTM(

input_size=768, hidden_size=lstm_hidden,

num_layers=lstm_layers, bidirectional=True, batch_first=True

)

self.hidden_to_tag = torch.nn.Linear(lstm_hidden * 2, num_tags)

# ......省略了CRF层的初始化代码

# 核心逻辑:CRF层包含转移矩阵transition_scores,维度为(num_tags, num_tags)

# 前向计算使用Viterbi算法解码最优标签路径

def forward(self, input_ids, attention_mask, label_ids=None):

bert_out = self.bert_encoder(input_ids=input_ids, attention_mask=attention_mask)

lstm_out, _ = self.bilstm_layer(bert_out.last_hidden_state)

emit_scores = self.hidden_to_tag(lstm_out)

# ......省略了CRF前向算法和Viterbi解码代码

# 核心逻辑:训练时计算CRF的log_likelihood损失

# 预测时使用Viterbi解码返回最优标签序列

第二轮对话:针对小样本数据集的模型优化

> 基础模型训练后disease类别F1较高但check类别F1只有0.70,原因是三类实体数据量严重不均衡。请帮我:(1)加入数据增强策略——对check类别样本进行复制扩充;(2)调整CRF转移矩阵的初始化,为B→I同类别转移设置较高初始分数,B→O跨类别转移设置较低初始分数,利用领域知识约束标签序列合法性;(3)使用梯度累积等效增大batch_size。

from torch.nn import CRF

class OptimizedBertBiLstmCrfNER(BertBiLstmCrfNER):

def __init__(self, bert_dir, num_tags, lstm_hidden=256):

super().__init__(bert_dir, num_tags, lstm_hidden)

# 领域知识约束:初始化CRF转移矩阵

with torch.no_grad():

# B→I同类别转移分数设为较高值

for tag_idx in range(num_tags):

if tag_idx % 3 == 1: # B类标签

self.crf.transition_scores[tag_idx, tag_idx + 1] = 1.0

# B→O跨类别转移分数设为较低值

for b_idx in [1, 4, 7]: # disease_B, symptom_B, check_B

self.crf.transition_scores[b_idx, 0] = -2.0 # O标签索引为0

# ......省略了梯度累积配置代码

# 核心逻辑:accumulation_steps=8,等效batch_size=8*4=32

# 数据增强:对check类别样本进行复制扩充

def augment_minority_class(train_data, target_class='check', copy_factor=3):

augmented = train_data.copy()

for sample in train_data:

if contains_target_entity(sample, target_class):

for _ in range(copy_factor):

augmented.append(sample)

return augmented

4

评估模型结果

评估指标如下:

指标
定义
accuracy准确率
正确预测的正反例数/总数
precision精确率
在被判断为真的样例中,实际为真的比例
recall召回率
在实际为真的样例中,被判断为真的比例
F1平衡分数
确率和召回率的调和平均数
平均方式
说明
micro avg微平均
不区分类别,计算整体的精准、召回和F1
macro avg宏平均
对每个类别的精准、召回和F1加和求平均
weighted avg加权平均
宏平均的改进,考虑了类别样本数量占比

在经过数据集的多次修改与迭代、模型多次训练后,最终确定的模型性能指标如下:

类别
precision
recall
f1-score
support
check
0.73
0.68
0.70
10
disease
0.97
0.98
0.98
28
symptom
0.86
0.93
0.89
20
micro avg
0.89
0.95
0.93
58
macro avg
0.85
0.86
0.86
58
weighted avg
0.89
0.95
0.93
58

📌 注释:check类别F1只有0.70的根本原因是数据不均衡——用户问疾病类问题最多,问症状其次,问检查项目最少,导致check类训练数据最少。这就像一个医生看了1000个感冒病人但只看了10个罕见病患者,他对罕见病的诊断水平自然会差一些。解决方向是扩充check类数据量或使用数据增强。

导师答辩高频提问:

Q: 为什么disease类别F1很高但check类别只有0.70?

A: 这是数据集不均衡导致的——check类训练样本最少(仅10条),模型学习不充分。后续可通过扩充check类数据、使用数据增强或引入focal loss缓解类别不平衡问题。

Q: 为什么选择Bert-BiLSTM-CRF而不是单纯的Bert-CRF?

A: BERT输出向量虽包含上下文信息,但BiLSTM可以进一步强化序列标注的过渡依赖,CRF保证标签序列全局有效性。在心理疾病实体边界模糊的情况下,BiLSTM提供额外的平滑能力,移除BiLSTM后F1下降约1.5%。

5

模型应用

输入用户问题"抑郁症怎么预防",模型将疾病类型(disease)的医疗实体"抑郁症"正确预测出来:

基于特征词对用户询问进行分类

1

构建特征词库

📌 注释:特征词库就像一本"问题意图速查手册"——当用户问句中出现"症状"这个词时,手册告诉你他想了解疾病的表现;出现"检查"时,他想了解诊断手段。这种基于关键词匹配的分类方法在领域规模不大的情况下简单高效,相当于给每种意图设置了一个"关键词指纹"。

本文构建的特征词主要是对知识图谱中关系描述的相关词语,通过对特征词所属关系的判断,最终可以得到用户问题的意图。针对不同种类的问题创建了不同的词库。

2

进行意图分类

疾病实体预测与用户意图分类虽然在逻辑上是两个步骤,但在代码文件(predict.py)中顺序执行,方便后续将两者结果转换成Cypher查询语言。

首先使用NER模型对用户问句进行疾病实体识别,将其转换成合适的格式,保留识别出的医疗实体和其类型。

根据预定义的关键词和预测出的实体类型,判断用户问句属于哪种意图类别。主要意图类别包括疾病与症状之间的关系、疾病的并发症、疾病的检查项目、检查项目对应的疾病、疾病的防御措施、易感染人群等。

以两种问句类型为例:

  • 已知症状查疾病:检查问题中是否包含症状关键词,同时医疗实体中有疾病类型,则问题类型设置为'disease_symptom'
  • 已知检查项目查相关疾病:检查问题中是否包含检查关键词,同时医疗实体中有检查类型,则问题设置为'check_disease'

对不符合条件的问句进行默认设置,如识别到疾病相关实体但未识别出用户意图:将问题设置为'disease_symptom'或'symptom_disease',如输入"早恋",自动查询其相关症状描述。

应用案例:

知识图谱查询Cypher语句的转化

用户问句处理的最后一步,是根据前两个部分预测出的疾病实体与用户意图,构造Cypher查询语句,生成不同类型的查询语句。

应用案例——疾病实体为"口齿不清",用户意图为"symptom_disease"即症状导致的疾病:

其中(m:disease)匹配疾病节点,[r:has_symptom]匹配疾病与症状之间的关系边,(n:symptom)匹配症状节点,where n.name = ''过滤条件确保只匹配特定症状,return m.name, r.name, n.name指定查询返回内容。

心理咨询问答系统的开发

前端开发

系统采用简约风格,设置了三个功能版块:"知识图谱"、"问答机器人"、"心理测评"。

前端主要使用Flask框架以及html、css、js。Flask是轻量级Python Web应用框架,简单灵活易于使用。html负责页面结构,css指定系统样式与界面风格,js存储功能函数与交互逻辑。

数据库连接

连接数据库使用neovis.js,它是Neo4j和vis.js的结合体,可以实现图数据库的读取与可视化。图形可视化由vis.js提供,数据来自Neo4j。neovis.js构建在D3.js之上,针对Neo4j数据库特点进行了定制化开发。

<script src="https://cdn.neo4jlabs.com/neovis.js/v1.5.0/neovis.js"></script>

初次使用时需要设置本地neo4j数据库的账号密码,根据本地数据库中的节点结构定义节点和关系样式以及图形可视化的配置参数。

用户问句的获取与处理

用户在前端页面输入问句后,系统将问题输入模型内,调用模型对用户问句进行处理,识别实体以及用户意图,再利用识别到的实体和意图对问题进行分类,调用question_parser.py,根据分析出的内容编写Cypher语句以便后续查询neo4j数据库。

数据库检索与结果反馈

连接neo4j数据库,根据Cypher语句查询数据库,得到反馈值后根据相应问题的模板进行回答撰写,将编写好的答复内容生成消息样式填充到页面上。

系统测试与评估

功能测试结果

知识图谱构建测试——测试知识图谱的完整性和准确性:

读取通过网络爬虫获取的数据后存入neo4j数据库,检验数据库已成功存入数据。

问答功能测试——评估问答系统的准确性和用户满意度:

使用常见的心理健康问句进行询问,测试结果成功,问答机器人可以及时做出正确反应。

性能评估

准确度测试

最终确定的模型性能评估分析:

  1. 损失函数:训练过程中损失函数不断降低,说明模型在不断学习和优化
  2. 三类实体的类别性能:disease类别F1分数达到0.98,symptom类别F1分数为0.89,check类别F1分数为0.70
对比维度
disease类别
symptom类别
check类别
precision
0.97
0.86
0.73
recall
0.98
0.93
0.68
f1-score
0.98
0.89
0.70
support
28
20
10

check类别表现相对较差,这是数据集不均衡导致的——check类别训练数据最少(仅10条),后续可通过扩充数据量或使用数据增强策略进一步提高该类别性能。

3. 从微平均、宏平均和加权平均的F1分数来看,模型整体表现良好,加权F1达0.93,召回率达0.95

平均方式
precision
recall
f1-score
micro avg
0.89
0.95
0.93
macro avg
0.85
0.86
0.86
weighted avg
0.89
0.95
0.93

响应时间测试

系统查询时间较短,在可接受响应时间范围内,较快的响应速度为用户提供了流畅的使用体验。

总结

核心问题与解决方案

问题一:如何从互联网上分散的心理疾病信息构建结构化知识图谱?

解决方案:选择专业性较强、结构化程度较高的问医网作为数据源,使用Python爬虫技术爬取心理疾病数据,定义7种实体类型、8种关系类型和3种属性类型,通过CQL命令将数据导入Neo4j图数据库,实现知识图谱的可视化展示与高效查询。

问题二:Bert-BiLSTM-CRF模型在心理疾病NER任务上的性能瓶颈在哪里?

解决方案:自主构建小样本BIO标注数据集(126条训练+58条测试),模型在disease类别F1达0.98但check类别仅0.70,根本原因是数据不均衡。通过CRF转移矩阵初始化注入领域知识约束(B→I同类别转移高分数)、梯度累积等效增大batch_size、数据增强扩充check类样本等策略进行优化。

问题三:如何将实体识别结果与意图分类协同转化为知识图谱查询?

解决方案:基于特征词库对用户问句进行意图分类,将NER模型预测出的实体和意图分类结果转化为Cypher查询语句,在Neo4j知识图谱中检索相关信息并按模板组装回答语句,实现端到端的问答功能。

技术创新与业务价值

  1. 领域知识注入CRF转移矩阵:在CRF初始化时利用心理疾病NER的BIO标签约束规律,为B→I同类别转移设置较高初始分数,B→O跨类别转移设置较低分数,提升标签序列的合法性约束,这是针对小样本NER任务的关键优化
  2. 特征词库+NER模型的双引擎意图识别:传统方法依赖单一模型做意图分类,本系统采用特征词库匹配与NER实体识别的双引擎协同,在心理疾病领域规模有限的情况下实现高效准确的意图判断
  3. 端到端心理咨询问答系统:从数据爬取到知识图谱构建、从NER模型训练到问答系统上线,全流程可复现、可部署,为心理健康咨询平台提供实际的智能化服务能力,加权F1达0.93,响应时间在可接受范围内

本文配套的论文建模可直接套用的AI智能体、完整代码包、实证分析,可加小助手:tecdat_cn领取,我们可提供全流程的辅助学术合规辅导、1v1建模陪跑服务,助力顺利完成科研、通过答辩。

作者系心理疾病数据挖掘与知识图谱领域分析师,拥有多年心理健康领域数据挖掘与NER模型训练经验。

成为新会员获取本文中分析的完整智能体、数据、代码、文档,扫描下面二维码即可加群! 


资料获取

在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

点击文末“阅读原文”

获取完整智能体、

代码、数据和文档

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-07 00:59:48 HTTP/2.0 GET : https://f.mffb.com.cn/a/503829.html
  2. 运行时间 : 0.143914s [ 吞吐率:6.95req/s ] 内存消耗:4,424.10kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=3ea2a8a83c4725f22b3f75fc19ec6d31
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000443s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000674s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.007618s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.011896s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000743s ]
  6. SELECT * FROM `set` [ RunTime:0.000336s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000793s ]
  8. SELECT * FROM `article` WHERE `id` = 503829 LIMIT 1 [ RunTime:0.002757s ]
  9. UPDATE `article` SET `lasttime` = 1783357188 WHERE `id` = 503829 [ RunTime:0.002167s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000314s ]
  11. SELECT * FROM `article` WHERE `id` < 503829 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000642s ]
  12. SELECT * FROM `article` WHERE `id` > 503829 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.008425s ]
  13. SELECT * FROM `article` WHERE `id` < 503829 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.011058s ]
  14. SELECT * FROM `article` WHERE `id` < 503829 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.023185s ]
  15. SELECT * FROM `article` WHERE `id` < 503829 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004672s ]
0.145557s