用于自动完成的最近/经常联系的算法?

Dav*_*vy8 8 language-agnostic algorithm usability

当你向某人发送电子邮件时,我们有一个自动完成的列表,这个列表很好,直到列表变得非常大,你需要输入越来越多的地址来获得你想要的那个,这就是违背自动完成的目的

我认为应该添加一些逻辑,以便自动完成结果应该按照最近联系或最常联系的某些功能进行排序,而不仅仅是字母顺序.

我想知道的是,如果有任何已知的良好算法用于此类搜索,或者是否有人有任何建议.

我当时想的只是一个点系统的事情,当天的事情是5分,最后3天是4分,上周是3分,上个月是2分,最后6个月是1分.然后大多数情况下,25 +是5分,15 +是4,10 +是3,5 +是2,2 +是1.没有真正的逻辑,除了那些数字"感觉"正确.

除了任意选择的数字之外,是否有人有任何输入?如果你能说出你认为他们比我更好的原因,其他人也欢迎

编辑:这主要是在一个商业环境中,近期(yay for making words)通常和频率一样重要.而且,经过某一点,与80次谈话的人说30次之间确实差别不大.

And*_*mbu 2

这种事情看起来类似于 Firefox 在提示您正在输入的网站是什么时所做的事情。

不幸的是我不知道 firefox 是如何做到的,积分系统似乎也不错,也许你需要平衡你的积分:)

我会选择类似的东西:

NoM = 邮件数量

(今天发送给 X 的 NoM)+ 1/2 *(上周发送给 X 的 NoM)/7 + 1/3 *(上个月发送给 X 的 NoM)/30

您上个月未写过的联系人(可能会更改)将获得 0 分。您可以开始对总共发送的 NoM 进行排序(因为它位于联系人列表中:)。这些将在与点 > 0 接触显示

这只是一个想法,无论如何,它是对最多和只是邮寄的联系人给予不同的重视。