软件中心使用哪些数据为您提供建议?

What’s New部分的下方,有一个推荐给你的部分。

目前我还没有启用它,但除了软件列表之外,您对已安装的内容采取了哪些数据?

  1. 该软件列表是否包含通过Synaptic或apt-get安装的软件?

  2. 是否需要有关安装时间(或顺序)的数据?

  3. 这些数据用于什么? (除了建议,如果有的话)

  4. 它如何解决您可能喜欢的软件? (例如,它只需要类别,还是更深入的分类)?

  5. 如果我安装了A并且它推荐了C,然后我安装了B,这是否意味着它可能会停止推荐C(可能因为B和C非常相似)?

在此处输入图像描述

APT或高级打包工具基本上解决了依赖性问题并检索所请求的包。 它适用于另一个工具dpkg ,它处理包(应用程序)的实际安装和删除。 APT非常强大,主要用于命令行(控制台/终端)。 但是,有许多GUI /图形工具可以让您使用APT而无需触及命令行。

Synaptic是使用APT的GUI / Graphical工具之一。 这就是Synaptic Package Manager的网站所说的相同内容 –

Synaptic是apt的图形包管理程序。 它提供与apt-get命令行实用程序相同的function,以及基于Gtk +的GUI前端。

因此,Synaptic和终端基本上都做同样的事情,即使用APT,使用不同的接口(分别是GUI和CLI)。

这就是软件中心推荐的Ubuntu Wiki 页面所述 –

我们可以使用的数据

我们拥有的关于我们所拥有的人的当前数据是:

  • 所有其他人都安装了什么(新的推荐服务/爆米花)

  • 所有其他人都在使用(zeitgeist / new推荐服务/ popcon)

  • 其他人喜欢或不喜欢什么特定的应用程序(rnr)

我们有关用户系统的数据是:

  • 用户安装了哪些应用程序

  • 用户正在使用哪些应用程序(popcon / zeitgeist)

  • 用户正在使用哪些mimetypes(zeitgeist)

  • 也许是用户的SSO ID

  • 也许是用户喜欢的应用程序(基于他/她的评论)

  • 用户的联系人

现在有趣的是使用“ 或许 ”这个词使得事情有点粗略。

基本上推荐服务器的作用是它存储系统上安装的软件包列表。 无论是由软件中心安装,突触还是终端都无关紧要,因为它最有可能使用dpkg或APT。 我可以这么说,因为我没有使用过软件中心,但仍然可以根据我通过终端安装的软件包获得建议。

存储

服务器存储每个参与者安装的包的列表,以及为它们生成的推荐的缓存。

服务

当发送包含UUID的请求时,服务器返回表示该UUID的推荐的Json包列表。

将有一个涉及UUID的REST API调用,它将以某种sc可以理解的格式返回推荐。

最终,软件中心也是APT的GUI /图形工具。

但是,您提出的一些要点属于未解决的问题类别,并且没有提供有关建议如何正确工作的信息,即算法。

尚未解决的问题

  • 我们如何迎合多人使用计算机的人? 我们是否应该向UUID添加本地用户名以确保它是唯一的(当部分或全部用户没有SSO帐户时?

    • 这是一个有趣的问题,人们会在这里期待什么。 如果我有专用游戏机和生产力机器,那么我们应该有两个不同的建议。 如果OTOH我有一台笔记本电脑和一台桌面用于相同的事情,建议应该是相同的。 希望系统可以从上下文中解决。
  • 该算法是否考虑了软件评级以及是否已安装? 如果有人从未对软件进行评级(即没有SSO帐户的用户),效果会降低吗?

  • 如果有人重新安装Ubuntu怎么办?

    • 所以我们应该定期“ping”(即使系统没有安装/删除软件ping,告诉服务器它仍在使用中),UUID能够随着时间的推移删除不再有效的UUID。
  • 一个有趣的观点是引导数据集,即在我们在服务器上有合理数量的数据之前要提供哪些建议。 对于基于评论的建议,我们已经在那里进行了大量的评审,以启动基于评论的建议。 对于基于已安装软件包otoh的建议,我们需要开始接收数据一段时间才能开始提供有用的建议。

最好联系Canonical的开发人员或团队,他们为最准确的答案设计了软件中心的建议。

也就是说,我觉得推荐系统不是那么聪明,因为它推荐了许多其他用户已安装的流行软件包,而不是鲜为人知但相似的软件包,这些软件包实际上可能与用户更相关。