巴黎实测:火车站越近,烤肉越难吃?

煎蛋 2025-02-22 08:50:52

研究称火车站附近的烤肉味道不佳,巴黎实地测试却显示相关性微乎其微,谷歌评分数据让人哭笑不得。

几个月前,一个法国帖子在TikTok截图里抛出了个有趣的猜想:“离火车站越近,烤肉越难吃。”这说法听起来挺逗,我忍不住想试着验证一下。恰好最近闲得发慌——一个刚确诊自闭症6个月、疲惫不堪的“失业学生”,总得找点事干吧。于是,我重做了个人网站,把整个研究过程写得像模像样,还顺手优化了代码格式,心想着没准能凭这个拿个诺贝尔和平奖,顺带收到几份工作邀约呢。

我选了巴黎作为研究地。为什么?首先,那个帖子是法语的,感觉这是个法国现象。我老家瑞典也有不少烤肉店,可从没听过这种说法,所以姑且当它是法国独有的“神秘规律”吧。再说,巴黎市区火车站和地铁站密密麻麻,烤肉店更是数不过来,样本多到让我头疼,但也正适合拿来玩这场“实验”。

从哪儿开始?

我用OSMnx下载了巴黎的步行导航网络,毕竟这假设跟走路距离有关,过滤条件就设为“步行路径”。数据投影用的是EPSG:32631,标准的UTM 31N区格式。火车站和地铁站入口也好找,直接筛选“railway=subway_entrance”和“railway=train_station_entrance”,一抓一大把。接下来是烤肉店,我选了谷歌Places API,靠它拉餐厅数据和评分。谷歌评分当然不完美,刷分、机器人评论啥的都有,但我也没啥更好的选择。Yelp的API贵得离谱,我又懒得写爬虫——那玩意儿跟调教AI一样,吸干灵魂。谷歌给的200美元免费额度倒挺诱人,我就先凑合用了。

可麻烦很快就来了。谷歌API不能按多边形区域搜索,只能按点半径查,这让我抓狂。拜托,上市公司就这效率?更别提IDE里googlemaps库的自动补全还坏了,Python这工具真是三天两头考验我的耐心。哦,对了,谷歌云的控制台慢得像乌龟爬,我点个按钮都能去泡杯咖啡回来。

没办法,我只好对整个巴黎做网格搜索,祈祷别超免费额度。结果,又冒出几个新问题。

烤肉是啥?

我在API里搜“kebab”,谷歌咋判断哪些店有烤肉呢?翻了翻数据,还好没我想得那么复杂。有些店名里直接带“kebab”,有些被标为“地中海风味”——毕竟烤肉起源于土耳其、波斯和中东一带,还有些店的评论里老提到“kebab”,这对我来说就够用了。

查询的坑

半径搜索只是个“偏好”,不是硬性范围,压根帮不上忙。谷歌显然不欢迎我这种玩法。研究范围定下来后,我还得调整一下巴黎的行政边界。西边有个大公园,东边是体育学院,谷歌地图一看,里面压根没烤肉店,留着纯属浪费API额度,果断剔除。

数据采集开干

最后,我定了六边形网格布局,点间距1公里,搜索半径约866米。虽然有重叠,但至少不会漏数据。总共弄了99个采样点,感觉凑合能用。凌晨3点的Python代码写得稀烂,懒得管Reddit的格式了,反正跑出来半个兆的JSON,看着还挺像回事。结果一共抓到322家店,后来加了分页逻辑,又多挖出78家,总计400家烤肉店。有几家没评分,直接过滤掉。

关键一步:算距离

每家店到最近车站入口的距离咋算?我不可能一家家路由过去,那得等到下辈子。巴黎路网密集,选项多,我估摸着找最近的3个入口就够了。GeoPandas的sindex帮了大忙,能按1公里半径搜附近入口,再按距离排序,截取前几个。路由用Networkx搞定,代码里列表推导式多得吓人,但好歹跑通了。扔进QGIS检查后,数据靠谱,我心里踏实了点。

结果如何?

有了数据,终于能回答“车站越近,烤肉越难吃”这问题了。算出来的皮尔逊相关系数是0.091,嗯,理论上有点相关,可这数字弱得连“统计显著”都不敢提。我剔除了些离群值,系数涨到0.098,还是惨不忍睹。干脆再试试只算火车站、不带地铁站,结果更糟,系数跌到0.001。这下我彻底服了,收手吧。

反思

谷歌评分能客观反映烤肉好不好吃吗?想啥呢,肯定不能。这假设从一开始就主观得离谱,评分还掺杂了服务、卫生、环境等乱七八糟的因素,更别提网络上的猫腻了。旅游业有影响吗?当然可能。本地人可能挑剔,游客可能宽容,反过来也行,谁知道呢。如果用直线距离代替路网距离,结果会变吗?应该不会太大差别吧,有经验的欢迎指点。

数据准不准?大致靠谱。每家店多少都跟烤肉沾边,虽然有些像Pizza Hut这种,可能只卖烤肉披萨,算不算正宗就另说了。为啥不研究所有餐厅?因为这假设太搞笑太具体,我实在舍不得放弃。

聊聊感想

这事儿其实挺好玩的。我一边弄一边写,逼自己坚持下来,不然早扔一边了。结果虽然没啥突破,但这种乱七八糟的小探索还挺有意思,推荐大家都试试。至于数据,我不敢随便分享,怕违谷歌的条款。代码我给了,自己烧点额度去玩吧。我还好吗?凑合吧,你呢?

本文译自 Reddit,由BALI编辑发布。

0 阅读:4