豆瓣影评情感分析:朴素贝叶斯文本分类实战
简介面向人工智能与自然语言处理初学者的情感分析实践项目聚焦豆瓣Top250影评数据基于朴素贝叶斯分类器完成正负面情感判别。资料涵盖Scrapy爬虫采集的约5万条影评语料好评差评比例均衡并按照4:1划分训练集与测试集实测准确率在79%至80%之间描述中还指出部分好评含有负面词汇会影响结果便于读者进一步优化。项目从数据抓取、文本清洗、特征构建到模型训练与评估形成一套完整的实验闭环。全包共8个文件包括4个Python脚本、2个词典/停用词文本、1个CSV数据集以及1个Jupyter Notebook大小仅3.26MB麻雀虽小但闭环完整。已有3371人学习下载适合想快速上手文本分类、朴素贝叶斯建模及情感分析全流程的开发者参考。1. 为什么拿豆瓣影评练手短文本情感分析的最佳试验场一部电影上映后口碑怎么样最直观的方式是打开豆瓣短评页面刷几屏。可一旦短评数量上了万条人眼阅读就成了体力活。这个人工智能项目实践要把这个过程自动化把短评当作输入文本用朴素贝叶斯算法判断每一条评论的情感倾向输出“好评”或“差评”。在人工智能学习路径里它属于最典型的文本分类入门项目数据集好拿、模型训练快、结果可解释。很多学校的人工智能大作业都会选这个题目原因是它把数据采集、文本清洗、特征工程、模型训练和评估全部压缩到一个最小闭环里。做这个项目不需要GPU不需要部署服务一台普通笔记本、半小时到一小时就能跑通。适合刚接触自然语言处理、想用实践验证课堂理论的人。下面我会沿着数据准备、特征工程、模型训练、踩坑记录这条线把每一段的关键参数和调用逻辑拆开讲。2. 准备影评数据从抓取短评到清洗出干净的中文语料2.1 用 requests 拿豆瓣短评最小抓取代码与访问边界我一般先把数据收集做成独立脚本不放在训练代码里。这个环节最容易被低估实际做起来会发现清洗比建模更花时间。第一步是抓取短评页面短评列表每页大约20条翻页通过URL参数控制请求时带上一个常见的浏览器User-Agent即可。import time import requests from bs4 import BeautifulSoup headers { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0 Safari/537.36 } def fetch_comments(movie_id, pages3): comments [] for page in range(pages): url https://movie.douban.com/subject/%s/comments % movie_id params {start: page * 20, limit: 20} resp requests.get(url, headersheaders, paramsparams, timeout10) if resp.status_code ! 200: print(request failed, stop at page, page) break soup BeautifulSoup(resp.text, html.parser) for item in soup.select(div.comment-item): content item.select_one(span.short) rating item.select_one(span.rating) if content: comments.append({ text: content.get_text(stripTrue), rating: rating[class][0] if rating else }) time.sleep(1 page * 0.5) return comments这段代码的重点有三个。第一movie_id是豆瓣电影主页URL里subject后面的那串数字比如35554739这是《流浪地球2》的编号可以直接替换成你要分析的电影。第二短评里的星标控件在span的class属性中allstar50表示五星allstar10表示一星这个属性可以当作模型标签的来源。第三time.sleep控制请求间隔我习惯每页至少停一秒连爬几十页的行为很容易触发访问频率限制不建议一次性抓太多页面。实际操作里我会先把抓下来的数据存成CSV避免反复请求。常见做法是字段只有text和rating两列正负标签统一到后面再处理。豆瓣短评页面对外部工具不太友好如果连续几次请求失败我会直接换公开的中文影评语料来跑通后续流程项目重心始终是情感分析本身而不是和反爬机制较劲。import pandas as pd df pd.read_csv(douban_comments.csv, encodingutf-8-sig) df df.dropna(subset[text]).reset_index(dropTrue) print(df.shape) df.head()读取CSV时指定utf-8-sig比utf-8稳妥Windows下生成的CSV文件默认带BOM头用utf-8直接读会在第一列列名前面残留一个不可见字符。读进来之后先看shape和head确认字段没有串位再做后续清洗。2.2 文本清洗规则去HTML、去英文数字、分词与停用词豆瓣短评虽然是纯文本但抓下来的数据里仍可能混入HTML标签残留、英文单词和全角半角空格。中文情感分析的特征是词级别所以清洗顺序比清洗手段更重要。我先去掉HTML标签再去掉英文和数字最后做中文分词否则一个残留的“div”会被当成一个正经词送进模型。import re import jieba STOPWORDS set() with open(stopwords.txt, encodingutf-8) as f: for line in f: STOPWORDS.add(line.strip()) def clean_text(text): text re.sub(r[^], , text) text re.sub(r[a-zA-Z0-9], , text) text re.sub(r\s, , text) return text def tokenize(text): words jieba.lcut(text) return [w for w in words if w not in STOPWORDS and w.strip()] df[text_clean] df[text].apply(clean_text) df[tokens] df[text_clean].apply(tokenize) df[corpus] df[tokens].apply(lambda x: .join(x))停用词表我用的是网上公开的哈工大停用词表文件不大约几百KB放到项目根目录的data文件夹里。处理完每个字段后要检查一遍比如打印一条评论的清洗前后对比。中文分词阶段jieba默认词典对网络新词和电影术语覆盖有限后面会专门处理“不好看”这类容易被切碎的词。标签策略这里要提前定。豆瓣星级和情感不是严格对应关系我给项目定的规则是四星和五星算好评一星和两星算差评三星直接丢掉。原因在于三星评论的情感倾向太模糊很多人写三星只是觉得“还行”强行把它归到好评或差评都会污染数据。这一步会筛掉一部分样本但换回来的是更清晰的分类边界。3. 特征工程与朴素贝叶斯把“好看”变成概率3.1 词袋和TF-IDF中文句子怎么变成向量朴素贝叶斯算法不直接吃文本它需要数值特征。文本分类项目里最常见的做法是把句子切词后用词袋模型或TF-IDF把每条评论映射成固定长度的向量。词袋模型统计每个词在评论里出现的次数TF-IDF在这个基础上给高频通用词降权我习惯在文本分类里优先用TF-IDF。from sklearn.feature_extraction.text import TfidfVectorizer vectorizer TfidfVectorizer( max_features5000, ngram_range(1, 2), min_df2 ) X vectorizer.fit_transform(df[corpus]) print(X.shape)这里三个参数决定了特征空间的大小和形态。max_features5000表示只保留词频最高的5000个特征限制维度可以降低过拟合并缩短训练时间ngram_range(1, 2)同时保留单词和双词组合“不好”这个双词组合就能成为一个独立特征对评价类文本很关键min_df2意味着一个词至少要在2条评论里出现过才保留可以过滤掉只有在某一条评论里出现的个性化词汇。词袋与TF-IDF的差别在于权重语义。词袋里“电影”出现10次和“烂片”出现1次前者权重更高TF-IDF里“电影”几乎是语料公用的词会被压到很低的权重而“烂片”因为集中出现在差评里权重会明显抬高。这个差异直接决定了特征质量。特征矩阵X是稀疏矩阵格式直接喂给朴素贝叶斯模型没有问题不需要先转换成稠密数组。3.2 朴素贝叶斯在做什么从贝叶斯公式到评论文本朴素贝叶斯能在这个项目里稳定工作核心是它直接计算“给定一条文本属于好评的概率”。公式上就是P(好评|文本) P(文本|好评) * P(好评) / P(文本)。其中P(好评)是训练集里好评比例这是先验概率P(文本|好评)表示在好评的前提下看到这组词的概率这是似然。最后比较P(好评|文本)和P(差评|文本)哪个更大。“朴素”二字指的是条件独立性假设算法假设“好看”“感人”“演技”这些词在好评里出现与否互不影响。这个假设在真实语言里显然不成立但在短文本分类场景下它却意外地稳定而且让每个词的概率可以单独统计训练速度非常快。对几百到几千条影评这种量级的数据朴素贝叶斯足够可靠没必要上深度学习模型。一条影评“剧情很烂演技也烂”进入模型后会被拆成“剧情”“很”“烂”“演技”等词。模型查到P(“烂”|差评)远高于P(“烂”|好评)两个“烂”叠加后差评概率迅速占上风。这个逻辑可以一步步打印出来模型完全不黑匣子这也是它成为人工智能入门项目标配的原因。词袋模型和TF-IDF只负责把文本变成数字真正做判断的是概率表训练之后我通常会把每个词在好评和差评中的条件概率拉出来看一遍确认模型学到的不是噪音。4. 训练与评估用 sklearn 复现可量化的情感判断4.1 train_test_split 与 MultinomialNB参数与训练代码数据准备完成后先把特征和标签划分成训练集与测试集。常见的坑是先对全量语料做向量化再切分这会造成数据泄露正确的顺序是先切分再在训练集上fit向量器。这里的特征X已经在前面算出来了但更规范的做法是把原始corpus传入在切分后单独做向量化这部分我放到避坑章节细说。from sklearn.model_selection import train_test_split from sklearn.naive_bayes import MultinomialNB label df[rating].apply(lambda r: 1 if r in (allstar50, allstar40) else 0) X_train, X_test, y_train, y_test train_test_split( X, label, test_size0.2, random_state42, stratifylabel ) model MultinomialNB(alpha0.1) model.fit(X_train, y_train) print(train size:, X_train.shape)train_test_split里test_size0.2表示拿20%的数据做测试random_state固定随机种子保证多次运行结果一致。stratifylabel是必须的它会按标签比例分层抽样防止1000条好评、100条差评时切分出来的测试集里一条差评都没有。MultinomialNB适合处理TF-IDF这种非负的计数型特征alpha是拉普拉斯平滑的伪计数。alpha越小模型越依赖训练集中的原始统计alpha越大对未登录词的容错越高。我在小数据集上一般从0.01到1之间试。训练完成后模型内部实际生成了一张词概率表。可以用model.feature_log_prob_把特征词在好评和差评里的对数概率打印出来直观看到模型学到了哪些词。这个过程不涉及额外的推理成本强烈建议做一次。4.2 评估模型准确率不是唯一指标混淆矩阵更重要模型训练完后不能只看准确率。影评情感分析里如果差评只占训练集的10%模型全部预测好评就能拿到90%的准确率但它没有实际用处。所以我评估时会同时看F1分数、分类报告和混淆矩阵。from sklearn.metrics import accuracy_score, f1_score, classification_report, confusion_matrix y_pred model.predict(X_test) print(accuracy:, accuracy_score(y_test, y_pred)) print(f1:, f1_score(y_test, y_pred, pos_label1)) print(classification_report(y_test, y_pred)) print(confusion_matrix(y_test, y_pred))classification_report里的precision表示预测为好评的数据里有多少是真的好评recall表示真实好评里有多少被正确召回。F1是两者的调和平均适合评价样本不平衡的文本分类。混淆矩阵可以给出四象限结果比如有多少差评被误判成了好评。如果差评误判率偏高原因通常是训练集差评样本太少模型对差评的先验概率估计不足这时可以回来调整数据比例而不是盲目调alpha。评估之外我还会用predict_proba看模型输出概率而不是单纯类别。这条能力在情感分析里很有价值因为“72%倾向于好评”比“好评”两个字携带更多信息。比如可以把概率按0.4到0.6划为中立区用来识别模棱两可的评论这在真实业务里比强行二分类好用得多。proba model.predict_proba(X_test) print(proba[:5])pridict_proba默认输出两列第一列是差评概率第二列是好评概率。观察概率分布可以帮助发现模型是否过于自信比如绝大多数预测概率都接近0.99或0.01说明模型过拟合了训练数据泛化表现可能不如测试集看到的那么乐观。5. 实操避坑影评分类最常见的 5 个翻车点5.1 模型把所有评论都判成好评现象训练完成后的测试集准确率很高但看一下预测结果几乎所有样本都被预测为好评。原因豆瓣短评整体偏正向好评数量远大于差评训练集里差评占比低于20%时朴素贝叶斯学到的先验概率P(好评)很高会把模糊评论都推向好评一侧。解决采集数据时按星级配额采样控制好评和差评比例在1:1到2:1之间。如果数据已经固定切分时用stratify保证测试集分布一致训练集里可以手工抽样把好评样本数降到差评的两倍以内。注意MultinomialNB不像某些分类器带class_weight参数平滑系数调整解决不了类别不平衡问题应该从数据层面解决。5.2 “不好看”被切成了“不好”和“看”负面评论被判成好评现象检查被误判的评论时发现“不好看”“演技不行”这类明显负面表达出现在好评区间。原因jieba默认词典没有把“不好看”当作完整词切分成了“不好”和“看”而且停用词表里可能把“不”“没”这种否定词删掉了模型丢失了关键的否定语义。解决保留停用词表里的否定词把“不好”“难看”“烂片”“演技差”等电影评论高频表达加入用户词典。加词典后再看分词结果确认没有二次切碎。jieba.add_word(不好看) jieba.add_word(演技差)我还会单独打印这些词的TF-IDF权重确认它们真正进入了特征空间。仅仅做好这一步负面评论的F1通常就能提升好几个点。5.3 先用全量语料fit向量器再切分测试集“作弊”现象模型在测试集上的准确率接近1但换到新评论上预测却明显变差线下线上效果严重不一致。原因代码里对全量语料先执行了fit_transform再做的train_test_split。向量器的词表统计已经看到了测试集的内容测试集信息在训练阶段就泄露给了模型造成数据泄露。解决严格按顺序执行先切分数据再对训练集fit向量器然后对训练集和测试集分别transform。我把这个过程固定成模板X_train_raw, X_test_raw, y_train, y_test train_test_split( df[corpus], label, test_size0.2, random_state42, stratifylabel ) vectorizer TfidfVectorizer(max_features5000, ngram_range(1, 2), min_df2) vectorizer.fit(X_train_raw) X_train_vec vectorizer.transform(X_train_raw) X_test_vec vectorizer.transform(X_test_raw)这样测试集和训练集共用同一张从训练数据里学到的词表测试集信息不会泄漏进特征统计。这是文本分类项目里最隐蔽也最常见的错误头歌平台上朴素贝叶斯练习里不会踩这个坑真实数据集下绕不过去。5.4 自测准确率很漂亮换一部电影预测就崩现象在《流浪地球2》影评上训练测试都有85%以上准确率拿到另一部爱情片影评上预测差评全被预测成好评。原因训练语料来自单一题材词表里“特效”“演技”等词的分布完全偏向该题材情感表达有领域差异。爱情片里的“虐”“甜”“哭惨”和科幻片里的“宇宙”“飞船”在概率表里根本不占位置。解决训练集尽量覆盖多种类型电影至少包含动作、喜剧、科幻、爱情几类。如果只做单部电影分析模型只能描述该电影群体的表达习惯。往多模态情感分析方向走时也要注意弹幕和表情符号的表达方式与短评完全不同跨域迁移能力是有限度的。5.5 短评抓取到一半连续失败数据只有几百条现象脚本刚开始还能正常返回数据几页之后收到非200状态码重试也无效数据量不够训练。原因短评页面持续高频访问触发了访问频率限制通常按IP和访问特征统计。解决降低请求频率随机延时至少2秒每次运行只抓一页边抓边存CSV防止中途中断丢数据。别把全部评论抓完再落盘写文件的时间放在每次循环尾部。更保险的做法是放弃爬虫直接用公开的中文影评语料跑通训练流程项目价值集中在情感分类本身。我在后续实践里都会优先选择后者数据可复用、结果可复现不会因为一个环节失败拖垮整个项目。6. 进阶调参与验证的最后一公里基础模型跑通后我一般会做两件事用网格搜索选出更合适的alpha然后用新的样本外数据验证模型泛化能力。alpha虽然只接受一个浮点数但0.01和1之间的差异在几百条样本上非常明显。网格搜索可以把这一步自动化from sklearn.model_selection import GridSearchCV param_grid {alpha: [0.01, 0.05, 0.1, 0.5, 1.0]} gs GridSearchCV(MultinomialNB(), param_grid, cv5, scoringf1) gs.fit(X_train_vec, y_train) print(gs.best_params_, gs.best_score_)GridSearchCV用5折交叉验证评估每个alpha的F1分数比固定切分一次的结果更稳定。注意搜索过程用的仍然是训练集测试集要留在最后做一次最终验证不要在搜索阶段就把测试集用掉。验证泛化能力的手段是手工标注几十条新评论把它们通过同一套清洗和向量化流程输入模型。我习惯准备10条好评、10条差评、10条中性评论观察中性评论被强行分类时的置信度。如果中性评论全部以高置信度落到两端说明模型把情感判断做得太极端可以考虑把predict_proba落在0.4到0.6区间的样本直接判为“存疑”让情感分析输出三分类实际使用中比二分类更有说服力。最后还有个进阶方向可以尝试在现有特征基础上加入情感词典打分维度。比如统计每条评论里的积极词与消极词数量作为两个额外的数值特征拼进特征矩阵。这一步不改变朴素贝叶斯本身只是让模型拿到更接近人类判断的信号。做这个项目时我第一个版本的准确率看着还行后来把混淆矩阵拉出来才发现差评几乎全军覆没根源是训练集里差评太少。回头重新处理了数据分布模型才算真正可用。这个项目的价值不是调出一个完美分类器而是让你完整走一遍从文本到概率的流程以后遇到任何文本分类问题都能照这个套路搭出第一版方案。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

操作系统T1考题解析:进程状态迁移与上下文切换双线推演

操作系统T1考题解析:进程状态迁移与上下文切换双线推演

1. 项目概述:这是一份面向操作系统的教学实操型考题解析,不是试卷搬运工“第2单元进程的描述与控制考试T1”——光看标题,你可能以为这只是某高校《操作系统原理》课程的一道普通期中题。但作为带过十几届系统课实验的从业者,我得…

2026/10/13 13:53:36 阅读更多 →
Java中extends与implements的区别:从语法到设计选型

Java中extends与implements的区别:从语法到设计选型

1. 为什么这两个关键字总让人犯迷糊刚入行那会儿,我在一个后台管理系统里写代码,需要定义一个订单服务类。当时脑子里想的是“订单服务是一种服务,那就用 extends 继承一个基础服务类吧”,结果写着写着发现基础服务类里有一堆跟订…

2026/10/13 13:53:40 阅读更多 →
C语言浮点数精度陷阱与避坑指南:从IEEE 754到工程实践

C语言浮点数精度陷阱与避坑指南:从IEEE 754到工程实践

1. 从"整数思维"到"浮点思维"的认知切换很多人学C语言学到浮点数这一块,都会有一种"好像懂了但又好像没懂"的感觉。声明一个float变量、打印用%f、做做加减乘除,看起来和整数没什么区别。但一旦程序跑出0.1 0.2 ! 0.3这种…

2026/10/13 13:53:44 阅读更多 →

最新新闻

基于Matlab GUI的轮轨接触几何计算程序设计与实现

基于Matlab GUI的轮轨接触几何计算程序设计与实现

做车辆动力学的人,应该都有过被轮轨接触几何支配的恐惧。不管你是在算临界速度、评估脱轨安全性,还是在调悬挂参数,第一关都得把轮轨接触几何算清楚。左右轮滚动圆半径差、接触角、等效锥度,这些量直接决定你后面的动力学仿真靠不…

2026/10/13 16:51:39 阅读更多 →
Winform轻量级可交互FlowChart流程图实现方案

Winform轻量级可交互FlowChart流程图实现方案

简介:这是一份基于WinForm平台实现的轻量级流程图绘制工具源码,面向C#初学者与小型项目开发者,解决快速构建可视化业务流程图的需求。资源以FlowChart.Net开源库为基础深度定制,功能简洁实用,适合嵌入教学演示、内部管…

2026/10/13 16:51:39 阅读更多 →
SIP软电话源码实战:从编译到NAT穿透与信令定制

SIP软电话源码实战:从编译到NAT穿透与信令定制

简介:本资源是一份基于SIP协议的软电话完整源代码工程,面向通信协议开发初学者、VoIP系统学习者及嵌入式/网络应用开发者,旨在帮助理解SIP信令交互、媒体协商与实时语音通信的核心实现逻辑。压缩包共302个文件,含45个C源文件&…

2026/10/13 16:51:39 阅读更多 →
测试工程师成长路径:从功能测试到测试架构师的能力进阶指南

测试工程师成长路径:从功能测试到测试架构师的能力进阶指南

前阵子我面试一位五年经验的测试工程师,简历上写着“熟悉自动化测试”,结果我随口问了一句“接口测试的断言除了状态码还会验什么”,他支支吾吾说了半天,最后落点在“看返回结果对不对”。这个场景不是个例,聊测试工程…

2026/10/13 16:51:39 阅读更多 →
MySQL课件精讲:从E-R图到候选码的数据库设计核心

MySQL课件精讲:从E-R图到候选码的数据库设计核心

简介:这套《MySql数据库原理及应用》课件汇总共1个文件(pptx格式),压缩包大小13.29MB,覆盖整本教材的教学内容。资源面向数据库初学人员、高校师生及自学MySQL的读者,系统讲解数据库系统基础知识与MySQL应用…

2026/10/13 16:51:39 阅读更多 →
AI工程化能力三支柱:数据智能、模型架构与系统交付

AI工程化能力三支柱:数据智能、模型架构与系统交付

1. 这不是“学AI”,而是构建一套可迁移、能落地的工程化能力体系很多人点开“AI培训学什么”这类标题,第一反应是找速成班、抄代码、背模型名字——结果学了三个月,连数据怎么清洗都卡在pandas报错上;或者花两万块报了“大模型实战…

2026/10/13 16:50:38 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →