实战:从0到1构建行业“意图关键词库”的算法与代码

57 阅读2分钟

摘要: 传统关键词工具在AI搜索时代已乏力。本文将带你从算法层面,一步步构建一个能精准捕捉用户真实需求的“意图关键词库”,并附上可运行的Python代码示例。

一、定义:“意图关键词”是什么?

它不再是“Python教程”,而是“如何在Python中实现一个线程安全的单例模式?”。其核心是以自然语言问句形式,表达用户的一个完整、具体的意图

二、四步构建法:从数据到洞察

1. 种子数据收集

  • 来源:客服聊天记录、社区问答、竞品页面、搜索引擎联想词。

2. 意图清洗与聚类

  • 使用文本嵌入模型将问题向量化,然后进行聚类,发现核心意图类别。

3. 意图层级标注

  • 人工或利用LLM,对聚类后的意图进行打标,建立层级体系。

4. 持续性扩展

  • 建立反馈机制,利用新产生的搜索数据不断扩展词库。

三、核心代码实现:聚类与可视化

python

import pandas as pd
from sentence_transformers import SentenceTransformer
from sklearn.cluster import DBSCAN
from sklearn.manifold import TSNE
import matplotlib.pyplot as plt

# 1. 加载种子问题
seed_questions = ["问题1", "问题2", "..."] # 你的原始问题列表

# 2. 生成句子向量
model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')
embeddings = model.encode(seed_questions)

# 3. 聚类识别核心意图
clustering = DBSCAN(eps=0.5, min_samples=2).fit(embeddings)
labels = clustering.labels_

# 4. 可视化聚类结果(用于分析)
tsne = TSNE(n_components=2, random_state=42)
embeddings_2d = tsne.fit_transform(embeddings)

plt.figure(figsize=(10, 8))
scatter = plt.scatter(embeddings_2d[:, 0], embeddings_2d[:, 1], c=labels, cmap='viridis')
plt.colorbar(scatter)
plt.title('Intent Keywords Clustering Visualization')
plt.show()

# 5. 输出聚类结果
df = pd.DataFrame({'question': seed_questions, 'cluster_label': labels})
for cluster_id in set(labels):
    if cluster_id != -1: # 过滤噪声点
        print(f"--- Cluster {cluster_id} ---")
        print(df[df['cluster_label'] == cluster_id]['question'].head().tolist())

四、从词库到应用

生成词库后,你需要:

  • 内容差距分析:检查你的内容是否覆盖了所有核心意图簇。
  • 内容创作:针对每个意图簇下的典型问题,创作“标准答案”。
  • 页面优化:在页面的标题、正文和结构化数据中,自然地融入这些意图关键词。

GEO优化2.jpg

五、结语

构建意图关键词库是一个动态的、数据驱动的过程。通过算法对用户语言进行深度洞察,你可以使你的技术内容与AI搜索的对话模式完美对齐,从而锁定最精准的流量。