正文
开源地址:
https://github.com/yahoo/FEL
你每次打开客户端(如 Yahoo News 或者 Yahoo Sports),你想优先获得什么样的文本信息?虽然每个人的喜好不同,但你想知道的永远有关文本中的人物,组织和位置信息。自动搜寻此类信息的系统被称为「实体名称识别和链接系统(named entity recognition and linking systems)」。它是文本分析中最重要的系统,许多应用都会使用到它,例如搜索引擎、推荐系统、问答系统和情绪分析系统。
实体名称识别和链接系统使用统计模型,通过大量经过标记的文本进行训练。这种方法面临的主要挑战是在不同语言、长文本、缺乏标记的数据中准确探测实体,同时不需要耗费过多的系统资源(内存和处理器资源)。
在雅虎长期研究和不断应用这些解决方案之后,我们很高兴为开源社区贡献我们的这一工具:Fast Entity Linker,我们的无监督、准确、可扩展多语言实体名称识别和链接系统,同时也包含英语、西班牙语和中文数据包。
为了增加可用性,我们的系统将文本实体链接至维基百科。例如,当语句中出现「雅虎是一家总部位于加州 Sunnyvale 的公司,CEO 是 Marissa Mayer」时,这一系统会点出以下实体:
-
Yahoo – linked to https://en.wikipedia.org/wiki/Yahoo!
-
Sunnyvale, CA – linked to https://en.wikipedia.org/wiki/Sunnyvale,_California
-
Marissa Mayer – linked to https://en.wikipedia.org/wiki/Marissa_Mayer
在算法上,我们使用了实体嵌入,click-log 数据和高效聚类等方法来实现高精度。该系统通过使用压缩数据结构和主动散列函数以实现低内存占用和快速执行。
「实体嵌入(Entity embeddings)」是基于向量的表示,它捕获上下文中引用实体的方式。我们使用维基百科文章训练实体嵌入,并在文章中使用超链接格式来创建规范实体。使用下图中的神经网络架构来建模实体的上下文和表征,其中实体向量经过训练不仅会预测其周围实体,而且可以预测包含词序列的全局上下文。这种方式分为两层,一层实体上下文模型,另一层表征上下文模型。我们使用和用于训练段落向量的相同技术(Quoc 和 Mikolov,2014)来连接这两个层。