就在什么是新的部分有一个为你推荐部分。
目前我还没有启用它,但是除了软件列表之外,它还需要您安装的哪些数据?
该软件列表是否包括通过 Synaptic 安装的软件
apt-get
?它是否需要有关安装时间(或顺序)的数据?
这些数据有何用途?(除了建议,如果有的话)
它如何从中判断出你可能喜欢什么软件?(例如,它是否只采用类别,还是更深入的分类)?
如果我安装了 A 并且它推荐 C,然后我安装了 B,这是否意味着它可能会停止推荐 C(可能是因为 B 和 C 非常相似)?
答案1
易于,即高级打包工具,主要解决依赖性问题并检索请求的软件包。它与dpkg
另一个工具一起使用,后者处理软件包(应用程序)的实际安装和删除。APT 非常强大,主要用于命令行(控制台/终端)。但是,有许多 GUI/图形工具可让您使用 APT,而无需接触命令行。
Synaptic 是使用 APT 的 GUI/图形工具之一。这是 Synaptic 包管理器的网站不得不说同样的话 -
Synaptic 是 apt 的图形化包管理程序。它提供与 apt-get 命令行实用程序相同的功能,但具有基于 Gtk+ 的 GUI 前端。
因此,基本上 Synaptic 和终端都做同样的事情,即使用 APT,但使用不同的界面(分别是 GUI 和 CLI)。
这是 Ubuntu Wiki页软件中心的建议指出 -
我们可以使用的数据
我们目前掌握的有关人员的数据如下:
其他人都安装了什么(新推荐服务/爆米花)
其他人都在用什么(时代精神 / 新推荐服务 / popcon)
其他人喜欢或不喜欢哪些特定的应用程序(rnr)
我们拥有的有关用户系统的数据是:
用户安装了哪些应用程序
用户正在使用哪些应用程序(popcon/zeitgeist)
用户正在使用什么 mimetype(时代精神)
或许用户的 SSO ID
或许用户喜欢哪些应用程序(基于他/她的评论)
用户的联系人
现在有趣的是这个词的使用或许这让事情变得有点复杂。
基本上,推荐服务器的作用是存储系统上安装的软件包列表。无论是通过软件中心、突触还是终端安装的,这里都无关紧要,因为它很可能使用dpkg
APT 或 APT 来实现相同的功能。我之所以这么说,是因为我没有使用过软件中心,但仍然会根据我通过终端安装的软件包获得推荐。
贮存
服务器存储每个参与者已安装软件包的列表,以及为他们生成的建议的缓存。
服务
当发送包含 UUID 的请求时,服务器将返回代表该 UUID 的建议的包的 Json 列表。
将会有一个涉及 UUID 的 REST API 调用,它将以 sc 可以理解的某种格式返回建议。
最终,软件中心也是 APT 的 GUI/图形工具。
然而,你提出的一些观点属于尚未解决的问题并且没有提供有关这些建议如何具体发挥作用的信息,即算法。
尚未解决的问题
我们如何满足多人使用计算机的用户的需求?我们是否应该将本地用户名添加到 UUID 以确保其唯一性(当部分或全部用户没有 SSO 帐户时)?
- 这是一个有趣的问题,人们在这里会期待什么。如果我有一台专用的游戏机和一台生产力机器,那么我们应该有两个不同的建议。另一方面,如果我有一台笔记本电脑和一台台式机,我用它们做同样的事情,那么建议应该是相同的。希望系统能根据上下文来解决这个问题。
该算法是否考虑了软件评级以及软件是否已安装?如果有人自己从未对软件进行评级(即没有 SSO 帐户的用户),算法是否效率会降低?
如果有人重新安装 Ubuntu 怎么办?
- 因此,我们应该使用 UUID 定期进行“ping”(即使系统没有安装/删除软件,也要进行 ping 以告知服务器它仍在使用中),以便能够随着时间的推移删除不再有效的 UUID。
不过,一个有趣的点是引导数据集,即在服务器上有合理数量的数据之前,提供哪些建议。对于基于评论的推荐,我们已经有相当数量的评论可以开始基于评论的推荐。另一方面,对于基于已安装软件包的推荐,我们需要开始接收数据一段时间,然后才能开始提供有用的建议。
最好联系设计软件中心建议的开发人员或 Canonical 团队,以获得最准确的答案。
话虽如此,我觉得推荐系统并不是那么智能,因为它推荐的是许多其他用户已经安装的流行软件包,而不是鲜为人知但类似的软件包,而这些软件包实际上可能与用户更相关。