Hinge 允许用户请求导出在使用该应用程序时收集的个人数据。如果您有 Hinge 帐户,您可以通过转到“设置”->“下载我的数据”来请求您的数据。满足此请求通常需要 24 到 48 小时,数据准备好后,Hinge 会提供包含您的个人数据的.zip
文件。
Hinge提供的数据导出包含多个文件,但最主要的是index.html
文件,该文件用于渲染带有显示不同数据的选项卡的网页。 Hinge 提供的选项卡标记为:用户、匹配、提示、媒体、订阅、全新开始和自拍验证。除了查看提示的更改或查看您上传的图片之外,这些数据并不是特别有用,尤其是在“匹配”选项卡上,这应该是最有趣的部分。
Hinge 导出中的“匹配”选项卡包含“匹配”列表,或者更确切地说是“交互”列表,正如我在该项目中所说的那样,如下所示:
第 1 场比赛2024-01-22 20:13:22 赞
第 2 场比赛2024-01-23 20:15:42 赞
第 3 场比赛2024-01-23 20:37:27 比赛
2024-01-23 20:39:45 聊天:你好,世界!
2024-01-23 21:49:26 删除
Hinge 提供的匹配列表还有很多不足之处,这就是为什么我决定构建这个项目,分析和可视化来自 Hinge 数据导出的有趣见解。
该应用程序是一个多页面 Dash Plotly 应用程序,在端口8050
上的 Docker 容器中运行。使用以下命令创建 Docker 构建映像: docker compose build
并使用以下命令运行应用程序: docker compose up -d
。该应用程序将在 http://0.0.0.0:8050/ 上提供。要关闭容器,请使用docker compose down
。
该页面将呈现有关应用程序的信息以及如何使用它的说明。
“上传文件”部分允许用户上传matches.json
或user.json
文件进行分析。目前,程序期望该文件名为matches.json
或user.json
,因为它们位于 Hinge 提供的导出中。选择文件后,上传框下方应显示上传的文件名。
“数据洞察”部分包含用于显示包含与匹配数据或用户数据相关的数据的页面的链接。单击“匹配”或“用户”以显示任一主题的信息和图表。可视化最初将显示为空白图表,直到上传文件并重新加载图表。单击“重新加载图表”按钮将使用上传的数据重新生成图表。
比赛分析页面包含多个图表,显示比赛数据的不同方面。出于隐私原因,Hinge 仅提供有关用户操作的数据,因此大多数数据与用户如何与其他用户交互有关。
第一个图是交互漏斗,它是用户与其他用户之间发生的不同类型交互的可视化。漏斗“独特交互”的最外层部分是发生的独特交互的总数。这是用户收到但未回复的点赞、用户发送但未回复的点赞以及用户发送的点赞导致匹配和聊天的组合。
漏斗是查看用户发起了多少交互以及有多少交互导致匹配和对话的好方法。
您发送的“传出点赞”部分包含更详细地了解用户传出点赞的图表。第一个图表显示了用户多次喜欢的应用程序上的用户。这种情况令人困惑,因为尚不清楚这是如何发生的,但在数据中确实很少发生。右侧第二个饼图显示了用户通过评论发送的传出点赞数的比率。
在饼图下方,有一个名为“当您喜欢某人的内容时您评论的内容”的表,该表显示用户喜欢其他用户的个人资料时在其他用户的个人资料上留下的评论。此表对于查看用户在喜欢其他用户时对其他用户说了什么非常有用。
下一部分按天操作类型的频率显示用户每天在应用程序上执行的不同操作的频率。这对于查看活动模式以及它们在应用程序上最活跃的时间非常有用。
之后,有一个饼图,名为“您将电话号码给了多少人?” ,这恰恰表明了这一点。在用户进行的所有导致聊天的交互中,此图显示了导致用户泄露电话号码的聊天次数的比率。这是在假设用户以下面列出的常见格式之一共享其电话号码的情况下进行的。
匹配分析的最后一部分显示每个聊天的传出消息。该条形图是用户在交换消息的每次交互中发送的消息数量的分布。这对于查看用户与其他人的对话的平均长度非常有用。
此选项卡目前正在建设中,并将在未来版本中提供。
Hinge 会不时更改和更新数据导出的架构,这可能会或可能不会破坏当前的分析代码并使内容过时。到目前为止,我还没有经历过任何破坏我的代码的架构更改,但我认为随着时间的推移,将会发生更改,并且事情将不再起作用。目前我还没有找到一种方法来及时了解他们的架构更改。
由于 Hinge 没有提供任何文档,因此我对数据做出一些假设:
where block_type = 'remove'
)可以向任一方向移动,这意味着该块可以代表某人删除与该用户的匹配,也可以代表用户删除与其他人的块导出数据中可能发生多种情况,Hinge 将其称为“匹配”。这些并不都是“匹配”,因为有些事件只是简单的传出的喜欢而没有得到回报。这就是为什么我将它们称为交互,其中交互代表用户和另一个人之间发生的相遇(喜欢、匹配、聊天、阻止)。
以下是数据中发生的不同交互场景:
喜欢 | 匹配 | 聊天记录 | 堵塞 | 意义 |
---|---|---|---|---|
X | 用户发送了一条传出消息,但对方不喜欢回复 | |||
X | X | X | 用户发出了一个外向的点赞,其他人也回复了他们,至少交换了一条消息 | |
X | X | 用户收到了点赞,用户也给了对方点赞,并且至少交换了一条消息 | ||
X | 匹配被删除或“不匹配”,无法分辨谁不匹配谁。由于某种原因,其中很多在没有任何其他信息的情况下存在,并且无法判断它最初链接到哪个交互 | |||
X | X | 用户收到了传入的点赞,用户回赞了对方,没有交换任何消息,并且匹配被删除 |
我有一长串的增强和修复列表,我想对应用程序进行改进,以使其变得更好。要查看现有内容,请查看存储库中的“项目”选项卡。