当前位置:首页>python>Python结合TF-IDF、transformers、DistilBERT、逻辑回归实现评论语义搜索|附AI智能体、代码和数据

Python结合TF-IDF、transformers、DistilBERT、逻辑回归实现评论语义搜索|附AI智能体、代码和数据

  • 2026-06-15 15:34:45
Python结合TF-IDF、transformers、DistilBERT、逻辑回归实现评论语义搜索|附AI智能体、代码和数据

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

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

关于分析师:在此对YouMing Zhang对本文所作的贡献表示诚挚感谢,他专注人工智能领域。擅长Python、Matlab、机器学习、深度学习算法、数据分析。

本文系统梳理语义搜索技术四代演进路径,对比TF-IDF规则检索、逻辑回归分类、句子转换器嵌入、DistilBERT微调四种方法在绘画评论相似性匹配任务中的表现。

摘要

中文:通过实测数据量化各方法准确率与可解释性差异,提供可直接复用的代码实现与AI智能体。本文回答了:1) 语义搜索如何从关键词匹配发展到上下文理解;2) 四代技术各自的适用场景与局限;3) 如何根据业务需求选择合适的语义搜索方案。This paper systematically reviews the four generations of semantic search technology evolution, comparing the performance of TF-IDF rule-based retrieval, logistic regression classification, Sentence Transformer embedding, and DistilBERT fine-tuning in painting review similarity matching tasks. It quantifies the accuracy and interpretability differences of each method through measured data, and provides reusable code implementations and AI agents. This paper answers: 1) How semantic search evolved from keyword matching to contextual understanding; 2) The applicable scenarios and limitations of the four generations of technologies; 3) How to select the appropriate semantic search solution according to business needs.

引言

语义搜索技术作为自然语言处理领域的核心应用之一,近年来取得了突破性进展。从早期基于关键词匹配的简单检索系统,到如今能够理解上下文和深层语义的大语言模型,每一次技术迭代都极大提升了信息检索的效率和准确性。在谷歌的多年开发经验中,我们发现很多企业在构建语义搜索系统时,往往直接采用最复杂的Transformer模型,而忽略了传统方法在特定场景下的优势。本文将语义搜索四代技术的建模经验沉淀为一个对话式AI智能体,帮助开发者根据实际业务需求选择最合适的技术方案。阅读原文进群获取本文完整代码、数据、AI智能体及更多最新AI见解和行业洞察,可与900+行业人士交流成长。本文以绘画评论相似性匹配为具体应用场景,通过构建四代语义搜索系统,对比分析各方法的技术原理、实现难度、运行效率和检索效果。我们将展示如何从简单的TF-IDF向量表示逐步演进到基于上下文的Transformer模型,同时保留每一代技术的核心优势。通过本文的学习,读者不仅能够掌握语义搜索的基本原理和实现方法,还能够根据自己的业务数据特点,快速搭建高效、可解释的语义检索系统。

数据准备  ↓ 方法1:TF-IDF+规则检索  ↓ 方法2:TF-IDF+逻辑回归  ↓ 方法3:句子转换器嵌入  ↓ 方法4:DistilBERT微调  ↓ 结果对比与分析

项目文件目录

数据

我们使用一组合成的绘画评论数据集。每条评论包含元数据和自由文本内容。我们的任务是将学生的绘画评论与专家对同一幅画的评论进行比较,使用逐步先进的检索方法确定语义相似性。每条评论的结构使用Python数据类表示:

一条典型的评论示例:

"Van Gogh transforms the night sky into a structure that seems alive. The swirling brushstrokes generate tension on the soul while the exaggerated brightness of the stars creates a dreamlike atmosphere."

方法

方法1:基于规则的检索和TF-IDF排名

TF-IDF(词频-逆文档频率)是将文本转换为数值向量的经典技术。TF-IDF会增加在文档中频繁出现但在整个集合中相对不常见的单词的重要性。在对专家评论拟合TF-IDF向量化器后,系统生成一个稀疏的文档-术语矩阵。然后使用余弦相似度来衡量文档之间的相似性。余弦相似度测量高维空间中两个向量之间的角度。当两条评论使用相似比例的相似词汇时,它们产生指向相似方向的向量,因此获得更高的相似度分数。为了提高检索质量,我们将TF-IDF相似度与几个额外的启发式特征相结合:

  • 关键词重叠:衡量评论之间共享多少重要单词
  • 长度归一化:奖励包含有意义描述细节的评论,而不偏向过长的文本
  • 时效性权重:使用指数时间衰减温和地偏好较新的评论

最终排名分数计算公式:score = 1.2 * tfidf_similarity + 0.6 * keyword_overlap + 0.2 * length_norm + 0.15 * recency提示词:我有一组绘画评论数据,每条评论包含文本内容和发布时间。我想构建一个基于规则的语义检索系统,使用TF-IDF计算文本相似度,并结合关键词重叠、长度归一化和时效性权重进行综合排名。请帮我编写Python代码,实现TF-IDF向量化、余弦相似度计算以及上述三个启发式特征的计算,并返回按综合分数排序的专家评论列表。

阅读原文进群获取完整内容及更多AI见解、行业洞察,与900+行业人士交流成长。我们使用一条学生评论测试该方法:

"""The painting creates a quiet emotional atmosphere, yet very powerful. The soft light and restrained color palette make the central figure feel isolated yet dignified. The background does not compete with the subject; instead, it deepens the mood of reflection and stillness. Overall, the work feels intimate, psychological, and carefully composed."""

得到的排名结果:

评论标题
专家姓名
分数
Light and Stillness
Expert A
0.531
Psychological Interior
Expert D
0.297
Narrative and Gesture
Expert E
0.224
Color and Surface
Expert B
0.212
Historical Symbolism
Expert C
0.096

这种方法的最大优势是可解释性。我们可以通过检查每个特征的贡献,准确地了解为什么一条评论排名高于另一条。然而,TF-IDF主要捕获表面级别的词汇模式,而不是更深层次的语义含义。例如,"dramatic use of light"和"strong chiaroscuro effects"可能指非常相似的艺术理念,但共享很少的精确单词,这就导致传统检索系统经常在这些情况下遇到困难。

相关文章

DeepSeek、LangGraph和Python融合LSTM、RF、XGBoost、LR多模型预测NFLX股票涨跌|附AI智能体、代码和数据

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

方法2:基于TF-IDF特征的经典机器学习

下一个进化步骤是用监督机器学习取代手动设计的评分规则。我们不再明确决定给TF-IDF相似度、关键词重叠或其他启发式特征分配多少重要性,而是让模型从标记的示例中直接学习有用的模式。我们使用逻辑回归模型,这是分类的经典机器学习方法之一。模型从示例中学习模式,了解哪些单词和写作风格在专家评论中更常见,然后使用这些模式自动评估新评论。提示词:我有一组标记好的绘画评论数据,其中一些被标记为"专家级",另一些被标记为"新手级"。我想训练一个逻辑回归分类器来预测新评论是否属于专家级。请帮我构建一个机器学习管道,首先使用TF-IDF对文本进行向量化,然后训练逻辑回归模型。代码需要能够输出每个特征的系数,以便我们分析哪些单词对分类结果影响最大。

class ClassicalMLClassifier:  def __init__(self):  # 构建TF-IDF+逻辑回归管道  self.model_pipeline = Pipeline([  ("tfidf_converter", TfidfVectorizer(stop_words="english")),  ("classifier", LogisticRegression(max_iter=1000))  ])   def train_model(self, reviews, labels):  # 划分训练集和测试集  X_train, X_test, y_train, y_test = train_test_split(  reviews, labels, test_size=0.2, random_state=42  )   # 训练模型  self.model_pipeline.fit(X_train, y_train)   # 在测试集上评估  y_pred = self.model_pipeline.predict(X_test)  print(classification_report(y_test, y_pred))   def predict_expert_likeness(self, review_text):  # 预测单条评论的专家相似度  probability = self.model_pipeline.predict_proba([review_text])[0][1]  predicted_class = 1 if probability >= 0.5 else 0  return predicted_class, probability   def get_top_features(self, top_n=10):  # 获取影响最大的特征及其系数  tfidf = self.model_pipeline.named_steps["tfidf_converter"]  classifier = self.model_pipeline.named_steps["classifier"]   feature_names = tfidf.get_feature_names_out()  coefficients = classifier.coef_[0]   # 组合特征名称和系数  feature_coeffs = list(zip(feature_names, coefficients))  # 按系数绝对值降序排序  feature_coeffs.sort(key=lambda x: abs(x[1]), reverse=True)   return feature_coeffs[:top_n]

训练后,模型可以分析新的学生评论并产生预测类别标签和概率分数。我们的示例评论得到了1的标签和0.672的概率。逻辑回归最有趣的方面之一是可解释性。因为模型为每个TF-IDF特征学习数值系数,我们可以直接检查哪些单词和短语影响分类决策。在这个实验中,分类器给"placement"、“emotional”、“depth”、“psychological”、"intensity"和"shadow"等术语更高的权重。然而,我们应该注意不要夸大模型在做什么。模型实际上并没有像人类专家那样解释艺术品或欣赏其象征意义。它只是识别评论中使用的语言模式。如果专家一致使用"depth"和"psychological tension"等术语,模型就会学习到这些模式与专家级写作相关。

方法3:基于嵌入的语义搜索

语义搜索的下一个重要步骤超越了TF-IDF和简单的单词计数。现代系统使用由基于转换器的语言模型生成的密集语义嵌入,而不是将文本表示为单词频率。这是系统开始超越简单词汇并开始捕获实际含义的阶段。两条评论可以使用非常不同的语言来描述一个艺术理念,但仍然被认为是相似的。这就像字典(TF-IDF)和百科全书(嵌入)的区别:字典只告诉你单词的拼写和定义,而百科全书能告诉你单词之间的关系和深层含义。为了创建嵌入,我们使用Hugging Face生态系统中的句子转换器模型。句子转换器将整个句子或文档转换为密集的数值向量。这些向量旨在捕获文本的含义和不同文本之间的关系。提示词:我想使用句子转换器模型来生成绘画评论的语义嵌入,并基于这些嵌入计算评论之间的语义相似度。请帮我编写代码,使用all-MiniLM-L6-v2模型生成嵌入,计算学生评论与所有专家评论之间的余弦相似度,同时计算专家评论的质心,并计算学生评论与专家质心的相似度。最后使用PCA将嵌入降维到2维以便可视化。

生成所有评论的嵌入后,我们直接在嵌入空间中计算余弦相似度。每个由句子转换器生成的评论嵌入表示为384维的密集数值向量,对应于学习到的特征数量。我们以两种方式计算相似度:(a) 在所有学生评论和所有专家评论之间,(b) 在学生评论和专家质心之间。这个质心向量是通过平均所有专家评论嵌入的相应分量计算得到的。从概念上讲,这个质心代表了专家级评论的近似语义"中心",可用于衡量学生评论在嵌入空间中与专家写作的接近程度。

学生评论名称和标题
专家质心相似度分数
S1-Drama Through Light and Response
0.802
S4-Emotional Response
0.618
S5-Formal Analysis Attempt
0.765
S6-General Impression
0.75
S7-Symbolic Interpretation
0.73

为了理解嵌入空间,我们还使用PCA可视化嵌入。

PCA图揭示了几个有趣的关系。学生评论S1看起来接近专家评论E1和E2。这是有道理的,因为他们讨论了类似的想法,如光、阴影、情绪和戏剧性意义。学生评论S7也看起来接近专家评论E3。两条评论都讨论了绘画中的象征主义、情感和更深层次的含义。即使他们使用不同的单词,他们也表达了相似的想法。在这个阶段,尽管从简单的关键词匹配转向了对含义的理解,但嵌入保持固定。下一个阶段引入了可以根据周围上下文调整其理解的转换器模型。

点击标题查阅往期内容

以下是关于 TF-IDF、Transformers、逻辑回归、DistilBERT 等技术在评论语义分析中的精选文章链接,涵盖了原理、实战和对比分析:

1. 多模型对比:情感分析与主题挖掘

2. 多源特征融合与端到端管道

3. 传统方法与LLM嵌入的对比

  • 文章标题:LLM与词袋、TF-IDF在新闻数据集上分类与聚类多维对比

  • 链接点击阅读

  • 核心内容

    • 对比 TF-IDF + SVM/逻辑回归 与 LLM嵌入(如DistilBERT) 在文本分类中的性能:TF-IDF + SVM准确率达0.987,训练更快[1,2,5]。

    • 在聚类任务中,LLM嵌入以0.899的调整兰德指数显著优于TF-IDF,凸显其在语义相似度捕捉上的优势[1,2,5]。

4. Transformer原理与BERT微调

  • 文章标题:视频:图解Transformer自注意力机制

  • 链接点击阅读

  • 核心内容

    • 详解Transformer的编码器-解码器结构、多头自注意力机制,及其在BERT等模型中的核心作用[8]。

    • 提供BERT微调的关联文章(如PyTorch用BERT对新闻组数据分类),适合深入理解Transformer架构[8]。

5. 技术路径总结与选择建议

根据上述文章,不同场景下的技术选择可参考以下指南[1,2,5]:

任务目标

推荐技术组合

理由

快速构建高精度分类基线

TF-IDF + 逻辑回归/SVM

训练快、可解释性强,在类别区分度高的数据中接近SOTA[1,2,5]

需捕捉深层语义的聚类任务

LLM嵌入(如DistilBERT) + K-Means

嵌入向量包含上下文信息,聚类质量显著提升[1,2,5]

融合多源信息的复杂场景

TF-IDF + LLM嵌入 + 结构化特征 + 逻辑回归

兼顾统计特征与语义理解,提升模型鲁棒性[3]

资源受限的实时应用

DistilBERT(轻量版BERT)

参数量减少40%,保留95%以上性能,适合移动端部署[8]

关键结论

  • TF-IDF 在结构化文本分类中仍具竞争力,尤其适合需求快速验证的场景[1,2,5]。

  • Transformer模型(如DistilBERT) 在语义相关任务(如聚类、细粒度情感分析)中优势明显,但需权衡计算成本[1,8]。

  • 特征融合 策略(如结合TF-IDF与LLM嵌入)能有效提升模型泛化能力,适合复杂业务场景[3]。

延伸资源

  • 公众号后台回复“文本分析”获取完整代码与数据集[1,3,4]。

  • 加入会员群可获取多模态特征融合、模型优化等进阶案例

方法4:微调的Transformer模型

最后阶段引入了微调的转换器模型。在方法3中,我们使用句子转换器基于语义相似度比较评论。在这里,我们更进一步,直接在标记的专家和新手评论上训练模型。具体来说,我们微调来自Hugging Face Transformers库的预训练DistilBERT模型。DistilBERT是BERT的更小、更快版本。它被训练来学习与原始BERT模型相同的许多语言模式,同时使用更少的参数。DistilBERT是通过知识蒸馏过程创建的。尽管它更轻、更容易训练,但它在许多NLP任务上仍然表现非常好。提示词:我想微调一个DistilBERT模型来分类绘画评论是专家级还是新手级。请帮我编写代码,使用Hugging Face的Transformers库加载distilbert-base-uncased模型和对应的分词器。代码需要包含数据预处理函数,将文本转换为模型可接受的输入格式,设置训练参数,进行模型训练,并在训练后对新评论进行预测。请注意处理序列截断和填充。

在转换器基础的NLP中,分词器不仅仅是一个分词器。它同时执行几个预处理步骤:将文本拆分为标记、使用模型的词汇表将标记转换为数值标记ID、添加特殊的转换器标记、截断长序列、将较短的序列填充到固定长度、创建注意力掩码。与方法3的基于嵌入的方法不同,这种方法执行显式的监督分类。对于每条评论,模型预测类别标签和每个类别的置信度分数。例如,考虑以下评论:“The arrangement of the figures and the careful use of shadow create psychological tension and symbolic ambiguity throughout the composition.”乍一看,这条评论听起来相对复杂,因为它使用了"psychological tension"、"symbolic ambiguity"和"composition"等高级艺术语言。更简单的方法(如TF-IDF)可能会因为这些关键词在专家评论中频繁出现而给予很高的分数。然而,转换器模型超越了孤立的关键词。它分析思想如何在整个句子中连接,以及评论是否显示出更深层次的推理。尽管这条评论使用了复杂的术语,但分析是简短且有些笼统的。它讨论了心理张力和象征主义,但没有详细解释它们。与专家评论相比,推理不够发达。经过100个epoch的微调后,转换器正确地将该评论分类为新手级:新手级概率:0.685专家级概率:0.315值得注意的是,当模型只训练了30个epoch时,同一条评论被分类为专家级。这表明在训练早期,模型可能更多地依赖于花哨的词汇。额外的训练帮助它更加强调更广泛的上下文和分析模式,而不仅仅是关键词。

四代语义搜索方法对比

我们将四种方法在多个维度上进行对比,帮助读者根据自己的业务需求选择最合适的方案:

对比维度
方法1:TF-IDF+规则
方法2:逻辑回归
方法3:句子转换器
方法4:微调DistilBERT
语义理解能力
低(仅词汇匹配)
低(词汇模式识别)
中(通用语义理解)
高(上下文理解)
可解释性
极高
极低
所需数据量
极少
少量(几百条标记)
无(预训练模型)
大量(几千条标记)
训练时间
秒级
秒级
小时级
推理速度
极快
极快
实现难度
极低
同义词识别能力
上下文理解能力
有限

导师答辩高频提问与标准答案

提问1:为什么你选择这四种方法来展示语义搜索的演进,而不是其他方法?答:这四种方法代表了语义搜索技术发展的四个关键阶段,每个阶段都解决了前一阶段的核心问题。TF-IDF是信息检索的基础,所有现代方法都建立在其核心思想之上;逻辑回归代表了从手动规则到机器学习的转变;句子转换器引入了通用语义嵌入的概念;而微调的Transformer模型则代表了当前最先进的上下文理解能力。这四种方法形成了一个完整的技术演进链条,能够清晰地展示语义搜索从简单到复杂的发展过程。

提问2:在实际业务中,应该如何选择合适的语义搜索方法?答:选择方法需要综合考虑多个因素。如果数据量非常少,且需要高度可解释性,TF-IDF+规则是最佳选择;如果有少量标记数据,且需要比规则更好的泛化能力,逻辑回归是一个很好的折中方案;如果没有标记数据,但需要一定的语义理解能力,句子转换器是理想选择;如果有大量标记数据,且需要最高的准确率,那么微调Transformer模型是最佳选择。在实际应用中,我们通常会结合多种方法,例如使用句子转换器进行初步检索,然后使用微调模型进行重排序。

提问3:你认为语义搜索技术未来的发展方向是什么?答:语义搜索技术未来将朝着三个方向发展。首先是多模态语义搜索,能够同时理解文本、图像、音频和视频等多种模态的信息;其次是个性化语义搜索,能够根据用户的历史行为和偏好提供个性化的检索结果;最后是生成式语义搜索,不仅能够检索相关信息,还能够根据检索到的信息生成自然语言回答。这些发展方向将进一步提升信息检索的效率和用户体验。

总结

  1. 本文系统梳理了语义搜索技术的四代演进路径,从基于关键词匹配的TF-IDF方法,到基于机器学习的逻辑回归分类,再到基于通用语义嵌入的句子转换器,最后到基于上下文理解的微调Transformer模型。每一代技术都在语义理解能力上取得了显著进步,但同时也带来了可解释性下降和计算成本增加的问题。
  2. 通过在绘画评论相似性匹配任务上的实测,我们发现句子转换器在没有任何标记数据的情况下,能够取得比传统方法好得多的语义匹配效果,是大多数业务场景下的最佳起点。而微调的Transformer模型虽然能够取得最高的准确率,但需要大量的标记数据和计算资源,适合对准确率要求极高的场景。
  3. 语义理解是一个连续的过程,而不是非黑即白的问题。不同的方法在不同的维度上各有优势,在实际应用中应该根据业务需求、数据量和计算资源等因素综合考虑,选择最合适的技术方案,或者结合多种方法的优势构建混合系统。作者系人工智能领域分析师,拥有5年数据挖掘经验。本文配套的论文建模可直接套用的AI智能体、完整代码包、实证分析,可加小助手:tecdat_cn领取。

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


资料获取

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

点击文末“阅读原文”

获取完整智能体、

代码、数据和文档

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 06:56:43 HTTP/2.0 GET : https://f.mffb.com.cn/a/498824.html
  2. 运行时间 : 0.088826s [ 吞吐率:11.26req/s ] 内存消耗:4,902.27kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=a2ce99c297369bd026324060c5a0e5fb
  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.000670s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001026s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000325s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000316s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000448s ]
  6. SELECT * FROM `set` [ RunTime:0.000215s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000590s ]
  8. SELECT * FROM `article` WHERE `id` = 498824 LIMIT 1 [ RunTime:0.001265s ]
  9. UPDATE `article` SET `lasttime` = 1783033003 WHERE `id` = 498824 [ RunTime:0.000834s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000255s ]
  11. SELECT * FROM `article` WHERE `id` < 498824 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000448s ]
  12. SELECT * FROM `article` WHERE `id` > 498824 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000455s ]
  13. SELECT * FROM `article` WHERE `id` < 498824 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004503s ]
  14. SELECT * FROM `article` WHERE `id` < 498824 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003695s ]
  15. SELECT * FROM `article` WHERE `id` < 498824 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004825s ]
0.090628s