受到推崇的, 2024

编辑的选择

Instagram工程师深入研究表情符号疯狂

Anonim

表情符号:孩子们可能会喜欢他们的简单,但程序员会厌恶他们的复杂性。上个月,Instagram照片共享服务开始在其标签搜索中识别emojis,使公司成为第一个提供此功能的主要社交网络服务。用户可以将明快的表情符号添加到照片标签中,以便其他用户可以找到该表情符号。互联网很高兴

现在,负责该技术专长的Instagram工程师之一在周三发布的博客文章中分享了该公司的方法,任何希望使用类似表情符号的社交互联网服务或消费者应用程序善良。事实证明,支持小数字图标并不是一件容易的事情。

“在各种编程语言中识别字符都很困难。 “Instagram工程师Piyush Mangalick在新文章中写道,只有通过解析标准,发现字符变化和理解语言差异,他们才有可能得到支持,”虽然老年人可能会哀叹表情符号对语言的假定有害作用,但有一件事是当然:青年人喜欢他们。今天,Instagram上近60%的用户文本包含emojis。在Instagram的3亿用户中,emojis现在比缩写词更广泛。 LOL

在过去的十年中,日本首次推广,emojis通过使用简单的符号和象形文字(通常装在12×12像素的网格上)传达各种主题和情绪。它们通常用作速记以消除小设备上文字的繁琐打字。在计算机上编码世界各种语言的Unicode标准在2010年采用了一组1,282表情符号,这为它们在Apple和Android设备上的广泛使用铺平了道路。首先,在Instagram的标签索引中包含emojis似乎是一项简单的任务。使用Unicode时,每个字符(无论是字母,符号还是表情符号)都由一串十六进制数字表示,编程语言或操作系统可以使用Unicode指南将其转换为适当的字符。

Instagram的一部分Mangalick表示,不幸的是,创建单一方法来在不同平台上搜索这些原始Unicode字符串是不可能的。表情符号使用了Unicode的一个子集,名为UTF-16,它允许数字字符串的长度不同。这使得他们很难分析,因为不同的编程语言使用不同的转义键或标记来表示数字字符串的结尾。此外,一些表情符号需要两串数字。

苹果通过为用户提供以各种颜色对某些表情符号进行编码的能力进一步玷污了水域,这导致了非标准的字符串。 Android也有一套非标准的表情符号编码。为了正确使用emojis,一个Android设备必须识别一个iPhone表情符号,反之亦然

对于这个解决方案,Instagram转向了正则表达式,这是一种密集但非常灵活的语言,用于搜索文本中的模式。正则表达式简称为regex,用于在更大,更复杂的数据字符串中识别复杂集合数据字符串等任务。

在IT领域,正则表达式的搜索合理地获得了一个非常复杂的名声。 Instagram的用于查找emojis的正则表达式可能是最复杂的。

该公司精心制作了Python 2.7的正则表达式搜索模式,这是公司用于其后端搜索服务的首选语言,可识别用户可能使用的所有可能的表情符号使用。这个名单长达3,600多个字符。想象一下,在没有任何错误的情况下将其输入Google。

这只是Python的正则表达式。 Instagram必须在它支持的所有平台上识别表情符号。因此,公司工程师必须为Google和Apple的选择,Java和Objective-C制定单独的,但同样庞大的正则表达式模式。

然而,这项工作得到了回报,不仅表现为表情符号支持所产生的正面宣传Instagram,还可以帮助该公司保持与其数字表达用户群的联系。如果emojis的确超越了文本本身的使用,正如权威人士的恐惧和Instagram预测的那样,那么Instagram为这个多姿多彩的未来做好了准备。

Top