当你将鼠标悬停在一个链接上时,预览卡就会显示出来。我使用维基百科的移动皮肤进行桌面浏览)。文本来自维基百科上的文章冰山,CC BSA SA 3.从左到右的图像,从上到下:α1Kim HansenCC BSA SA 3α2安德烈亚斯的体重,CC BSA SA 4α3通过新西兰国家图书馆,cc0.

几天前,我的团队完成了页面预览-一个功能现在被部署到维基百科的数百种语言版本中。我们的API每分钟点击量高达50万次当你把鼠标悬停在任何链接上时,就会显示这些卡片。

表面上看起来很简单。这是许多网站都有的东西。它有一个图像和一些文本,并显示当你悬停在一个链接。几乎没有什么突破性的东西……也许看起来是这样。

最初的想法是四年前构思出来的,基于一个想法来自志愿者/编辑很多年前。

所以我们花了几年时间才把这件事告诉每个人。这似乎很奇怪,但就像冰山一样,一旦你开始往下看,这一切都是有道理的。

我们必须选择缩略图

我们有几百万页,全部存储为原始wikitext。我们不能期望每一篇文章都被编辑成缩略图。

回到2012年,Max Semenik我们的一位软件工程师必威体育 betway app社区技术团队,建造一个推广这将通过算法为一篇文章找到最合适的图像。

和所有算法一样,它并不完美,因为它不是为页面预览的用例设计的,它还需要调整。

我们必须进行更新以将图像限制在文章的第一部分。使用算法是很困难的,但这一点至关重要。

我们必须生成摘要

我们有几百万页,全部存储为原始WiKiTeXT.如何总结这一点,而不要求我们的编辑去认真地为每一篇文章做这件事?

忙着帮我们做手指甲的马克斯·塞门尼克,还写道生成文章摘录的扩展.它最初主要是为纯文本总结。我们最初的页面预览版本使用了这个,但我们意识到这并不是我们所要做的最好的选择。

所以我们停止使用这个。

我们意识到HTML非常重要。例如,化学文章中的化学公式需要下标,而下标需要HTML。

考虑一下HTML是如何为重要的内容生成摘要的,比如水的化学式,这里显示。文本来自英文维基百科上的文章,CC BSA SA 3图像Kim HansenCC BSA SA 3.

我们的许多文章,从位置信息和发音信息开始。许多内容不属于我们的摘要,而对于其他内容,则不太清楚属于什么。这些摘要大量的设计输入我们确定了哪些内容不应该出现在预览中。我们写了捕获所需行为的规范.

在许多文章开头的位置信息特征证明对总结维基百科文章有问题…

…发音信息也一样。

最后我们决定在API它最初是为我们的原生Android和iOS应用程序构建的。为此,我们专门创建了一个新的API。

现在我们从整篇文章html生成摘要。我们像解析浏览器一样解析它每一个规格确定每一篇文章的第一个“非空”引导段落。

这里最大的挑战之一,决定去掉括号内的内容。因为我们支持超过300种语言,所以必须本地化(不是每个人都使用相同的字符集!).

不仅如此,当然,有些括号是很重要的。我们必须考虑它们的所有潜在用途以及如何最好地使用它们。

有时括号内的内容很重要,如本例所示。很难确定它们何时重要。来自英语维基百科的文章元素周期表,CC BSA SA 3图像通过Ofnfopt,公共领域。

从用户生成的HTML中剥离附加元素也非常困难。在纯文本中这样做需要一个简单的正则表达式,当您考虑嵌套HTML时,事情会变得更加复杂。

重要的是要确保内容继续有意义,去掉括号内的内容,并且我们没有添加任何安全漏洞。

谢谢去我们的基础设施团队帮助我们构建这个API。

我们与社区合作必威体育 betway app

我们的编辑社区非常关心我必威体育 betway app们的产品。这就是为什么他们在业余时间为你写文章,而不是为了赚钱。

我们把他们包括在过程的每一部分,不厌其烦地与他们合作,修复每一个边缘案例(无论是打破总结,或者不恰当的图像),为了让他们放心,我们知道我们在做什么,我们为什么要这样做以及为什么要继续这样做的影响。

我们最初的版本不够好。我们的社必威体育 betway app区问我们不前进有了它。我们通过倾听和改进来回答。

感谢社区和我们的社区必威体育 betway app联络人帮助促进了这些对话!

设计设计设计

我们做了很多。我们的设计师,Nirzar做了写得很好所以我不想再在这里分享了,但是设计在整个过程的每一步,不管它是最初的原型(谢谢普拉泰克萨克萨!);与我们的绩效团队讨论功能的绩效;完善缩略图和摘要;或者和我们的社区交谈。必威体育 betway app

谢谢你设计团队

我们必须使用仪器

这对于人们如何与我们的内容进行交互是一个巨大的变化。我们非常关心维基媒体的隐私。必威买球我们可能是少数人之一(只有?!)不安装第三方脚本来跟踪您的主要网站。

我们的隐私政策禁止我们泄露你的资料。

我们不使用供应商来测试或分析我们用户的行为。

然而,尽管如此,我们不走捷径。

我们不想做出愚蠢的冒险改变。

每次我们建造一些重要的东西,我们必须建造基础设施来评估它。我们构建假设和测试来测试这些假设。我们建造它。我们测试它。我们听数据。我们适应。我们再次测试。

这意味着我们要成为一个产品团队和一个分析团队。我们的开发团队身兼数职。考虑到我们工作的规模,必须处理错误。偶尔地,我们发现浏览器供应商的主要缺陷.

Tilman Bayer的期末A/B测试给了我们很多答案。这是一个大读

考虑到A/B测试的结果,我们还决定开始测量“页面预览视图”作为页面视图的额外指标。那个计程仪正在发射每秒1000个事件以及我们的分析团队在处理这种规模的问题上是自讨苦吃。

感谢分析师,感谢分析团队!

我们必须扩展API来支持您

我们看到每分钟50万次点击.

我们看到每分钟50万次点击.

我说两次,因为流量很大。

我们的传统API最初是为帮助清理编辑的机器人而构建的。它们不是为读者设计的。

这个必威买球维基媒体服务团队通过提供处理的基础设施,对本项目的成功至关重要,处理大量缓存(我们非常依赖清漆)确保在编辑内容时生成新的摘要。这是众所周知的缓存失效是计算机科学中比较困难的问题之一。

感谢服务团队!!

谢谢谢谢谢谢谢谢

运送东西总是感觉很好。我希望“简单”预览我的团队在维基媒体基金会的许多团队的帮助下,丰富了你的经验。必威买球必威买球

我们中的很多人显然都参与其中,我们为自己所做出的努力感到自豪。

我们还没有完成。软件永远做不完。

我们有代码要清理新观念如何发展这个小功能。

有人可能会说,我们只是看到了冰山一角。

———

维基媒体必威买球基金会是一个非营利性必威买球的组织,它依赖于像你这样的人的捐赠来保持网站的运转,使之符合我们的价值观。为了帮助我们继续构建这样的特性,请考虑捐赠给我们.

乔恩·罗伯森,高级软件工程师,桌面和移动网络
必威买球维基媒体基金会必威买球

想了解更多信息吗?见最初的公告如何设计网页预览.

这个帖子最初出现在我们的媒体出版物《兔子洞》中,并修改为在维基媒体博客上重新发布。必威买球这两篇文章都经过编辑,以修复我们的API每分钟收到的打字错误。而不是五千年。