惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Register - Security
The Register - Security
A
About on SuperTechFans
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
L
LangChain Blog
N
Netflix TechBlog - Medium
量子位
博客园 - 三生石上(FineUI控件)
宝玉的分享
宝玉的分享
H
Help Net Security
D
Docker
D
DataBreaches.Net
T
Tailwind CSS Blog
阮一峰的网络日志
阮一峰的网络日志
B
Blog
博客园 - 聂微东
Apple Machine Learning Research
Apple Machine Learning Research
Google DeepMind News
Google DeepMind News
The Cloudflare Blog
F
Full Disclosure
GbyAI
GbyAI
F
Fortinet All Blogs
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
人人都是产品经理
人人都是产品经理
Recent Announcements
Recent Announcements
博客园 - Franky
MongoDB | Blog
MongoDB | Blog
有赞技术团队
有赞技术团队
博客园 - 叶小钗
小众软件
小众软件
V
Visual Studio Blog
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
The GitHub Blog
The GitHub Blog
Recorded Future
Recorded Future
J
Java Code Geeks
雷峰网
雷峰网
P
Privacy & Cybersecurity Law Blog
C
Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
AWS News Blog
AWS News Blog
Webroot Blog
Webroot Blog
美团技术团队
N
News | PayPal Newsroom
G
Google Developers Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
博客园_首页
V
Vulnerabilities – Threatpost

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
数据挖掘:一幅隐藏了 160 年的城市地图 - 少数派
2025-08-27 · via 少数派

你是否想过,上海其实有两个“世界”?

一个是看得见的,陆家嘴的摩天大楼,武康路的老洋房,南京路步行街的霓虹灯火。这是一个由钢筋水泥和玻璃幕墙构成的现代都会。

另一个,则隐藏在不起眼的路牌里。当你从静安区的“西康路”出发,一路向东,可能会依次经过“成都北路”、“重庆北路”、“黄陂南路”,最终抵达黄浦江边的“福建中路”和“江西中路”。不知不觉间,你已经用脚步完成了一次从中国西南到东南的微缩旅行。

上海的“西康路”得名于中国原西康省,不过在 1955 年,西康省被撤销,其辖区分别并入四川省和西藏自治区

黄陂南路代表湖北省武汉市黄陂区:“黄陂南路”最初名为“贝勒路”,1943 年以湖北黄陂县(今武汉市黄陂区)命名为“南黄陂路”,1946 年正式定名为“黄陂南路”并沿用至今。

上海路牌实拍——图片来源于网络

这个有趣的现象,很多人也有所察觉。

比如我刷到小红书上自制的一张图,来自 “62 咸鱼讲啥西”发布了一篇小红书笔记
 


为了验证这个趣闻,我决定用代码和地图来验证一下。

大海捞针,让沉睡的数据开口说话

我们的故事,并非从整个现代上海的宏大地图开始,而是缩窄到核心城区。

我首先做了一个决定:将目光锁定在黄浦、徐汇、长宁、静安、普陀、虹口和杨浦七个区域()。

1939年大上海市街地圖

虽然对照1939 年的地图,远不止这些区域这里。但是我们选择的区域也比较典型了。

摆在我面前的第一个难题,是数据的“破碎感”。原始数据里有超过 36 万条路段,同一条“南京东路”,在地图上却是由上百个互不相连的细小线段组成的“碎片”。

南京西路

如果直接分析这些碎片,就像试图通过一堆尘土来研究一件摔碎的古董,毫无意义。

在网络拓扑中,这是从 OpenStreetMap 等标准来源下载的路网数据,为了保证网络的拓扑关系(即,知道哪条路和哪条路是连通的),在每一个交叉口,路段(LineString)都必须被打断成独立的小段。如果我们为“南京西路”的每一小段都计算一个质心,那么在“南京西路”这条路上就会产生密密麻麻几十个点,这会给聚类分析带来巨大的噪声和权重偏差。也会产生可视化混乱。

要解决这个问题,我们需要在分析流程中增加一个关键的数据预处理步骤——道路合并。

因此,我必须进行一次数字世界的“文物修复” 。我让程序将所有同名的、在空间上首尾相接的碎片,重新“焊接”成一条完整的道路。这个过程是枯燥的,但结果是震撼的:在我的研究范围内,将近五万条道路碎片,被修复成了 1320 条我们认知中“完整”的道路。数据量骤减 97%,但信息的价值却提升了 100 倍。我们终于从一片数据的废墟中,重建了真实世界里那一条条连贯的街道。”

1320条道路

接着我构建了一个省市区——省份的地名词典:

有了完整的路和地名词典,我满怀信心地进行了第一次匹配,结果却给我泼了一盆冷水。我的程序天真地把“金沙江西路”识别为了“江西省”,把“上海东路”匹配给了青海的“海东市”。而且,上海市应该不应该在我的地名词典里面!我自己匹配自己?

一套更聪明的匹配法则

于是我需要思考解决方案:

  1. “先剃头” :程序自动忽略“路”、“大道”等常见后缀,直击核心词。
  2. “抓大放小” :在所有可能的匹配项中,永远优先选择最长的那一个。这样,面对“金沙江西路”,它会立刻锁定更长的“金沙江”(如果我们有山川词典的话),而不会再被“江西”迷惑。
  3. “闪电行动” :这一步不是必要的,但是为了速度更快,我用了经典的Aho-Corasick算法,它能像一个超级搜索引擎,一次性在所有路名中高效地查找字典里的所有地名。
匹配结果预览

尘封的备忘录,一张“殖民地图”的诞生

当我的侦探完成工作,一张惊人的画卷在我面前展开。我将所有与省份相关的道路,用不同的颜色标注在地图上:

上海地名聚合道路之后按照质心分布图(合并省份所有道路)

上海的市中心,真的藏着一幅中国地图!

  • 来自辽宁省的凤城路, 彰武路, 抚顺路, 铁岭路,静静地躺在上海的东北角。
  • 代表甘肃省的古浪路, 敦煌路, 景泰路, 永登路, 玉门路,则聚集在城市的西北方。
  • 西南广西的东兰路, 宜州路, 桂平路, 田林路, 田林路辅路, 苍梧路,则在西南部。

这并非巧合,它的源头,甚至要追溯到一个半世纪以前。

1862 年,英国领事麦华陀发布了一份《上海马路命名备忘录》。这份看似不起眼的文件,为上海的街道定下了一个影响至今的规则:南北向干道以中国省份命名,东西向则以该省的城市命名。这套规则,既方便了殖民者的行政管理,又在无形中透露出一种“掌控中国版图”的野心。于是,在最初的租界里,“四川路”与“南京路”交汇,第一块“微缩中国”的拼图被悄然放下。

更聪明的聚合算法:从“一个点”到“一个社区”

最初,我将每个省在上海的所有道路视为一个整体,计算出一个“代表点”。这确实绘制出了一幅粗略的“中国地图”,但这种简化也隐藏了太多细节。一个点,无法告诉我们这些来自同一个省的道路,在上海是紧密抱团,还是分散四方。

并且我是用了 KMeans 聚类算法,无法智能感知内部聚类情况,也无法筛选掉离群点。

为了看到更真实的图景,我决定深入每个省份的内部,去探寻它们的  “社区结构” 。

于是我使用了 DBSCAN 聚类算法:

KMeans聚类和DBSCAN聚类的区别

我将每条路都“点化”,然后用一种名为DBSCAN的密度聚类算法,去自动发现那些由来自同一个家乡的道路组成的“小团体”。

DBSCAN聚类

算法精准地勾勒出了每个省份路名的聚集区域,我们由此得以窥见它们不同的“性格”:有的省份路名紧密抱团,形成单一的核心社区;有的则分散四方,形成多个遥相呼应的“飞地”。这幅地图,因此变得更加立体和丰满。

数据的洞察力,在这一刻超越了普通人的直觉。

翻阅匹配之后的记录,我惊喜地发现:上海的“长宁路”,其命名源头并非脚下的长宁区,而是远在千里之外的四川省长宁县

长宁县——四川省宜宾市下辖县,来源于百度百科

又比如:“长乐路”中的“长乐”并非表达“长久快乐”之意,而是直接借用了福建省福州市辖区之一:长乐区。

长乐路的匹配结果

历史的回响:从“正名”到“重生”

历史的车轮滚滚向前。1943 年,汪伪政府为了清除英美殖民痕迹,进行了一次大规模的路名更改,将更多中国地名覆盖了原有的西式路名。而到了 1950 年代,新生的人民政府在更大规模的城市建设中,将这套命名法以前所未有的系统性和魄力,推向了极致。

至此,这幅隐藏在上海肌理中的“中国地图”,被一块块地完整拼合。它早已超越了殖民者的初衷,变成了一场宣告主权、重塑国人身份认同的伟大宣言。每一块路牌,都成了无声的爱国主义丰碑。

每条路,都是回家的路

上海,用它的路牌告诉我们:无论你来自何方,无论你身处城市的哪个角落,总有一条路,能唤起你对故乡的记忆。

你的家乡是哪一个?欢迎晒出你家乡的路牌。

研究的局限与未来的星辰大海

这次“数据考古”虽然为我们揭示了上海路网背后宏大的叙事,但也有一些缺陷:

1. 词典的边界:被遗忘的山川与历史

  • 地理维度的缺失:我们的“地名搜捕网”主要聚焦于当代的行政区划(省、市、县)。但上海的路名宝库远不止于此,还包含了大量的自然地理实体。像“金沙江路”、“大渡河路”、“天目山路”这些以壮丽山川湖海命名的道路,在此次分析中被我们遗憾地“放过”了。将它们纳入分析,无疑会让我们地图上的“中国”更加完整和生动。
  • 时间维度的局限:我们使用了现代地名进行匹配,却忽略了历史的尘烟。例如,“姑苏路”对应的是苏州的古称,“武康路”源于浙江湖州市的旧县名“武康”。一个更完美的分析,需要一本包含中国古代地名的词典,那将让我们得以窥见历史在城市街道上留下更深的烙印。

2. 道路的定义:被忽略的“毛细血管”

  • 人行道的缺席:本次研究的数据源主要为车行道(Roads and Streets)。但在城市肌理中,还存在大量如“xx 弄”、“xx 里”这样富有人情味的人行通道和里弄。这些城市的“毛细血管”是否遵循着另一套命名逻辑?它们是延续了主干道的地理叙事,还是反映了更微观的社区历史?这是一个亟待探索的有趣课题。

3. 名称的唯一性:重名的挑战

  • “中山”之问:我们的匹配算法有一个潜在的简化,即“一对一”匹配。但“中山”这个地名,在中国既可能指向广东中山市,也可能指向辽宁大连的中山区,或是为了纪念孙中山先生。当前的模型无法智能区分一条“中山路”的真实意图,这需要更复杂的上下文分析甚至历史考证才能解决。

P.S. 如果你对我们这次“城市考古”的技术细节感兴趣,想知道我们是如何一步步驯服数据、让它开口说话的,欢迎访问我的 GitHub 仓库,那里有此处项目的源代码。

Urban-Spatial-Data-Analysis:上海路网聚合


本文在我的个人网站同步发布和更新,你可以在微信公众号中点击阅读原文跳转。

欢迎在评论区里疯狂吐槽你在 ArcGIS、python 代码里遇到的烦心事,或者聊聊你对这个系列、对哪个技术方向最感兴趣。你们的反馈会直接影响我后续内容的侧重点!