Hadoop+Python租房数据分析:从环境搭建到答辩演示全流程
每年到这个节点总能在后台收到一大堆“求救”私信十个里有八个是问大数据方向毕业设计怎么落地。倒不是题目难想而是很多人拿到题目之后才发现环境搭不出来、数据填不进去、图表显示空、演示时一跑就崩。今天拿一个很典型的题目——基于HadoopPython的租房数据分析系统把从选题拆解、架构设计、环境搭建、数据清洗统计到Web可视化、远程调试、答辩演示的完整链路串一遍。这个题目适合两类人一是拿它当毕业设计、需要快速产出一个能演示能答辩成果的同学二是想搞清楚Hadoop生态到底在真实项目中怎么用、而不是只会跑WordCount的初学者。先给一个整体定位这套系统不是传统意义的CURD管理系统而是一个典型的“离线数仓小闭环”。前端是可视化大屏后端是Flask或Django写的接口数据源头则是几十万条租房房源记录经过Python清洗之后落到HDFS再用Hive做统计最后把统计结果写进MySQL供页面查询。整套流程跑通相当于把Hadoop的存储和计算、Python的数据处理能力、以及Web展示三件事有机串了起来这比单纯堆几个框架名字要有说服力得多。1. 项目到底在做什么1.1 核心需求拆解先别急着敲代码先把需求看懂。标题里虽然写着“租房数据分析系统”但落到具体功能上其实就三件事第一要有足够多、足够真实的房源数据第二要对这些数据做多维度的统计和分析比如哪个区域房源最多、哪个地段均价最高、什么样的户型最好租、价格随面积或者时间的分布长什么样第三要把分析结果直观地展示出来做成图表和地图让用户一眼看出市场结构。结合毕业设计答辩的现场来看最理想的效果是打开系统左侧是城市地图上面落着各个板块的房源价格散点中间是区域均价柱状图、户型占比饼图右侧是房源列表和价格趋势折线图。你站在讲台上从“数据采集—数据清洗—分布式存储—离线计算—可视化展示”讲一遍整条链路全是考点评委想打断都难。1.2 为什么要用Hadoop而不是一把Pandas梭哈很多人会问几十万条数据用Python的Pandas直接读CSV算不就行了何必绕一圈用Hadoop这个问题的答案有两个层次。从技术实现角度说几十万条数据单机确实跑得动但毕业设计的评估重点不是计算效率而是你有没有理解大数据处理的基本流程。Hadoop在这里承担的是分布式存储和离线计算HDFS把数据切成块、多副本存储体现存储层的设计Hive用SQL的方式把MapReduce包装起来体现计算层对批处理任务的支撑。用Hadoop的价值在于完整地走一遍“数据上HDFS—建表—离线分析—结果导出”的流程。从答辩策略角度说如果你只用Pandas评委问一句“你的分布式体现在哪”场面就会很尴尬。反过来如果你说清楚“HDFS负责存储原始数据Hive负责跑离线统计任务计算出结果后写入MySQL供Web应用查询”这就形成了一条清晰的分布式处理链路。哪怕只有一台机器跑伪分布式逻辑也是成立的。毕设项目的核心是自圆其说不是非得造一个三节点集群。1.3 系统架构的简单记忆法我给这套系统总结过一个很土但很形象的话脏数据进垃圾场干净结果进仓库页面只去仓库取货。具体来说爬虫或者模拟数据生成的CSV是“脏数据”先交给Python做清洗和字段规整清洗后的文件放到HDFS这一步相当于把货搬进“垃圾场”Theme 里的建表语句只是给它搭了个货架Hive按区域、价格、户型这些维度跑SQL跑完的结果写进MySQLMySQL就是“仓库”网页端展示时只连MySQL不直接碰HDFS因为Hive的查询响应速度并不适合给在线页面提供实时接口。这个架构里最容易被忽视但也最关键的一点是展示层和Hadoop是解耦的。页面只是懒洋洋地读表跑批的任务由定时脚本在凌晨完成。这样设计之后演示的时候无论怎么刷新页面都不会因为某个节点卡顿而白屏。2. 环境搭建与版本选型2.1 版本清单和搭配原则这套系统涉及的组件不算多但版本之间如果搭错调试时间可能比写代码还长。我自己在实际中验证过的一套稳定组合是Hadoop 3.2.x、Hive 3.1.x、JDK 1.8、Python 3.8/3.9、Flask 2.x、MySQL 5.7或8.0、以及ECharts 5.x。JDK这块需要单独强调一下千万不要图新安装高版本JDK很多Hadoop组件的启动脚本和JDK的新版本存在兼容问题最稳的就是JDK8。Hadoop安装时以伪分布式模式为主也就是用一台虚拟机或者一台云服务器把NameNode、DataNode、ResourceManager、NodeManager都跑在同一节点上。如果你的本子是8G内存建议虚拟机分配4G以上如果只有16G内存可以同时开一个三节点小集群但那对毕业设计来说不是必须的单节点伪分布式已经完全够用。2.2 伪分布式部署的详细步骤第一次搭伪分布式很多人会在格式化、启动、进程三个环节反复摔倒。我这里把关键步骤和排障点一起写出来。先配置环境变量确保JAVA_HOME和HADOOP_HOME都指向正确的路径。然后修改Hadoop的配置文件。core-site.xml设置两个核心项fs.defaultFS决定NameNode的地址一般写hdfs://localhost:9000hadoop.tmp.dir指定Hadoop临时目录这个一定要配置否则默认路径在重启后容易出现元数据丢失问题。hdfs-site.xml里需要明确副本数因为是伪分布式不设置成1的话副本写不够会一直报块异常。同时可以设置NameNode和DataNode的数据存储目录比如property namedfs.replication/name value1/value /property property namedfs.namenode.name.dir/name value/home/hadoop/data/namenode/value /property property namedfs.datanode.data.dir/name value/home/hadoop/data/datanode/value /propertyyarn-site.xml里注意把yarn.nodemanager.vmem-check-enabled设为false否则你在单机上跑稍大一点的MapReduce任务很容易因为虚拟内存参数被误判而直接杀掉Container。配置完成之后第一次使用前必须执行一次格式化操作hdfs namenode -format。这里有个非常容易踩的坑格式化的本质是清空NameNode的元数据目录如果你已经启动过一次集群又格式化了第二次DataNode和NameNode的clusterID就会不一致导致DataNode进程启动后自动退出界面上永远只有一个活着的节点。判断方法很简单看logs目录下的datanode日志如果出现Inconsistent clusterID之类的字样说明格式化的次数多于实际需要。这时候不要去改clusterID最省事的办法是把NameNode和DataNode的data目录都删掉重新格式化再启动。配置好之后执行start-dfs.sh和start-yarn.sh用jps命令检查进程是否齐全。正常情况下应该能看到NameNode、DataNode、ResourceManager、NodeManager四个进程。2.3 SSH免密配置如果用到的是虚拟机还需要给当前用户配置SSH免密登录否则脚本在切换节点时可能会频繁要求输入密码。步骤很简单ssh-keygen -t rsa -P -f ~/.ssh/id_rsa然后把公钥加到authorized_keys里测试一下ssh localhost是否不再提示输入密码。这一步通常两分钟搞定不要跳过后面跑脚本会省很多事。3. 数据准备与Hive表设计3.1 房源数据字段设计与清洗逻辑这条项目的数据来源一般有两种一是自己写个爬虫去租房网站抓公开信息二是让数据处理脚本生成模拟数据。从答辩效果来说爬虫抓一部分真实公开数据更有说服力但要注意“公开”边界和采集频率最好利用开放的二手信息接口或直接找开源数据集。这里不展开爬虫细节重点讲拿到数据后怎么处理。一个标准的房源字段可以设计成字段含义示例title房源标题某某小区精装两房近地铁district行政区某区region板块某板块price月租金4500元/月area面积68.5平米layout户型2室1厅direction朝向南floor楼层中楼层decoration装修情况精装build_year建成年份2008lat/lng经纬度31.23, 121.47Python清洗时要做的事情比想象的脏。第一是统一单位价格字段可能混在标题里需要正则抽出来例如“4500元/月”抽成4500这个数值面积同理。第二是去重同一条房源可能在多个渠道重复出现按标题和小区名加面积做去重。第三是处理缺失值面积缺失的可以直接删掉价格异常的如“99999元/月”也要过滤。第四是中文字符编码统一清洗后的文件统一保存为UTF-8编码的CSV防止后续传上HDFS之后Hive读出来一堆乱码。3.2 把数据放进HDFS并建立Hive外部表清洗好的CSV怎么进Hive官方流程是先hadoop fs -put到HDFS的某个目录然后在Hive里建外部表指向这个目录。这里我强烈建议用外部表而不是内部表。原因是内部表删表的时候会把HDFS上的原始数据一并删除你辛辛苦苦清洗的数据会瞬间蒸发太危险了。外部表则只删除元数据文件还在调试时可以反复建表试不同分隔符。建表语句大致长这样CREATE EXTERNAL TABLE ods_house ( title STRING, district STRING, region STRING, price INT, area FLOAT, layout STRING, direction STRING, floor STRING, decoration STRING, build_year INT, lat DOUBLE, lng DOUBLE ) ROW FORMAT DELIMITED FIELDS TERMINATED BY , STORED AS TEXTFILE LOCATION /house/data/raw;注意默认的TEXTFILE格式对字段里包含逗号的CSV很不友好。所以清洗CSV时最好把title里的逗号去掉或者直接用\t分割字段分隔符不要用逗号。我自己习惯用tab作为分隔符因为中文标题里基本不会出现tab省了很多麻烦。3.3 分区表的取舍如果你的数据有心按日期采集比如每天都抓一遍那么最好做分区表用dt作为分区字段查询时指定分区可以显著减少扫描的数据量。如果只有一份静态数据分区的意义不大不做也可以。但不少答辩老师会问“为什么不上分区”这个时候你可以解释单批次数据集暂不需要但已经在建表设计里预留了dt字段后续接入增量任务时可以直接改为动态分区写入。这样既回答了问题又展示了思考深度。4. 核心统计分析与可视化实现4.1 关键指标和对应的Hive SQL有了一堆“能查但看不出价值”的数据之后接下来是体现分析能力的主场。我从项目里提炼出五个最常见的维度覆盖了答辩时基本会被问到的所有统计口径。第一个维度是区域房源数量和均价排行。SQL写法参考SELECT district, COUNT(*) AS house_cnt, ROUND(AVG(price / area), 1) AS avg_unit_price FROM ods_house WHERE price 0 AND area 0 GROUP BY district ORDER BY house_cnt DESC;注意一点我在统计分析时经常用“每平米单价”price/area而不是绝对租金因为不同房源面积差异太大单纯的租金平均值没有说服力。评委看到你会用单价这个指标会觉得你确实理解数据分析的基本套路。第二个维度是户型分布例如2室1厅、3室2厅出现的次数。第三个维度是租金区间用户画像比如0-2000、2000-4000、4000-6000、6000以上这几个档位的房源占比。这个可以用CASE WHEN实现在ECharts里很适合画饼图。第四个维度是房源活跃度或热度榜如果数据里有一条“关注人数”或者“带看次数”字段就能做Top10小区排行用横向柱状图画出来非常直观。第五个维度是价格和面积的关系可以做一个散点图看是否存在明显的长尾或者极端值。4.2 Python读取统计结果并组装ECharts数据Hive跑出来的结果怎么交给页面最粗暴的做法是让前端直接调Hive的JDBC接口但我不建议因为Hive的查询延迟太高在线接口这么做基本是给自己挖坑。合理的做法是先让Hive把统计结果写入MySQL然后Python后端提供一组JSON接口读取MySQL。在Hive中运算完可以用INSERT OVERWRITE DIRECTORY导出结果到HDFS再用hadoop fs -get拿到本地最后传到MySQL也可以直接让Python的pymysql连接MySQL在编写一个调度程序时内部调用Hive客户端跑完SQL之后再用pandas读取结果集写入MySQL表。后者更省事核心逻辑大致是import pandas as pd from pyhive import hive import pymysql conn hive.Connection(hostlocalhost, port10000, usernamehadoop) hive_sql SELECT district, COUNT(*) AS cnt FROM ods_house GROUP BY district df pd.read_sql(hive_sql, conn) mysql_conn pymysql.connect(host127.0.0.1, userroot, password123456, dbhouse, charsetutf8mb4) df.to_sql(stats_district, mysql_conn, if_existsreplace, indexFalse)使用pyhive前需要安装相应驱动依赖而且如果HiveServer2没有正常启动会一直报连接失败。这个坑挺常见的排查时先确认HiveServer2进程是否在跑。4.3 Web端可视化模块的落地要点前端部分我习惯用Flask写接口页面模板直接挂ECharts。对于这种数据展示型项目不必上太重的前端框架一个HTML页面加几个script标签就能搞定。地图用ECharts的自定义地图或引入地图服务商的地图SDK把经纬度数据塞进去做散点图颜色深浅代表价格高低效果相当唬人也很有说服力。这里有一个非常实用的经验ECharts渲染的JSON数据必须注意字段类型。Hive统计出来的数字在接口JSON里会被当成字符串比如avg_price: 4500ECharts画柱状图时经常不认导致图表空荡荡。解决办法是在Python组装数据时强制做一次数值转换data [{name: row[district], value: float(row[avg_unit_price])} for row in rows]另外后端返回JSON时最好设置jsonify并且配置CORS避免前后端分离部署时浏览器跨域拦截干扰演示。如果只是Flask渲染模板则没有跨域问题这也是我比较推荐模板直接渲染的原因少一个环节少一堆事。5. 远程调试、文档和定制要点5.1 远程调试的基本套路这一节单独拿出来说是因为“远程调试”和“讲解”已经被明确写进了题目需求可见它才是整个交付中真正让人头疼的部分。很多同学代码在本地能跑一到答辩现场或者远程环境就起不来原因通常不是代码逻辑而是环境变量、端口暴露和路径不一致。先说远程调试的技术方案。如果开发者在本地目标环境在虚拟机或云端最稳定的方式是先保证Hadoop集群的端口能被访问例如NameNode的9870、HiveServer2的10000。然后本地IDE可以连远程Python解释器改完代码直接远程执行。这样做的好处是系统实际运行在统一的目标环境里不会出现本地能跑远程却少个包的情况。第二点是日志检查。远程调试最大的劣势是看不全运行现场所以任何一次任务执行都要养成先看日志的习惯。启动Hadoop看logs目录跑Hive看Hive执行日志Web接口报错看Flask控制台或者写入文件的日志。不要只看一个“报错红色大字”要把关键异常完整复制下来再分析。第三点是演示内容的“兜底”。远程调试时如果Hadoop集群状态异常临时修起来可能耗时很长所以强烈建议准备一份提前跑好的结果快照比如把MySQL里的统计结果导出一份演示的时候即使临时切换为SQLite或者静态JSON也能继续展示。答辩时“系统完整跑通”比“临场修好一个节点”更重要。5.2 常见问题速查表以下这些问题是我在帮别人调试过程中反复遇到的列成速查表遇到直接按表操作现象可能原因解决办法访问9870端口页面打不开NameNode没启动或防火墙拦截jps看进程确认后检查防火墙放行确认fs.defaultFS配置正确DataNode启动后自动消失clusterID不一致或者data目录无写权限删除data目录重新格式化重新start-dfs.shHive查询卡死或内存溢出虚拟机内存太小YARN的虚拟内存检查误杀调大容器内存关闭vmem-check-enabledHive读中文CSV全是乱码文件不是UTF-8编码或表字段分隔符不匹配清洗环节统一转UTF-8用tab分隔建表指定FIELDS TERMINATED BY \tPython连接HiveServer2失败HiveServer2没启动或端口占用先执行hive --service metastore 再启动HiveServer2检查端口MySQL中文乱码建库时未指定utf8mb4重建库或用ALTER DATABASE调整字符集ECharts图表展示为空JSON数值被转成字符串Python侧用float()转换确认接口返回的value是数字Hadoop端口被占用NameNode/DataNode因异常退出留下的僵尸进程kill -9残留进程清空临时目录重新启动5.3 定制内容怎么讲才像加分项“定制”两个字听起来很像服务商承诺但从毕业设计角度理解其实就是“你怎么在这个项目上做出自己的特色”。选题如果是租房数据定制方向可以往推荐算法靠一靠。比如当用户点击某一条房源时系统可以根据区域、价格区间、户型、朝向做一次相似度计算推荐出三条备选房源。这个功能不复杂用Python的字典循环或者pandas的筛选就能实现但展示出来非常亮眼因为它把“分析系统”升级成了“带一点智能化决策的系统”。另一个定制方向是增加爬虫的增量更新。给系统加一个定时任务每天抓一次当前在租房源对比前一天数据计算涨跌趋势。这样前端就多了一个“近七日新增房源和价格波动”的折线图整个系统变成一个活的、持续更新的数据产品而不仅仅是一次性分析。如果学有余力还可以尝试手写一个MapReduce程序来算区域均价而不是把所有统计都交给Hive。答辩时拿出一个“Hive负责常规指标、MapReduce负责自定义核心指标”的说明比单纯说“我会用Hive”要向评委传递的熟悉度高出一截。6. 关于时间和节奏的几点建议6.1 这套项目最保守的时间预估按照我给人规划的经验这套项目最容易低估的环节是环境安装而不是写代码。第一次从头配Hadoop伪分布式大概率会碰到前文提到的格式化问题、内存问题和启动问题留两到三天给环境是正常的清洗数据和设计Hive表大概一到两天写统计SQL和得到结果表大概一天Web展示框架一天最后留至少半天到一天做演示彩排和远程环境测试。可以把自己当成项目经理明确每天的里程碑第一天完成虚拟机系统和基本组件安装第二天Hadoop启动并出现jps四个进程第三天Hive能建表并正常查询第四天统计结果进MySQL第五天图表页面能展示所有模块。这样做的好处是出了问题时你能尽快定位是哪个环节掉链子而不是临答辩前一天还在调DataNode。6.2 最后再分享一点我自己的体会我见过太多人把精力全砸在“代码功能多炫”上结果忽略了整个数据流是否顺畅。实际上这套系统的演示逻辑比单点功能重要得多数据从CSV进入HDFS再通过Hive统计最后落到MySQL并画成图表这一个闭环如果能在五分钟内现场跑通就已经超过了绝大多数毕业设计的完成度。另外一个容易被忽略的小经验是把脚本固化成一个命令。比如在项目根目录放一个run_all.sh一键执行“清洗数据—上传HDFS—跑HiveSQL—导出MySQL—启动Web服务”。这个脚本看似简单但在答辩现场你只需要敲一个命令然后批量点开页面系统的工程化和规范化感觉一下就出来了。多维护一份自己的README把每个命令和每个目录的作用写清楚文档本身也是项目的组成部分。如果你做完基础功能还有时间优先加一个定时增量任务再考虑加推荐或者手写MapReduce。因为增量任务能真正体现“系统在持续运转”的价值而推荐和MapReduce更多是展示技巧。先把闭环跑稳再谈亮眼顺序别搞反。这套项目做下来整个离线数据处理链路的基本功会扎扎实实过一遍后续再接触Spark或者Flink思路会通得快很多。

相关新闻

Function Calling与MCP:给AI模型装“手脚”的选型指南

Function Calling与MCP:给AI模型装“手脚”的选型指南

最近跟几个搞AI应用的同行聊天,发现大家关注的话题在变:前一阵子还停留在“你接哪个模型”,现在冒出来两个高频词——Function Calling 和 MCP。前者代表“让模型学会调用外部工具”的成熟玩法,后者是刚火起来的一套统一协议。说直…

2026/10/20 8:05:07 阅读更多 →
Python疫情数据分析与可视化完整课设:爬虫、预测与NLP情感分析实战

Python疫情数据分析与可视化完整课设:爬虫、预测与NLP情感分析实战

简介:这是一份面向计算机、电子信息工程、数学等专业学生的新冠肺炎疫情数据分析与可视化Python课程设计/大作业完整项目,可作为毕业设计参考。项目由导师指导并获98分,完整覆盖数据采集、清洗、时序预测、NLP情感分析与可视化展示全流程。压…

2026/10/19 5:59:36 阅读更多 →
命令模式实战:告别万能if-else,搞定撤销与宏命令

命令模式实战:告别万能if-else,搞定撤销与宏命令

干开发这些年,我重构过不少“万能控制器”——一个按钮类,从开灯、关灯、开空调、调温度,到撤销、重做、一键全关,几十个if-else分支堆在一起。每次加需求都像在雷区里行走,改一处逻辑,另外三处跟着崩。后来…

2026/10/19 5:59:36 阅读更多 →

最新新闻

raylib解压即用开发环境:一条gcc命令从窗口到Makefile工程化

raylib解压即用开发环境:一条gcc命令从窗口到Makefile工程化

简介:raylib 是一套以简单易用著称的开源游戏编程库,这份压缩包正是其整合发布版,面向希望快速上手 C/C 图形编程的开发者与游戏原型爱好者,适合从零搭建图形窗口、绘制基本图形、处理输入事件并产出可运行的跨平台演示程序。包内…

2026/10/20 8:05:23 阅读更多 →
SpringBoot+Vue儿童性教育平台:前后端分离毕设项目核心拆解

SpringBoot+Vue儿童性教育平台:前后端分离毕设项目核心拆解

拿到这套SpringBootVue儿童性教育网站平台项目源码的时候,我做的第一件事不是急着双击启动,而是先翻了SQL脚本和接口文档。做了这么多年Java Web开发,我太清楚这类毕设项目的命门在哪儿:代码可以抄,页面可以仿&#xf…

2026/10/20 8:05:23 阅读更多 →
长任务Agent稳定运行的关键机制:上下文、检查点与恢复

长任务Agent稳定运行的关键机制:上下文、检查点与恢复

跑过一次长任务型 Agent 的兄弟应该都体会过那种绝望:任务跑到第 7 步,模型突然报上下文超长;重启后一切归零,日志显示最早的几个关键结果已经丢了;更难受的是,这已经是今天第三次在同一个节点崩掉。这不是…

2026/10/20 8:05:23 阅读更多 →
Z80汇编编辑器选型:开源工具如何搞定指令表、条件汇编与符号跳转

Z80汇编编辑器选型:开源工具如何搞定指令表、条件汇编与符号跳转

简介:这是一款面向Z80处理器学习者和开发者的开源汇编编辑器,旨在解决Z80 ASM程序编写、调试与性能分析中的效率问题。压缩包共10个文件,以8个JavaScript脚本为主体,辅以2个HTML页面,整体仅23KB,轻量且易于…

2026/10/20 8:05:23 阅读更多 →
Agent运行机制拆解:上下文、检查点与任务恢复实战指南

Agent运行机制拆解:上下文、检查点与任务恢复实战指南

1. 上下文管理:Agent的“短期记忆”是怎么被维护的在做Agent运行时拆解之前,我先说一个真实发生过的场景。某次我在本地跑一个多步骤的数据整理Agent,它已经执行到第27步,前面26步全部成功,结果第27步因为上游接口超时…

2026/10/20 8:05:23 阅读更多 →
2026年AI人才争夺战:大模型算法岗月薪5.2W,校招趋势与能力培养指南

2026年AI人才争夺战:大模型算法岗月薪5.2W,校招趋势与能力培养指南

2026年AI人才争夺战深度解析:大模型算法岗位月薪5.2W,校招趋势与能力培养收藏版指南!这几年AI行业的薪资一直是互联网圈子里绕不开的话题,但2026年这一轮人才争夺战的烈度,确实有点超出我的预期。就在上一个招聘季&…

2026/10/20 8:04:23 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54:50 阅读更多 →
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/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →