sqlmap Cookie注入深度解析:--level 2/3参数对检测范围的影响实测
2026/7/7 9:42:47
# BERT 是一个预训练的语言表示模型fromtransformersimportBertModel,BertTokenizer model=BertModel.from_pretrained('bert-base-uncased')tokenizer=BertTokenizer.from_pretrained('bert-base-uncased')# 功能:文本编码,得到语义向量# 用途:句子分类、问答、命名实体识别等 NLP 任务BERT 特点:
# BERTopic 是一个基于 BERT 的主题建模框架frombertopicimportBERTopic topic_model=BERTopic()# 功能:自动发现文档集合中的主题# 用途:文档聚类、主题分析、文本挖掘BERTopic 特点:
| 类比 | BERT | BERTopic |
|---|---|---|
| 汽车引擎 | 发动机 | 整车 |
| 建筑 | 砖块 | 大楼 |
| 烹饪 | 盐/油 | 完整菜肴 |
| 编程 | 函数库 | 完整应用 |
# BERT 只是一个"词→向量"的转换器text="机器学习很有趣"inputs=tokenizer(text,return_tensors="pt")outputs=model(**inputs)# 得到:向量表示 [batch_size, seq_length, hidden_size]# 这就是一个数学表示,没有"主题"概念# BERTopic 使用 BERT 作为其第一步工作流程:1.嵌入:BERT(或其他模型)将文档转为向量2.降维:UMAP 减少维度3.聚类:HDBSCAN 找出文档群组4.表示:c-TF-IDF 提取主题关键词# 输入:文档列表# 输出:主题结构、可视化、关键词BERTopic 架构: ┌─────────────────────────────────────────────┐ │ BERTopic 完整流程 │ ├─────────────┬─────────────┬─────────────────┤ │ 步骤1 │ 步骤2 │ 步骤3 │ │ 文档嵌入 │ 降维聚类 │ 主题表示 │ │ │ │ │ │ ┌──────┐ │ ┌──────┐ │ ┌──────────┐ │ │ │ BERT │ │ │UMAP │ │ │c-TF-IDF │ │ │ │ 或 ├──→│ │ ├──→│ │ │ │ │ │其他 │ │ │HDBSCAN│ │ │关键词提取│ │ │ └──────┘ │ └──────┘ │ └──────────┘ │ └─────────────┴─────────────┴─────────────────┘ ↑ ↓ 原始文档 主题结果| 特性 | BERT | BERTopic |
|---|---|---|
| 类型 | 预训练语言模型 | 主题建模框架 |
| 输入 | 文本序列 | 文档集合 |
| 输出 | 向量表示 | 主题标签、关键词 |
| 目标 | 学习语言表示 | 发现文档主题 |
| 使用场景 | 各类 NLP 任务 | 文本挖掘、文档分析 |
| 可定制性 | 微调参数 | 模块化替换 |
| 依赖关系 | 独立模型 | 依赖嵌入模型(如BERT) |
| 复杂度 | 单一模型 | 多步骤流水线 |
fromtransformersimportpipeline# 只用 BERT 做分类classifier=pipeline("text-classification",model="bert-base-uncased")result=classifier("这个电影很好看")# 输出:情感标签(积极/消极)# 但:不知道具体主题内容frombertopicimportBERTopic# 用 BERTopic 分析大量影评reviews=["特效很棒但剧情差","演员演技出色",...]topic_model=BERTopic()topics,probs=topic_model.fit_transform(reviews)# 输出:# - 主题1(特效相关):特效、画面、视觉效果...# - 主题2(剧情相关):剧情、故事、逻辑...# - 主题3(演员相关):演技、演员、表演...frombertopicimportBERTopicfromsentence_transformersimportSentenceTransformerfromopenaiimportOpenAIEmbeddings# 使用不同的嵌入模型embedding_model1=SentenceTransformer("all-MiniLM-L6-v2")# 类 BERTembedding_model2=OpenAIEmbeddings()# OpenAIembedding_model3="paraphrase-multilingual-MiniLM-L12-v2"# 多语言topic_model=BERTopic(embedding_model=embedding_model1)完全可以!BERTopic 是模型无关的:
# 使用非 BERT 的嵌入fromsklearn.feature_extraction.textimportCountVectorizer# 使用词袋模型 + UMAPtopic_model=BERTopic(embedding_model=CountVectorizer(),# 传统方法umap_model=UMAP(),verbose=True)# 甚至可以用图像/音频嵌入,只要有向量表示BERT 是 “肌肉”(提供语义理解能力),BERTopic 是 “大脑”(组织思考,发现模式)。
你可以:
它们的关系就像是:
一个是工具,一个是使用这个工具完成的系统工作。