尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Python微博舆情聚类实战:从数据清洗到KMeans建模
简介面向想掌握中文舆情分析与文本聚类的Python学习者这份源码以微博热点话题为样本完整演示了从数据采集、分词到构建TF-IDF矩阵并完成聚类的技术链路适合具备Python基础、希望进阶自然语言处理实战的读者。压缩包共9个文件包含5个py源码、2个txt辅助文本、1个csv数据集和1个md说明文档整体仅50KB结构清晰小巧。已有210人下载学习。源码中spider.py负责爬取微博数据cut.txt存放分词结果td_idf.py与matrix.py实现特征权重计算和向量矩阵构建结合jieba、pandas、Scikit-learn及Matplotlib可快速跑通舆情聚类流程article.csv为可直接使用的样本数据README.md则对整个项目结构和运行方式做了指引便于逐段理解、二次改造。1. 微博热点话题与舆情聚类分析这套方案解决什么问题微博热点话题一上热搜讨论量就在几小时内冲到几千条人工一条条翻只能看到零星情绪看不到整体结构。Python 做舆情聚类分析解决的就是这个问题把采集到的微博文本经过清洗、分词、向量化再聚类成若干个可读的类簇最后输出每个簇在讨论什么、占比多少、关键词是什么。项目源码加数据就是这个方向的现成起点。适合两类人一类是做数据分析、舆情监控、运营分析的从业者想用真实数据快速复现这套流程另一类是学 Python 自然语言处理的新手与其零散地刷入门教程不如用一个有真实数据、有完整代码的项目把向量化和聚类串起来。2. 做舆情聚类前先把数据搞定微博话题采集与清洗2.1 微博数据从哪来API、爬虫与现成数据集三条路做舆情聚类分析数据永远是第一步这步的决策直接决定后面清洗逻辑怎么写。常见做法有三条路按省事程度排序。第一条路是直接用项目自带的微博热点话题数据。标题里写了「源码数据」数据一般是一份 csv 或 json常见字段包括微博文本、发布时间、转发数、评论数以及所属话题词。用现成数据集的好处是绕开采集环节的合规和频率问题先把聚类主流程验证通之后再考虑把更新的数据灌进来。第二条路是微博开放平台的公开接口。申请开发者账号拿到 access_token 后可以按关键词或话题拉取公开数据。这条路有两个现实问题一是舆情类采集的频控很严按分钟限额拉一天的量要跑很久二是一些热点话题下返回的字段不全评论文本拿不到只能拿到原创微博。如果你的场景只需要话题下的原创博文公开接口够用。第三条路是写 python 爬虫直接解析公开页面。这个方向在舆情相关的技术帖里讨论热度一直很高因为微博网页端结构相对稳定requests 拿到 HTML 后用解析库抽取文本和时间戳几百行代码就能跑通一个小话题的采集。我的建议是不要一上来全量爬先抓一个话题页 500 条做原型确认清洗和聚类逻辑没问题再扩量。采集频率控制在几秒一次别把页面服务器当压测对象。提示拿到数据后先看三件事——缺文本的占比、created_at 的格式分布、短文本的占比。微博数据最容易翻车的是时间字段有的带时区、有的带中文星期后面按时间分桶做演化分析时会直接报错。2.2 数据清洗与去噪把表情、转发标记、超链接清干净微博文本是聚类模型的输入输入有多脏聚类结果就有多飘。微博文本里最常见的噪声有四类超链接、用户、话题标记 #xxx#、以及各种表情。这些内容对主题聚类几乎没有区分度还容易把向量空间搅乱。一个实际例子如果不处理 emojiTF-IDF 会把表情符号当成正常 token聚类时算法很可能按「是否带某个表情」而不是按「讨论什么内容」把文本分开类簇的可解释性直接崩掉。另外还有三个容易被忽视的点。第一纯转发的文本经常是「转发微博」四个字加上原文清洗时要把「转发微博」这个标记删掉否则大量文本被聚到一个全是转发记录的垃圾簇。第二表情有两种写法一种是中括号形式如[哈哈]、[泪目]一种是 Unicode emoji正则要分别处理。第三短文本过滤。少于 10 个字的微博大多是「哈哈」「路过」「蹲一个」这类无信息量发言对聚类的贡献是负的直接在 DataFrame 层面过滤掉。我习惯把清洗函数拆成独立的纯函数先打几条验证再批量跑。清洗逻辑一旦写错后面所有聚类结论都建立在脏数据上返工成本非常高。2.3 一份可以直接跑的 Python 采集与清洗代码骨架import re import pandas as pd def clean_weibo_text(text: str) - str: 清洗单条微博去链接、去、去话题标记、去表情 if not isinstance(text, str): return text re.sub(rhttps?://\S, , text) # 短链和完整URL text re.sub(r[\w\u4e00-\u9fa5\-], , text) # 用户名 text re.sub(r#.?#, , text) # 话题标记聚类时单独统计 text re.sub(r转发微博, , text) # 无信息量转发标记 text re.sub(r\[.?\], , text) # 中括号表情如[哈哈] text re.sub(r[\U0001F300-\U0001F9FF], , text) # Unicode emoji区间 text re.sub(r\s, , text).strip() # 合并空白 return text df pd.read_csv(weibo_hot_data.csv, encodingutf-8) df[clean_text] df[text].map(clean_weibo_text) df df.dropna(subset[clean_text]) df df[df[clean_text].str.len() 10] # 过滤10字以下的噪声 df df.drop_duplicates(subset[clean_text]) # 去重同一段子被几百人转发很常见 df.to_csv(weibo_clean.csv, indexFalse, encodingutf-8-sig)这段代码的逻辑是逐条替换噪声模式。第一个正则去掉 http 开头的链接\S吃掉链接中不含空格的部分第二个正则匹配 后的用户名[\w\u4e00-\u9fa5\-]覆盖字母数字下划线、中文和连字符第三个正则用非贪婪?匹配 # 开头 # 结尾的话题标记后两个正则分别处理中括号表情和 Unicode emoji。这里去掉 #话题# 是关键一步同一话题下的文本几乎都带这个话题词TF-IDF 会给它很低的权重删掉它反而让聚类更关注子主题差异。参数说明10 字的长度阈值是经验值建议先画出文本长度分布再定drop_duplicates按清洗后的文本去重因为同一条内容被几十人原样转发在微博上非常常见。写文件用utf-8-sig而不是utf-8这样用 Excel 打开中文不会乱码后续人工核对聚类结果时省很多事。清洗完成后随手打印一条验证输出确认没有残留链接和表情再进入分词环节。3. 文本向量化是聚类的命根子分词、停用词与 TF-IDF3.1 中文分词先做对jieba 与自定义词典中文聚类和英文聚类最大的区别在分词。英文按空格切词就够中文必须先把连续的字序列切成词否则 TF-IDF 统计的是单字特征聚类出来的类簇几乎没有语义。舆情场景我默认用 jieba它在工程上生态最成熟pip 安装即用、支持自定义词典处理微博这种充满网络新词的文本比纯深度学习分词方案更可控。微博文本对分词器的考验在新词和网络词。「绝绝子」「yyds」「新能源车」这类词如果词典里没有会被切成「绝绝/子」「yy/ds」「新/能源/车」语义完全丢失。解决办法是分词前把领域词汇加进自定义词典或者加载一份微博词表。import jieba # 把舆情场景的高频网络词/实体词加进词典避免被切碎 jieba.add_word(绝绝子) jieba.add_word(yyds) jieba.add_word(新能源车) jieba.add_word(手机发布) def tokenize(text: str) - list[str]: jieba分词过滤空白和单字token words jieba.cut(text) return [w for w in words if len(w.strip()) 1]jieba.add_word的作用是提升该词的成词概率不保证强制生效但工程上足够解决大部分新词切碎问题。我过滤了单字 token因为单个汉字在 TF-IDF 里大多是噪声如果你的场景里「车」「房」这类单字很关键把过滤条件改成只跳过空白即可。分词这步还有个小坑jieba.cut返回的是生成器几十万条文本就让它一条条跑不要在循环里反复初始化 jieba耗时差异非常大。上面的类型注解list[str]需要 Python 3.9 以上低版本改成List[str]并from typing import List就行。3.2 TF-IDF 向量化与特征选择分词之后文本从字符串变成了词列表但聚类算法吃的是数值向量。把词列表变成向量的标准做法是 TF-IDFTF 统计词在单篇文档里出现的次数IDF 衡量词在整个语料里的稀有程度两者相乘之后越能区分文档的词权重越高。微博舆情场景用 TF-IDF 而不是纯词频是因为「真的」「现在」「今天」这类词在每条微博里都出现纯词频会把所有文本拉到一起类簇没有区分度。sklearn 的TfidfVectorizer可以把分词、停用词过滤、向量化串成一步。这里有个容易忽略的设计它的tokenizer参数可以直接传我们的 jieba 分词函数sklearn 会复用并对分词结果做缓存。min_df和max_df这两个参数控制的是文档频率过滤它们的取值直接影响特征空间的维度也就是后面聚类时的内存和速度。from sklearn.feature_extraction.text import TfidfVectorizer vectorizer TfidfVectorizer( tokenizertokenize, # 复用上面的jieba分词函数 token_patternNone, # 自定义tokenizer时关闭内置的token_pattern避免告警 max_df0.7, # 超过70%文档都出现的词视为弱区分度丢弃 min_df5, # 少于5篇文档出现的词视为噪声丢弃 ngram_range(1, 2), # 统计单个词和相邻双词 sublinear_tfTrue, # 用1log(tf)压缩高频词影响 ) X vectorizer.fit_transform(df[clean_text]) print(特征维度:, X.shape)逻辑说明fit_transform会先遍历全部文档做分词统计再计算 TF-IDF 权重返回的是 scipy 稀疏矩阵。ngram_range(1, 2)的意思是同时保留「手机」「发布」这样的单个词也保留「手机发布」「新能源车」这样的双词短语双词特征对捕捉舆情里的实体组合很有用代价是特征维度翻几倍文档量大时要留意内存。token_patternNone是自定义 tokenizer 时必须配合的参数否则 sklearn 1.2 以上版本会一直弹告警。3.3 三个必调参数max_df、min_df、ngram_range下面这张参数表我调过很多次结合微博数据的典型特征说取值依据。微博舆情语料的特点是文本短、噪声词多、同质化高参数不能照搬新闻长文本的默认值。参数推荐取值取值依据max_df0.6~0.8微博短文本里「真的」「现在」这类词出现频率极高超过 0.8 基本是弱区分度词min_df3~8数据量小就取 310 万条以上取 8过滤只在极少数文档里出现的生僻词ngram_range(1,2) 或 (1,3)舆情短文本建议 (1,2)再高容易引入无意义搭配sublinear_tfTrue压缩高频词权重避免常用词把聚类中心带偏smooth_idfTrue默认开启避免分母为 0保持默认即可max_df和min_df是两个相反的过滤器max_df干掉的是「每篇都有等于没有」的词min_df干掉的是「只出现过一两次」的偶然词。对十万条微博数据min_df5通常能把特征维度压到几万以内这个规模跑 KMeans 毫无压力如果特征还是很大说明噪声词混进来了优先调高min_df而不是降维。停用词这块多说一句。sklearn 内置的是英文停用词中文要自己准备。常见做法是下载一份中文停用词表再叠加「真的、居然、反正、我觉得」这类口语词。不要指望停用词表替代max_df两者互补停用词表针对语义上无意义的词max_df针对统计上无区分度的词很多口语词只能靠max_df兜住。4. 聚类算法选型与调参KMeans 还是 DBSCAN4.1 为什么舆情项目先选 KMeans向量化完成后进入聚类环节。舆情聚类项目里KMeans 是绝对的主流选择原因有三个。第一KMeans 对 TF-IDF 稀疏矩阵支持好一轮迭代只需要矩阵乘法级别的计算十万条微博几分钟跑完第二KMeans 输出固定数量的簇每个簇有明确的中心向量中心向量里权重最高的词可以直接当类标签这在舆情日报场景非常友好第三调参只有 k 值和随机种子两个核心参数入门用户也能快速上手。KMeans 的缺点是 k 必须提前指定而且对噪声敏感。微博场景里总有大量「一句话说完就消失」的杂音文本KMeans 会把它们强行分到某个簇导致每个簇里混着少量无关内容。这意味着用默认 k 值效果往往很差必须做一轮 k 的筛选。MinibatchKMeans 是另一个值得知道的名字。当数据量超过 50 万条标准 KMeans 的重复迭代会拖慢整个流程MinibatchKMeans 每次迭代只抽一批样本更新中心速度能快一个数量级聚类质量在舆情这种边界模糊的场景下降不明显。代码上只需要把KMeans换成MiniBatchKMeans其余参数基本一致。4.2 用肘部法和轮廓系数定 k 值k 值是 KMeans 唯一需要认真调的超参数。我一般先用肘部法粗看再用轮廓系数细选。肘部法跑一串 k 值记录每个 k 对应的簇内距离平方和画出来看有没有明显拐点轮廓系数直接衡量聚类质量取值在 [-1,1]越接近 1 说明类内紧凑、类间分离。两个方法结合的原因是肘部法经常没有清晰拐点尤其在高维稀疏文本数据上曲线大多平缓下滑这时候轮廓系数更有参考价值。import numpy as np from sklearn.cluster import KMeans from sklearn.metrics import silhouette_score best_k, best_score 0, -1 for k in range(3, 16): km KMeans(n_clustersk, n_init10, random_state42, max_iter300) labels km.fit_predict(X) # 抽样3000条算轮廓系数避免全量距离矩阵撑爆内存 rng np.random.RandomState(42) idx rng.choice(X.shape[0], 3000, replaceFalse) sc silhouette_score(X[idx].toarray(), labels[idx]) print(fk{k}: silhouette{sc:.4f}) if sc best_score: best_k, best_score k, sc print(最优k , best_k)逻辑说明循环里每个 k 都新建一个KMeans实例并训练fit_predict一次完成训练和预测。轮廓系数需要两两样本间的距离全量计算很慢所以抽样 3000 条并转成稠密矩阵评估这个量级的趋势足够反映整体。n_init10表示从 10 个不同初始中心出发取最优解这个参数对结果稳定性很重要——固定随机种子后同一份数据每次跑出来的簇应当完全一致方便复现和写报告。实践里舆情数据的轮廓系数普遍不高0.15~0.35 都算正常因为短文本话题边界本身模糊。不要追求 0.6 以上的理想值那是低维人工数据的数字文本聚类里很少见。更重要的一步是把kbest_k的聚类结果打印出来人工扫一遍看起来像样的簇比绝对值高的得分更靠谱。4.3 DBSCAN 更适合突发话题与离群点KMeans 把每条文本都塞进一个簇这对突发事件监测是个问题。突发事件里大量微博是「围观」「震惊」这类情绪化短文本它们和真正的信息流混在一起KMeans 会给它们分配簇结果簇的主题被稀释。这种场景换 DBSCAN密度不够的样本会被标记为噪声点而不是硬塞进最近的簇。DBSCAN 的两个参数是eps邻域半径和min_samples成为核心点的最少邻居数。eps 越大簇越少min_samples 越大越容易出噪声。微博文本向量化后维度很高直接算欧氏距离效果很差常见做法是先 PCA 降到 50 维左右再跑 DBSCAN否则 eps 的取值毫无手感。from sklearn.cluster import DBSCAN from sklearn.decomposition import PCA # 只抽前20000条做密度聚类避免稀疏矩阵转稠密时内存爆炸 X_sample X[:20000].toarray() X_pca PCA(n_components50, random_state42).fit_transform(X_sample) db DBSCAN(eps0.6, min_samples3, metriceuclidean).fit(X_pca) labels_db db.labels_ # -1 表示噪声点 n_clusters len(set(labels_db)) - (1 if -1 in labels_db else 0) print(f聚类数{n_clusters}, 噪声占比{(labels_db -1).mean():.2%})逻辑说明PCA 把高维稀疏特征压缩到 50 维连续空间DBSCAN 在这个空间里算欧氏距离。eps 从 0.5 开始调观察噪声占比噪声占 30% 以上说明 eps 太小或 min_samples 太大噪声占比低于 5% 说明 eps 太大簇被合并得没有意义。DBSCAN 的噪声点本身就是舆情信号——密度不够意味着没有形成集中讨论可能只是被热搜放大了的偶发内容。4.4 聚类结果落地类标签、热点摘要与可视化聚类跑完只完成了一半另一半是把数字标签翻译成能汇报的结论。最直接的做法是用簇中心词当类标签每个簇的中心向量里权重排名最高的几个词就是讨论重点。配合原始文本抽样可以快速写出「该簇占比 23%主要讨论 X 的 Y 问题」这类摘要句。可视化是舆情报表里加分、也最容易踩坑的环节。类别占比用饼图或条形图关键词分布用词云整体结构用 t-SNE 降维散点图。最近 echarts 数据可视化在舆情系统里用得很多它支持交互缩放日报里嵌一个可拖动的散点图比静态图更有说服力。我用 matplotlib 做快速验证最终进系统的图再换成 echarts 或专业 BI 工具。import pandas as pd df[cluster] km.labels_ # km 是前面最优k对应的模型 cluster_sizes df[cluster].value_counts() # 每个簇的占比和中心词排名 feature_names vectorizer.get_feature_names_out() for i in range(best_k): size cluster_sizes.get(i, 0) center km.cluster_centers_[i] top_words [feature_names[j] for j in center.argsort()[::-1][:8]] print(f簇{i} 占比{size / len(df):.1%} 关键词:{top_words}) # 抽样看原始文本验证簇的主题是否一致 for i in range(best_k): sample df[df[cluster] i][clean_text].head(5) print(f--- 簇{i} 原文抽样 ---) for s in sample: print(s[:50])这段代码把聚类标签写回 DataFrame然后做两层验证关键词看抽象主题原文抽样看人工可读的佐证。报告里引用几个原始文本片段比只列关键词可信得多。如果发现某个簇的关键词和原文对不上说明前面的向量化参数或 k 值有问题回去调参而不是硬写报告。5. 舆情聚类避坑清单从数据到结果的 5 个常见翻车点5.1 分词不准网络新词被切得七零八落现象聚类跑完后某个簇的关键词里出现大量「绝绝」「子」「无语/子」这类残词类簇主题完全无法概括。原因jieba 默认词典没有收录微博语境下的新词和网络词「绝绝子」被切成「绝绝」和「子」TF-IDF 把这两个残词当成独立特征聚类中心自然就偏了。解决分词前用jieba.add_word批量添加自己整理的新词表词表来源可以是热搜榜、话题高频词统计也可以先跑一次词云看高频残词再从里面挑。更稳妥的做法是把词表维护成一个外部 txt 文件每次跑之前循环加载这样换数据不用改代码。5.2 聚类结果全是「其他」向量化参数不当现象k 个簇里有一个簇占比超过 60%关键词空泛其余簇都只有几个百分点报告根本没法写。原因min_df太小。微博语料里偶然词非常多min_df1时特征空间被大量只出现一次的噪声词占据聚类中心被噪声拉扯大部分文本落进同一个大簇。解决把min_df从 1 调到 5~8重新看特征维度和簇分布。如果还是一个大簇检查停用词是否生效中文口语词「真的、感觉、就是」要靠max_df兜底。特征空间干净之后簇的分布会均衡很多。5.3 时间维度被忽略不同时段的讨论被聚成一团现象同一部剧的舆情里开播首日的「期待」和播出后的「剧情吐槽」被分进同一个簇后续要按天做趋势分析时发现没法拆。原因KMeans 只看文本相似度不看时间。聚类目标是「主题」而不是「阶段」时间信息在向量化阶段就被丢弃了。解决把时间当成分组维度而不是特征。先按天切分数据再对每天分别聚类最后比较相邻天簇关键词的重合度来判断话题演化。文本聚类负责回答「是什么」时间段对比负责回答「怎么变的」两者结合才是完整的舆情分析。5.4 类中心词掩盖矛盾观点主题和情感要分开算现象一个关于某品牌手机的簇关键词是「手机、发布、价格、配置」看起来没毛病但簇内一半人说「真香」一半人说「贵得离谱」。原因聚类是按主题分的不是按情感分的。TF-IDF 特征里没有情感极性主题一致的文本即使观点对立也会被分进同一簇。解决聚类之后加一层情感判断用情感词典打分或直接引入一个小的情感分类模型在簇内统计正负样本比例输出「簇主题 情感分布」。舆情研判需要的是这个二维信息不是单一主题标签。5.5 数据量大到内存爆掉稀疏矩阵也扛不住现象几十万条微博进入聚类环节sklearn 报 MemoryError或者 KMeans 迭代一次要几分钟。原因TfidfVectorizer 输出的稀疏矩阵本身不大但 PCA 降维时toarray()把稀疏转稠密内存瞬间翻几十倍DBSCAN 的距离计算对样本量极其敏感上万条就明显变慢。解决先抽样。舆情聚类对精度的要求没有严格到必须全量随机抽 5 万条训练结果趋势和全量基本一致。DBSCAN 只跑抽样子集PCA 在子集上训练再对全量做transform。如果全量必须过就用 MiniBatchKMeans 配合分块读取别一次性把全部数据塞进内存。说白了这是大数据量文本聚类的常规问题策略永远是「先抽、再算、后验证」。6. 让聚类结果能用于舆情研判主题演化与关键词追踪6.1 按天切片的固定模型策略只看一次聚类结果只能知道「今天的微博在吵什么」舆情研判更需要「这个话题三天内是怎么变化的」。常见做法是固定一个全局聚类模型每天的数据只做贴标签、不重新聚类。原因很直接如果每天重新训练 KMeans簇的编号每天都会变昨天叫簇 0 的话题今天可能变成了簇 3趋势曲线画出来全是毛刺没有可比性。import numpy as np import pandas as pd df[date] pd.to_datetime(df[created_at]).dt.date # 固定模型已经训练好每天只预测贴标签 df[cluster] km.predict(X) # 按天统计各簇占比画出堆叠面积图 share df.groupby([date, cluster]).size().unstack(fill_value0) share_pct share.div(share.sum(axis1), axis0) share_pct.plot.area(figsize(12, 6), title各主题簇每日占比演化)有了这个每日占比矩阵就能看出哪个簇在扩张、哪个簇在消退。某天某个簇占比突然拉升对应到原始文本里大概率是出现了新的事件节点这是写舆情报告时最值钱的一句话。6.2 主题漂移怎么量化占比曲线只能说明「量」的变化主题本身的漂移要靠关键词重合度来量化。feature_names vectorizer.get_feature_names_out() def day_top_words(day_df, topn8): 对单日文本预测簇标签再计算每个簇当日的主题词 X_day vectorizer.transform(day_df[clean_text]) labels_day km.predict(X_day) day_df day_df.copy() day_df[label] labels_day out {} for c in range(best_k): X_c vectorizer.transform(day_df[day_df[label] c][clean_text]) mean_vec np.asarray(X_c.mean(axis0)).ravel() top_idx mean_vec.argsort()[::-1][:topn] out[c] [feature_names[i] for i in top_idx] return out # 相邻两天的同簇关键词重合度低于阈值就说明主题发生了漂移 for date in sorted(df[date].unique()): day_df df[df[date] date] print(date, day_top_words(day_df))这个函数区别于全局中心词的地方在于它用当天文本重新计算簇内 TF-IDF 均值反映的是当天真正被高频讨论的词而不是模型在训练集上的整体中心。实际操作时我把每天的关键词集合存下来相邻两天做 Jaccard 相似度计算重合度跌到 0.3 以下就触发告警说明这个簇的讨论焦点已经换了。我这边的习惯是聚类模型每周只重新训练一次平时只做预测这样既保证趋势可比又不会因为每天重训把噪声当成信号。舆情聚类做到这个程度基本就从「能跑通」变成了「能交付」希望帮到你。本文还有配套的精品资源点击获取
RELATED

相关推荐

CTF新手入门指南:赛制、五大方向与练习平台全解析

CTF新手入门指南:赛制、五大方向与练习平台全解析

我是从Web方向入坑CTF的,后来为了补短板又把杂项、密码学、逆向都摸了一遍,现在回过头来看,新手阶段最痛苦的不是“不会做题”,而是“不知道该学什么、按什么顺序学”。网上的入门资料要么太散,要么直接甩一脸高难度赛…

📅 2026/10/1 10:57:58
用Java从零搭建P2P视频通话系统:信令、RTP与NAT穿透实战

用Java从零搭建P2P视频通话系统:信令、RTP与NAT穿透实战

1. 视频通话的Java世界观:先搞懂我们要做什么 很多Java开发者一听到“视频通话”就头大,心里冒出的全是WebRTC、音视频编解码、回声消除这类听起来就复杂的专业术语,似乎这个东西天然就应该属于C开发者。实际上,纯用Java做一套可运…

📅 2026/10/1 10:57:58
OpenClaw本地智能体部署实战:8分钟跑通Skill机制

OpenClaw本地智能体部署实战:8分钟跑通Skill机制

说实话,我第一次看到“ OpenClaw(Clawdbot) ”这名字的时候,第一反应是又一个套壳的AI玩具。但真正花了一晚上把它跑起来,又把两个自定义 Skill 挂上去之后,我得承认,这玩意儿在“本地智能体…

📅 2026/10/1 10:57:58
MORE NEWS

更多资讯

📰

聚合AI外贸GEO服务商哪家强?适用于小语种站点与Google/Bing双引擎优化

海外买家正在转向AI提问,外贸获客逻辑已经变了全球贸易数字化进程正在加速,海外采购商的决策入口正在发生根本性迁移。过去是搜关键词、打开网页、逐一比较,如今越来越多买家直接向ChatGPT、Gemini、Claude等AI提问:有哪些靠谱的中…

📰

Pi实战 04:多智能体与高级工作流篇

Pi实战 04:多智能体与高级工作流篇 来源:Pi 作者 Mario Zechner 博客、ruizrica2 开源项目 “agent”、HN 讨论、Reddit r/PiCodingAgent、cmux 演示。 Pi 没有内置子代理(sub-agents)、没有 plan mode、没有后台 bash。官方态度很…

📰

从零搭建AI工程:提示词、Agent与RAG实战指南

如果你在 GitHub 上搜过 ai-engineering-from-scratch 这个名字,应该能猜到它不是一个“调几个 API 跑个 demo”的玩具项目。它是一个从零到一、把大模型应用从想法推到生产环境的完整方法论,核心覆盖提示词工程(Prompt Engineering&#x…

📰

2026本地部署大模型完全指南:工具选型、量化部署与生产加固

1. 项目概述:为什么2026年“本地部署大模型”不再是极客玩具,而是生产力刚需2026年,我拆开第三台二手RTX 4090工作站时,手边正跑着一个刚微调完的7B参数模型——它正在帮我自动整理过去三年所有会议录音的要点,并同步生…

📰

开源模型一键部署成 OpenAI 兼容 API:四种推理引擎路线

你手里有一批不错的开源模型,可是绕不开一个问题:怎么让现有系统以最小成本用起来?最省事的答案就是“OpenAI 兼容 API”。不管是 ChatGPT、Claude 还是开源模型,只要服务方提供一套长得像 OpenAI 格式的接口,所有基于…

📰

DeepSeek Harness架构实战:MCP协议、Skill桥接与Token预算工程指南

1. 这不是创业故事,是单人Agent工程极限压力测试的实录 “一个人、九个月、20万行代码、每个月烧掉40亿 token”——这行标题在技术圈刷屏时,我第一反应不是惊叹,而是立刻打开终端查了查自己上周的OpenRouter账单:378万token。数字…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬