CN113590739A - 基于模型的语义文本搜索 - Google Patents

基于模型的语义文本搜索 Download PDF

Info

Publication number
CN113590739A
CN113590739A CN202110125326.7A CN202110125326A CN113590739A CN 113590739 A CN113590739 A CN 113590739A CN 202110125326 A CN202110125326 A CN 202110125326A CN 113590739 A CN113590739 A CN 113590739A
Authority
CN
China
Prior art keywords
keyword
electronic document
tokens
string
machine learning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110125326.7A
Other languages
English (en)
Inventor
T·布伊
龚语
T·杜布里什
S·斯帕拉
S·索尼
N·米勒
金俊
F·德恩昂克特
C·多克霍恩
A·卡勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN113590739A publication Critical patent/CN113590739A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3322Query formulation using system suggestions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例涉及基于模型的语义文本搜索。描述了用于执行语义文本搜索的技术和系统。一种语义文本搜索解决方案使用机器学习系统(诸如深度学习系统)来确定词的语义含义之间的关联。这些关联不受词的拼写、句法、语法或甚至定义的限制。相反,关联可以基于上下文,在上下文中,字符、词和/或短语彼此相关地被使用。响应于检测到定位电子文档内的与关键词相关联的文本的请求,语义文本搜索解决方案可以返回文档内的除了文档内的精确匹配(例如字符串匹配)以外还具有匹配和/或相关的语义含义或上下文的字符串。语义文本搜索解决方案然后可以输出匹配字符串的指示。

Description

基于模型的语义文本搜索
技术领域
本申请一般涉及使用由机器学习系统生成的模型来执行基于模 型的语义文本搜索。例如,本申请的各方面涉及接收对应于关键词的 输入、和使用词集合的表示模型来确定电子文档内的与关键词在语义 上相关的词(word)。
背景技术
包括文字处理应用、web应用、移动应用等的许多应用使得用户 能够在文档和/或用户界面内执行针对文本的搜索。例如,当查看由应 用显示的电子文档时,用户可能能够打开或启动词搜索用户界面(例 如,通过按键盘上的“Ctrl+F”)。词搜索用户界面可以允许用户录 入包含一个或多个字符、词、短语等的关键词。然后,由应用实现的 文本搜索系统可以标识并返回文档内的与关键词匹配或相对应的文 本部分。以此方式,用户可以导航到文档的与关键词的内容相关的部 分。
用于针对关键词进行搜索的许多现存的解决方案都利用或依赖 于字符串匹配(string matching)。字符串匹配解决方案可以返回文档 的直接匹配或包括由用户录入的文本字符串的部分。例如,如果用户 搜索字符串“转动(turn)”,则字符串匹配解决方案可能会返回文 档内的“转动(turn)”的每个实例,包括除了其他字符外还包含字 符串“转动(turn)”的词,诸如“转动(turns)”和“转动(turning)”。 虽然字符串匹配方法在一些情况下可能会返回相关结果,但这种方法 的整体有用性可能会受到限制。例如,如果用户不正确地拼写搜索查 询(即使是相差单个字母),则字符串匹配解决方案可能不会返回任 何结果(或可能返回不准确的结果)。类似地,如果用户录入文档中 所包括的词的不同版本(诸如“颜色(color)”与“颜色(colour)” 或“生活(lives)”与“生活(life)”),则字符串匹配解决方案可 能无法返回有用的结果。
一些文本搜索解决方案可能会尝试扩展或扩大由字符串匹配方 法返回的结果。例如,文本搜索解决方案可以实现词干提取,该词干 提取涉及截断搜索查询(例如,将“学习(studies)”改变成“学习 (studi)”)。在另一情况下,文本搜索解决方案可以实现词形还原, 该词形还原涉及标识搜索的词基或词元(例如,将“studies”改变成 “study”)。此外,一些文本搜索解决方案可以利用词典或主题词表 来针对类似于文本查询的词进行搜索。然而,这些文本搜索解决方案 仍可能无法返回许多与关键词相关的结果。具体来说,现存的文本搜 索解决方案不考虑关键词的语义含义或上下文。
需要基于语义文本搜索的系统和技术来返回文档内的与录入的 关键词在语义上相关的词。
发明内容
本文中描述了用于执行基于模型的语义文本搜索的技术。语义文 本搜索解决方案使用机器学习系统(诸如深度学习系统)来确定词的 语义含义之间的关联。这些关联不受词的拼写、句法、语法或甚至定 义的限制。相反,关联可以基于上下文,在该上下文中,字符串(例 如字符、词、短语等)彼此相关地被使用。例如,语义文本搜索解决 方案不仅可以使词“交通工具(vehicle)”与“交通工具(vehicles)” (如同可以通过字符串匹配解决方案完成)相关联,而且还可以使其 与诸如“卡车(truck)”、“运输(transportation)”、“DMV”和“飞机(airplane)”之类的词相关联。作为另一示例,语义文本搜索 解决方案可以将词“红色(red)”与“深紫红色(burgundy)”相关 联(因为深紫红色(burgundy)是红色(red)的变体),以及将词“红 色(red)”与“黄色(yellow)”和“绿色(green)”相关联(因为 红色(red)、黄色(yellow)和绿色(green)常与标准交通信号灯一 起使用)。响应于检测到确定电子文档内的与关键词相关联的词的请 求,语义文本搜索解决方案可以返回文档内的除了该文档内的精确匹 配(例如字符串匹配)以外还具有匹配和/或相关的语义含义或上下文 的词。进一步地,语义文本搜索解决方案可以显示文档内的匹配词的 指示。
本申请的附加特征和优点将在以下的描述中阐述,并且部分地将 从描述中变得明显,或可以通过实践本文中所提供的示例来学习。
本发明内容既不旨在标识所要求的主题的关键或本质特征,也不 旨在被隔离地使用来确定所要求保护的主题的范围。应该参考本专利 申请的整个说明书的恰当部分、任何或所有附图和每项权利要求来理 解主题。
通过参考以下说明书、权利要求书和随附附图,前述以及其他特 征和实施例将变得更加明显。
附图说明
下文参考以下附图详细描述了本申请的说明性实施例:
图1是根据本文中所提供的一些示例的由基于字符串的文本搜索 系统提供的示例词搜索用户界面的图示;
图2是根据本文中所提供的一些示例的示例向量空间的图示;
图3是根据本文中所提供的一些示例的示例语义搜索系统的框 图;
图4是根据本文中所提供的一些示例的示例语义搜索系统的框 图;
图5是根据本文中所提供的一些示例的示例文档和文档的令牌的 图示;
图6A和图6B是根据本文中所提供的一些示例的由语义搜索系统 提供的示例词搜索用户界面的图示;
图7是根据本文中所提供的一些示例的示例语义搜索系统的框 图;
图8是图示根据本文中所提供的一些示例的执行语义文本搜索的 过程的示例的流程图;
图9是根据本文中所提供的一些示例的示例表的图示,该示例表 包括与执行语义文本搜索相关联的延迟和有效负载数据;
图10是图示根据本文中所提供的一些示例的执行语义文本搜索 的过程的示例的流程图;
图11是可以实现本文中所描述的各种技术的示例计算设备的示 例计算设备架构。
具体实施方式
下文提供了本公开的某些方面和实施例。如对于本领域的技术人 员将是明显的,这些方面和实施例中的一些可以被独立地应用,并且 它们中的一些可以被组合地应用。在以下描述中,出于解释的目的, 阐述了具体细节,以便提供对本申请的实施例的透彻理解。然而,将 明显是,可以在没有这些具体细节的情况下实践各种实施例。附图和 描述不旨在是限制性的。
随后的描述仅提供示例性实施例,并且不旨在限制本公开的范 围、适用性或配置。相反,示例性实施例的随后描述将向本领域的技 术人员提供用于实现示例性实施例的可行描述。应理解,在不脱离如 所附权利要求书中所阐述的本申请的精神和范围的情况下,可以对元 件的功能和布置进行各种改变。
包括文字处理应用、web应用、移动应用等的许多应用使得用户 能够在用户界面内执行针对字符串或文本(例如字符、词、短语等) 的搜索。例如,当查看由应用显示的电子文档时,用户可能能够打开 或启动词搜索用户界面(例如,通过按键盘上的“Ctrl+F”)。词搜 索用户界面可以允许用户录入包含一个或多个字符、词、短语等的关 键词。然后,由应用实现的文本搜索系统可以标识并返回文档内的与 关键词匹配或相对应的文本部分。以此方式,用户可以导航到文档的 与关键词的内容相关的部分。
用于针对关键词进行搜索的许多现存的解决方案都利用或依赖 于字符串匹配。字符串匹配解决方案可以返回文档的直接匹配或包括 由用户录入的字符串的部分。例如,如果用户搜索字符串“转动 (turn)”,则字符串匹配解决方案可能会返回文档内的“转动(turn)” 的每个实例,包括除了其他字符外还包含字符串“转动(turn)”的 词,诸如“转动(turns)”和“转动(turning)”。虽然字符串匹配 方法在一些情况下可能会返回相关结果,但这种方法的整体有用性可 能会受到限制。例如,如果用户不正确地拼写搜索查询(即使是相差 单个字母),则字符串匹配解决方案可能不会返回任何结果(或可能 返回不准确的结果)。类似地,如果用户录入文档中所包括的词的不 同版本(诸如“颜色(color)”与“颜色(colour)”或“生活(lives)” 与“生活(life)”),则字符串匹配解决方案可能无法返回有用的结 果。
一些文本搜索解决方案可能会尝试扩展或扩大由字符串匹配方 法返回的结果。例如,文本搜索解决方案可以实现词干提取,该词干 提取涉及截断搜索查询(例如,将“学习(studies)”改变成“学习 (studi)”)。在另一情况下,文本搜索解决方案可以实现词形还原, 该词形还原涉及标识搜索查询的词基或词元(例如,将“studies”改 变成“study”)。进一步地,一些文本搜索解决方案可以利用词典或 主题词表来针对类似于关键词的词进行搜索。然而,这些文本搜索解 决方案仍可能无法返回许多与关键词相关的结果。例如,现存的文本 搜索解决方案不考虑关键词的语义含义或上下文。
本文中提供了系统和相关技术,该系统和相关技术通过执行返回 与所录入的关键词在语义上相关的文本或字符串(例如词、字符、短 语等)的文本搜索,来提供益处并解决上述问题中的一个或多个问题。 这些系统和技术通常可以分为两个组成部分。第一组成部分涉及生成 (例如训练)表示词之间的语义关系的模型。第二组成部分涉及使用 模型在文档内标识与用户的查询相关的文本。
如本文中所使用,两个或更多个词(或其他字符串)之间的“语 义关系”是指词如何彼此相关地在上下文中被使用。例如,与没有语 义关系(或在语义上较不相关)的两个词相比,在语义上彼此相关的 两个词可以一起被使用(例如,在同一句子、段落、文档、对话等内)。 在另一示例中,两个语义上相关的词可以具有相似的含义或定义。作 为说明性示例,词“丘陵(hill)”和“山脉(mountain)”可以在语 义上相关,因为两个词具有相似的含义。然而,语义关系不受词的定 义(例如基于词典的定义)的限制或不必由其定义。例如,通常具有 相反定义的词“丘陵(hill)”和“山谷(valley)”由于这两个词都 描述了地质特征而可能在语义上相关。在另一说明性示例中,词“间 谍(spy)”、“间谍活动(espionage)”和“Roscoe H.Hillenkoetter” 可能在语义上相关。
参考所公开的语义文本搜索技术的第一组成部分,机器学习系统 可以被用于生成用于表示词之间的语义关联的模型。机器学习系统可 以包括深度学习网络和/或算法(例如,包括一个或多个神经网络)和 /或任何附加机器学习组件或架构。在一个示例中,模型可以包括或基 于开源库,诸如fastText。例如,语义文本搜索技术可以利用fastText 或相似库的框架来构建学习数据库内的词(诸如以特定语言编写的维 基百科文章)之间的关联的模型。在其他示例中,机器学习系统可以 从头开始生成和/或训练模型,而无需使用预配置的库。
在一些情况下,语义文本搜索技术可能会基于文本或字符串表示 来构建模型。词表示的示例是词嵌入(或字符和/或短语嵌入)。词嵌 入可以包括或对应于词在预定义向量空间内的向量表示。向量空间可 以具有任何数量的维(诸如100维、300维或500维)。在向量空间 内,具有相似语义含义或上下文的词(或字符或短语)可能具有相似 或邻近的向量。例如,具有相似语义含义的两个词的向量表示之间的 数值距离可能小于具有不相似语义含义或不相关语义含义的两个词 的向量表示之间的数值距离。作为示例,词“红色(red)”的向量表 示可以位于向量空间的子空间内,该子空间包括其他颜色,诸如“绿 色(green)”和“紫色(purple)”。在子空间内,“红色(red)” 的向量表示可能比“紫色(purple)”的向量表示更接近“绿色(green)” 的向量表示,因为红色(red)和绿色(green)可能具有通常结合交 通信号灯一起提及的附加关联。可以在发现或完善词关联时创建或更 新这种向量表示。
在一些情况下,词的向量表示和/或其他类型的表示可以由与一个 或多个终端用户设备(例如客户端设备)通信的服务器存储。在一些 情况下,一个或多个终端用户设备中的每个终端用户设备都可以将语 义文本搜索系统实现为应用或其他机器可执行程序。例如,终端用户 设备上的应用可以配置有使得用户能够输入关键词作为确定文本在 文档内的对应部分的请求的界面。参考所公开的语义文本搜索技术的 第二组成部分,应用可以提示服务器返回文档内的与关键词在语义上 (例如,相差至少阈值度)相关的词列表。在一些情况下,服务器通 过将关键词的向量表示与文档内的唯一令牌(例如词、短语或字符) 的向量表示进行比较,来确定与关键词在语义上相关的词。在一个示 例中,应用可以将文档发送给服务器,并且服务器可以标识文档内的 令牌。在其他示例中,应用可以标识令牌并将令牌以及关键词发送给 服务器。在一些情况下,应用可以响应于用户打开文档或响应于用户 发起搜索(例如,打开词搜索用户界面)而开始在文档内编译唯一令 牌的列表。在一些情况下,应用可以一次标识文档的一部分(例如一 页或两页)内的令牌,而不在一次调用或一个动作中处理整个文档。 另外,应用可以在将令牌发送给服务器之前对令牌列表进行重复数据 删除(例如,删除重复的令牌)。在一些实现中,应用可以在本地使 用令牌和关键词来确定与关键词在语义上相关的词。
应用可以响应于各种上下文和/或输入,将来自文档的令牌列表和 /或关键词发送给服务器。在一种情况下,应用可以在确定用户已经在 词搜索用户界面中录入了至少一定数量(例如2、3个等)的字符之 后发送令牌列表和关键词。附加地或备选地,在确定用户在阈值时间 段(例如100毫秒、200毫秒等)内没有在词搜索用户界面中录入新 字符之后,应用可以发送令牌列表和关键词。这种策略可以减少对服 务器进行大量(例如不必要的)调用时消耗的处理功率和/或带宽。如 果应用检测到在阈值时间段之后用户已经录入了新字符,则应用可以 将更新的关键词发送给服务器。应用还可以在服务器不保存令牌的实现中重新发送令牌列表(例如,以确保文档的私密性)。
一旦服务器接收到令牌列表和关键词,服务器就可以确定令牌列 表和关键词的向量表示。然后,服务器可以使用一种或多种类型的相 似性度量来确定关键词与令牌列表之间的相似性。例如,服务器可以 利用相似性函数(诸如余弦相似性函数)来确定关键词与每个令牌之 间的相似性分数。基于相似性分数,服务器可以确定哪些令牌与关键 词在语义上相关。例如,服务器可以标识其相似性分数至少为阈值分 数(例如,在0到1的范围上是0.4的分数)的令牌。在一些情况下, 服务器可以从等于或大于阈值分数的令牌中标识具有最高相似性分 数的多个(例如4个、5个等)令牌。服务器可以将相似的令牌返回 给应用,诸如所有等于或大于阈值分数的令牌或具有最高相似性分数 的令牌数。在从服务器接收到相似的令牌之后,应用可以向用户指示 这些令牌(例如通过显示与令牌相关联的词、短语等)。例如,应用 可以用令牌填充词搜索用户界面和/或突出显示文档内的令牌。在一些 情况下,词搜索用户界面还可以显示字符串匹配,该字符串匹配包括 关键词的文本。
图1图示了表示基于字符串的文本搜索解决方案的示例的词搜索 用户界面102。词搜索用户界面102可以被显示在显示电子文档的用 户界面内,被显示在附加用户界面内的电子文档顶部和/或被整合到电 子文档中。在说明性示例中,基于字符串的文本搜索解决方案可以响 应于检测到对应于搜索请求的输入(诸如用户按键盘上的“Ctrl+F” 或点击工具栏内的搜索请求按钮)来启动或以其他方式显示电子文档 内的词搜索用户界面102。
如图1中所示出,词搜索用户界面102包括搜索栏104,用户可 以向该搜索栏中提供对应于文本查询或搜索查询的输入(本文中称为 关键词)。关键词可以包括一个或多个字符、词和/或短语。用户可以 使用多种输入机制来提供对应于关键词的输入,诸如经由语音命令来 提供关键词和/或使用物理或数字呈现的键盘来录入关键词。在图1 的示例中,搜索栏104显示对应于文本“pro”的录入的关键词106。 响应于检测到该输入,基于字符串的文本搜索解决方案可以搜索电子 文档以标识包括字符串“pro”的文本的每个部分。然后,基于字符串 的文本搜索解决方案可以将这些词的指示返回给用户。在图1的示例 中,基于字符串的文本搜索解决方案可以用对应于包括关键词106的 词的匹配108来填充词搜索用户界面102。因为匹配108包括关键词 106的精确字符串,所以匹配108可以称为“精确匹配”。虽然在一 些情况下匹配108可能与用户的搜索相关,但是匹配108可能无法包 括可能由于附加词与关键词106具有语义关系而与用户相关或以其他 方式对用户有帮助的一个或多个附加词。
公开的语义文本搜索解决方案可以以多种方式确定词之间的语 义关系。在一些情况下,语义文本搜索系统可以使用词嵌入模型来确 定语义关系,该词嵌入模型可以包括用于潜在语义分析、语言建模和 /或自然语言处理的一种或多种技术。在一个示例中,词嵌入模型可以 涉及用在多维向量空间内确定的向量表示来表示词的语义含义。向量 表示可以指示词的语义特征与其他词的语义特征之间的相对相似性, 并且因此可以称为特征向量。图2图示了包括多个特征向量的示例向 量空间202。在该示例中,向量空间202是三维的。然而,公开的语 义文本搜索系统所使用的向量空间可以具有任何适合数量的维,诸如50维、100维或200维。如图2中所示出,向量空间202包括向量204、 向量206和向量208。这些向量可以各自对应于不同的词。在其他示 例中,向量可以对应于语言的任何附加单元或元素,诸如一个或多个 字符、词和/或短语(统称为字符串或文本)。例如,向量可以对应于 任何长度的n元语法(包括n个词的短语)。进一步地,向量空间202 可以包括任何数量的词或n元语法(诸如数千、数百万或甚至数十亿 个词)的表示。
向量204、206以及208之间的距离对应于向量之间的语义关系 的强度。例如,向量204和206表示的词彼此可以具有比向量208表 示的词更强的语义关系。因此,向量206与向量204之间的距离205 短于向量204与向量208之间的距离207。类似地,距离205短于向 量206与向量208之间的距离209。在说明性示例中,向量空间202 可以对应于较大向量空间的子空间,该子空间包括各种动物的向量表 示。在该示例中,向量204可以表示词“牛(cow)”,向量206可 以表示词“羊(sheep)”,并且向量208可以表示词“鹦鹉(parrot)”。 距离205可以小于距离207和209,因为与同词“鹦鹉(parrot)”一 起相比,词“牛(cow)”和“羊(sheep)”更频繁地一起被使用(例 如,在讨论农场或农场动物时)。
在一些情况下,公开的语义文本搜索解决方案可以使用人工智能 (AI)(诸如机器学习系统或算法)来生成和/或完善词的特征向量。 机器学习是AI的子领域,其中训练了机器学习模型以执行一个或多 个具体任务。例如,机器学习模型通过依赖于从训练数据中学习的模 式和推理来进行训练以执行目标任务,而无需明确的指令来执行任 务。机器学习模型已在许多设备和系统中变成用于执行各种任务(包 括对数据进行分类、翻译文本、检测和防止网络攻击、推荐产品等) 的惯例。在语义文本搜索系统中,可以训练词嵌入模型来确定语义上 相关的词的向量表示一起在向量空间内比语义上无关的词的特征向 量更近。词将在本文中用作文本或字符串的说明性示例。然而,本领 域的普通技术人员将了解,可以使用本文中所描述的技术通过嵌入模 型来分析和处理其他文本字符串(例如外语字符或其他字符和/或其他 类型的文本)。在一些情况下,模型可以确定词集合的向量表示,评估向量表示的质量(例如,确定向量表示准确描绘语义关系的方式), 并且然后更新模型的一个或多个参数以提高向量表示的质量。该训练 过程可以迭代执行任何数量的周期,诸如数百或数千个周期,或足够 数量的周期,以用于使模型收敛和/或以其他方式被认为完全经过训 练。
可以使用多种类型的机器学习算法和技术来训练词嵌入模型。在 一个实施例中,可以使用深度学习算法(诸如包括一个或多个神经网 络的算法)来训练模型。如本文中所使用,术语“神经网络”可以指 被设计成识别数据集内的模式或关系的算法或步骤集合。神经网络可 以包括输入层、输出层和一个或多个隐藏层。隐藏层可以处理被提供 给输入层的数据,并且输出层可以输出由隐藏层执行的处理的结果。 在一些情况下,隐藏层可以包括一个或多个互连的节点。每个节点可 以表示一条信息。与节点相关联的信息在不同的层当中被共享,并且 随着信息被处理,每层都保留信息。
在一些情况下,每个节点或节点之间的互连可以具有一个或多个 可调权重。权重是得自于神经网络的训练的参数集。例如,节点之间 的互连可以表示一条关于互连的节点所学习到的信息。互连可以具有 可调权重,该可调权重可以在训练期间进行调谐(例如,基于包括多 个训练文档的训练数据集),从而使神经网络适应输入并能够随着处 理越来越多的数据而学习。每个权重可以包括数值。在一些情况下, 神经网络可以使用反向传播来调整节点的权重。例如,神经网络可以 通过处理训练文档并且然后分析神经网络的实际输出与神经网络的 期望输出之间的差异(例如,使用一个或多个损失函数)来调整节点 的权重。当正在训练神经网络以生成字符串或文本的表示(例如语义 表示)(例如一个或多个词的表示)时,期望输出可以对应于准确地 描绘了文本之间的语义关系的特征向量(例如描绘词之间的语义关系 的特征向量)。在训练神经网络之前,可以首先将神经网络的权重随机化。针对用于神经网络的第一训练迭代,输出将可能包括不产生准 确和/或期望的输出的值(例如特征向量)。处理训练文档和更新神经 网络的参数的过程可以针对每个训练文档集合被重复一定次数的迭 代,直到对神经网络进行足够好的训练以使得准确地调谐了各层的权 重(和/或其他参数)为止。
在一些情况下,可以使用无监督训练过程来训练神经网络。在 无监督训练过程中,可能没有必要对训练文档内的词进行标记或分 类。在一些示例中,可以使用监督或半监督训练过程来训练神经网络。 语义文本搜索系统可以利用的神经网络的示例包括卷积神经网络、循 环神经网络、递归神经网络、自组织映射、玻耳兹曼机、自动编码器 等。
在训练词嵌入模型之后,可以使用模型来确定被输入到模型的词 的表示。使用模型来处理新的输入数据可以被称为推理或转出 (roll-out)。在推理期间,模型可以接收词或其他n元语法,并且然 后输出对应于词的语义含义的特征向量。图3图示了用于训练和使用 词嵌入模型的示例性语义搜索系统300。语义搜索系统300包括各种 组件,包括训练引擎302、输出引擎304、训练文本306、模型308、 词输入310和特征向量312。语义搜索系统300的组件可以包括软件、 硬件或两者。例如,在一些实现中,语义搜索系统300的组件可以包括电子电路或其他电子硬件和/或可以使用电子电路或其他电子硬件 来实现,这些电子电路或其他电子硬件可以包括一个或多个可编程电 子电路(例如微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、 中央处理单元(CPU)和/或其他适合的电子电路),和/或可以包括 计算机软件、固件或其任何组合和/或使用计算机软件、固件或其任何 组合来实现以执行本文中所描述的各种操作。软件和/或固件可以包括 一个或多个指令,这些指令被存储在计算机可读存储介质上并且由实 现语义搜索系统300的计算设备的一个或多个处理器可执行。
虽然示出了语义搜索系统300包括某些组件,但是本领域的普通 技术人员将了解,语义搜索系统300可以包括比图3中所示出的组件 更多或更少的组件。例如,语义搜索系统300可以包括以下计算设备 或可以是该计算设备的一部分:该计算设备包括一个或多个输入设备 和一个或多个输出设备(未示出)。在一些实现中,语义搜索系统300 还可以包括以下计算设备或可以是该计算设备的一部分:该计算设备 包括一个或多个存储器设备(例如一个或多个随机存取存储器(RAM) 组件、只读存储器(ROM)组件、高速缓存存储器组件、缓冲器组件、 数据库组件和/或其他存储器设备)、与一个或多个存储器设备通信和 /或被电连接到该一个或多个存储器设备的一个或多个处理设备(例如 一个或多个CPU、GPU和/或其他处理设备)、用于执行无线通信的 一个或多个无线接口(例如,包括一个或多个收发器和用于每个无线 接口的基带处理器)、用于通过一个或多个硬接线连接执行通信的一 个或多个有线接口(例如串行接口,诸如通用串行总线(USB)输入 端、照明连接器和/或其他有线接口)和/或图3中未示出的其他组件。
如上所述,语义搜索系统300可以由计算设备实现和/或被包括在 计算设备中。在一些情况下,可以使用多个计算设备来实现语义搜索 系统300。例如,被用于实现语义搜索系统300的计算设备可以包括 个人计算机、平板计算机、移动设备(例如移动电话或其他移动设备)、 可穿戴式设备(例如智能手表、虚拟现实耳机、增强现实耳机和/或其 他可穿戴式设备)、一台或多台服务器(例如在软件即服务(SaaS) 系统或其他基于服务器的系统中)和/或任何具有执行本文中所描述的 技术的资源能力的其他计算设备。
在一些实现中,语义搜索系统300可以与一个或多个软件应用(诸 如搜索引擎、web浏览器、显示文本的应用(例如Adobe Experience ManagerTM、Acrobat DesktopTM、Acrobat MobileTM、Adobe PremiereTM、 Adobe Creative CloudTM、Adobe IllustratorTM、Adobe AcrobatTM、Adobe PhotoshopTM、Adobe After EffectsTM等)或允许用户(也称为终端用户) 查看和搜索文本的其他软件应用)整合(例如,被集成到软件中、作 为一个或多个插件被添加、作为一个或多个库函数被包括或以其他方 式与该一个或多个软件应用整合)。软件应用可以是被安装在移动设 备(例如移动电话(诸如智能手机)、平板计算机、可穿戴式设备或 其他移动设备)上的移动应用、被安装在台式计算机上的桌面应用、 可以使用web浏览器或其他应用访问的基于web的应用或其他软件应 用。在一些实现中,语义搜索系统300可以在一套软件应用中被实现。
在一些情况下,训练引擎302使用训练文本306生成和/或训练模 型308。训练文本306包括文本的任何集合、类集或语料库。训练文 本306可以包括任何数量或类型的文本字符串,诸如词、短语、字符 和/或其他n元语法。例如,训练文本306可以包括数百万或数十亿个 文本字符串,诸如词或其他n元语法。训练文本306可以包括足够数 量的文本(例如在各种上下文中所使用的足够数量的不同词)以训练 模型308以生成准确地表示词之间的语义关系的特征向量。在说明性 示例中,训练文本306可以包括对应于以相同语言编写的文章的维基 百科数据库的全部或一部分。在一些示例中,训练引擎302可以使用 对应于以各种语言编写的文章的多个数据库来生成能够确定各种语 言的词的特征向量的模型集合。训练文本306可以包括任何附加或备 选类型的训练文本。在一些情况下,训练引擎302可以通过更新和/ 或训练包括向量表示集合(或被配置成输出向量表示)的现存或先前 生成的库来生成模型308。在说明性示例中,库可以包括公众可使用 的开源库,诸如fastText或相似的库。通过训练现存的库来构建词嵌 入模型(而不是从头开始构建词嵌入模型)可以减少训练模型所涉及 的时间和/或处理功率。然而,在一些情况下,生成模型308可以包括 生成库。
在一些示例中,训练引擎302可以通过确定一个字符串(诸如词 或其他n元语法)在训练文字306中与一个或多个其他字符串(例如 其他词或其他n元语法)一起使用的频率来训练模型308。例如,训 练模型308可以确定和/或分析在文档或文档的部分(例如句子、段落 等)内两个或更多个词或其他n元语法同时出现的比率。作为说明性 示例,训练引擎302可以至少部分地基于确定“间谍(spy)”和“间 谍活动(espionage)”具有在一组文档(例如多篇维基百科文章)内 同时出现的高比率(例如高于阈值比率)来确定词“间谍(spy)”与词“间谍活动(espionage)”在语义上相关。例如,训练引擎302可 以确定包含词“间谍(spy)”的维基百科文章可能也包含词“间谍活 动(espionage)”,并且因此,两个词在语义上相关。训练引擎302 可以使用训练文本306的任何附加或备选分析来确定词之间的语义关 系。
训练引擎302可以训练模型308以确定包括任何数量的词和/或字 符的字符串或n元语法的特征向量。例如,训练引擎302可以训练模 型308以确定对应于部分词(例如不构成整个词的字符的字符串)的 特征向量。附加地或备选地,训练引擎302可以训练模型308以确定 对应于多词短语(诸如“英格兰女王(the Queen of England)”或“一 天中的时间(time of day)”)的特征向量。在一些情况下,训练模 型308以确定对应于多词短语的特征向量可以包括基于短语内的各个 词的特征向量的平均值来训练模型308。进一步地,训练引擎302可 以训练模型308以确定任何类型或形式的词或n元语法的特征向量, 诸如动词、介词、形容词、名词、代词、专有名词、名称、地点等。 在一些情况下,训练引擎302还可以训练模型308以确定对应于拼写 错误的词的特征向量。例如,训练引擎302可以将模型308配置成检 测被输入到模型308的词何时是模型已知的词的不正确拼写版本(诸 如“篮球(basktball)”而不是“篮球(basketball)”),而非将词 视为未知或不受支持的词。
在模型308被充分训练之后,模型308可以接收词输入310。词 输入310可以对应于作为确定指示被用于训练模型308的词输入310 与其他字符串(例如词或其他n元语法)之间的语义关系的特征向量 的请求的一部分而被提供给模型308的任何字符串(例如词或其他n 元语法)。基于词输入310,输出引擎304可以输出表示语义关系的 特征向量312。例如,输出引擎304可以搜索模型308,以标识对应 于词输入310的特征向量。输出特征向量312的该过程可以被称为提 取词输入310的词嵌入。
图4是图示用于使用词嵌入模型来执行语义文本搜索的示例语义 搜索系统400的示意图。语义搜索系统400包括各种组件,包括检测 引擎402、令牌引擎404、表示引擎406、匹配引擎408、输出引擎410、 搜索输入412、令牌414、表示416、匹配418和搜索输出端420。在 一些情况下,语义搜索系统400包括、实现图3中所图示的语义搜索 系统300的全部或一部分和/或与其通信。
在说明性示例中,语义搜索系统400的至少一部分可以由训练和 存储词嵌入模型(诸如图3的模型308)的后端服务器或应用服务器 来实现。在该示例中,语义搜索系统400的另一部分可以由与服务器 通信并运行被配置成执行语义文本搜索的应用的终端用户设备(诸如 个人计算机、平板计算机或移动设备)来实现。这种应用的示例包括 AdobeExperience ManagerTM、Acrobat DesktopTM、Acrobat MobileTM、 Adobe PremiereTM、AdobeCreative CloudTM、Adobe IllustratorTM、Adobe AcrobatTM、Adobe PhotoshopTM、AdobeAfter EffectsTM等。
语义搜索系统400可以包括软件、硬件或固件的任何组合。例如, 在一些实现中,语义搜索系统400的组件可以包括电子电路或其他电 子硬件和/或可以使用电子电路或其他电子硬件来实现,这些电子电路 或其他电子硬件可以包括一个或多个可编程电子电路、处理设备和/ 或可以包括计算机软件、固件或其任何组合和/或使用计算机软件、固 件或其任何组合来实现以执行本文中所描述的各种操作。软件和/或固 件可以包括一个或多个指令,这些指令被存储在计算机可读存储介质 上并且由实现语义搜索系统400的计算设备的一个或多个处理器可执 行。语义搜索系统400可以包括图4中未示出的任何附加组件或备选 组件。
搜索输入412可以包括对应于确定或定位电子文档内的与关键词 相关联的文本的请求的任何输入。在一些情况下,搜索输入412可以 包括搜索请求的发起或启动。例如,搜索输入412可以包括用户打开 词搜索用户界面(类似于图1中所图示的词搜索用户界面102)。如 结合图1所讨论,用户可以通过录入命令(诸如“Ctrl+F”)、点击 按钮以打开词搜索用户界面或以任何附加方式来打开词搜索用户界 面。附加地或备选地,搜索输入412可以包括关键词的一个或多个字 符,包括一个或多个关键词的一部分。例如,搜索输入412可以包括 被录入到词搜索用户界面的搜索栏中的文本。在一个实施例中,搜索 输入412可以包括图3中所图示的词输入310。检测引擎402可以以 多种方式检测搜索输入412。在一些示例中,检测引擎402可以通过 周期性地或连续地监测显示电子文档的用户界面来检测搜索输入 412。例如,检测引擎402可以监测用户界面以检测词搜索用户界面 的启动,并且然后监测词搜索用户界面以检测被录入到词搜索用户界 面中的字符。
在检测引擎402检测到搜索输入412的全部或一部分之后,令牌 引擎404可以生成电子文档的令牌414集合。如本文中所使用,词“令 牌”是指电子文档内所包括的一个或多个字符和/或词的字符串。例如, 令牌可以包括前缀、后缀、字符集、词和/或短语。在一些情况下,令 牌可以包括具有可定义的语义含义的n元语法。例如,令牌可以包括 以具体顺序被用来描绘具体含义的一组词,而不是随机或任意的一组 词。一些令牌可以包括一个或多个标点符号(诸如连字符)。
令牌引擎404可以以各种方式和/或上下文生成令牌414。在一些 情况下,令牌引擎404可以通过扫描文档以标识文档内的每个唯一(例 如不同的)令牌来生成令牌414。例如,当令牌引擎404标识文档内 的令牌时,令牌引擎404可以在列表内记录和/或存储令牌。如果文档 包括令牌的多于一个实例,则令牌引擎404可以从列表中移除令牌的 重复实例。移除重复令牌的过程可以被称为重复数据删除 (deduplication)或重复数据删除(deduping)。进一步地,在一些情 况下,令牌引擎404可以通过一次分析文档的一部分来生成令牌集合。 例如,令牌引擎404可以执行分离的函数调用以标识文档的各个页(或 少量页)内的令牌,而不是执行单个函数调用以标识整个文档内的每 个令牌。该过程可以防止实现语义搜索系统400的应用崩溃、变得无 响应或以其他方式发生故障(特别是在处置大的文档(诸如数百页内 的文档)时)。
在一些情况下,令牌引擎404可以响应于搜索输入412生成令牌 414。例如,令牌引擎404可以在用户已经提供了打开词搜索用户界 面的输入之后或在用户已经提供了对应于关键词的一个或多个字符 的输入之后生成令牌414。令牌引擎404可以在任何附加时间点或响 应于附加输入(诸如对应于用户打开电子文档的输入)生成令牌414。 例如,为了避免由于生成令牌414所需的时间(例如可能花费几百毫 秒)而导致语义文本搜索延迟,令牌引擎404可以在用户打开、查看 或以其他方式访问电子文档之后立即生成令牌414。
图5图示了可以由语义搜索系统400生成的示例性文档502和文 档502的示例性令牌504。在该示例中,令牌504包括文档502的每 个1元语法(例如单个词)和2元语法(例如2词的短语)。
返回图4,在生成令牌414之后,表示引擎406可以确定令牌414 和对应于搜索输入412的关键词的表示416。例如,令牌引擎404可 以将关键词和令牌414以及确定表示416的请求发送给表示引擎406。 在一些实施例中,表示引擎406可以通过基于词嵌入模型确定与关键 词和令牌414中的每个令牌相对应的特征向量来确定表示416。如果 关键词和/或任何令牌414包括多词短语,则表示引擎406可以通过对 短语内的各个词的特征向量求平均来确定短语的特征向量。
匹配引擎408可以基于表示416确定匹配418。在一些示例中, 匹配418可以包括表示416内的与关键词的表示至少具有预定的相似 度的表示。匹配引擎408可以以各种方式确定表示之间的相似性。在 一些情况下,匹配引擎408可以通过确定对应于向量空间内的表示的 特征向量之间的距离来确定两个表示是否相似。匹配引擎408可以使 用任何类型或形式的距离或相似性测量(诸如余弦相似性测量、欧几 里德距离测量或其他基于相似性的测量)来确定该距离。在一些情况 下,匹配引擎408可以使用相同的相似性或距离测量来确定关键词的 表示与令牌414的每个表示之间的距离。在一个实施例中,然后,匹 配引擎408可以通过标识与关键词具有高于阈值相似性的令牌来确定 匹配418。作为说明性示例,如果匹配引擎408将相似性测量确定为 0与1之间的值,其中接近1的值指示高相似性,接近0的数字指示 低相似性,则匹配引擎408可以通过标识具有至少0.4、0.5等的相似 性测量的令牌来确定匹配418。附加地或备选地,匹配引擎408可以 通过标识最类似于关键词的预定数量的令牌(诸如4或5个令牌)或 令牌的预定百分比(诸如1%或5%)来确定匹配418。
在确定匹配项418之后,匹配引擎408可以将匹配418发送给输 出引擎410。然后,输出引擎410可以显示匹配418的指示(对应于 搜索输出420)。匹配引擎408可以在显示电子文档的用户界面内或 在附加用户界面内显示搜索输出420。例如,匹配引擎408可以通过填充词搜索用户界面来显示搜索输出420,在词搜索用户界面中向搜 索输入412提供对应于匹配418的词。在另一示例中,匹配引擎408 可以包括用户界面内的在电子文档顶部或旁边被显示的词。在其他示 例中,匹配引擎408可以突出显示电子文档内的词的全部或一部分。 例如,匹配引擎408可以突出显示匹配418的每个实例,以使得语义 匹配418在用户查看或滚动浏览电子文档时对用户可见。
图6A和图6B图示了显示匹配指示的词搜索用户界面的示例。具 体地,图6A包括词搜索用户界面602,该词搜索用户界面602包括 用户已在其中录入对应于词“vehicle”的关键词606的搜索栏604。 在该示例中,匹配引擎408确定对应于关键词606的匹配610,并且输出引擎410在词搜索用户界面602内显示匹配610的指示。在一些 情况下,输出引擎410可以指示被包括在电子文档内的匹配610中的 每个匹配的数量。附加地或备选地,输出引擎410可以将匹配610的 指示配置为当用户点击或以其他方式选择指示时将用户引导至匹配610的在电子文档内的地点的链接。在一些示例中,输出引擎410还 可以在词搜索用户界面602内包括对应于关键词606的字符串匹配 608。字符串匹配608可以表示电子文档内的包括对应于关键词606 的字符串的词。字符串匹配608可以由语义搜索系统400或由显示电子文档的应用实现的另一搜索系统确定。显示字符串匹配608的指示 可以增加被提供给用户的搜索结果的潜在有用性。如图6A中所示出, 字符串匹配608的指示可以被显示在“完全匹配”报头下,并且匹配 610的指示可以被显示在“建议”报头下。作为词搜索用户界面的附加说明性示例,图6B包括词搜索用户界面612,该词搜索用户界面 显示搜索栏616内的关键词614以及字符串匹配618和对应于关键词 614的匹配620。
图7图示了用于执行语义文本搜索的示例性语义搜索系统700。 具体地,图7图示了当终端用户设备702和服务器704执行用于语义 文本搜索的所公开的方法时终端用户设备702与服务器704之间的示 例性通信。在一个实施例中,终端用户设备702可以包括个人计算机、 膝上型电脑、移动设备或运行显示电子文档的应用的其他类型的终端 用户设备。应用可以被配置有语义搜索系统400的一个或多个引擎, 诸如检测引擎402、令牌引擎404和输出引擎410。服务器704可以 包括位于终端用户设备702远程或外部的应用服务器。例如,终端用 户设备和服务器704可以经由网络进行通信。在一些情况下,服务器 704可以被配置有语义搜索系统400的一个或多个引擎,诸如表示引 擎406和/或匹配引擎408。服务器704还可以被配置有语义搜索系统 300的一个或多个引擎,诸如训练引擎302和/或输出引擎304。然而, 语义搜索系统300和400的引擎可以跨终端用户设备702和/或服务器 704以任何组合来实现,包括在单个设备上被实现。
在图7中所示出的步骤706处,终端用户设备702接收关键词。 例如,终端用户设备702可以检测对应于关键词的一个或多个字符的 输入。在一些情况下,终端用户设备702可以确定接收到关键词表示 确定电子文档内的相关文本的请求。在步骤708处,终端用户设备702 生成电子文档的令牌。生成令牌可以在接收到关键词之前或之后的任 一点被执行。例如,终端用户设备702可以响应于电子文档被打开或 响应于检测到对应于打开词搜索用户界面的输入来生成令牌。
在步骤710处,终端用户设备702将关键词和令牌发送给服务器 704。在步骤712处,服务器704生成对应于关键词和令牌的特征向 量。服务器704可以使用由服务器704训练和/或存储的词嵌入模型来 生成特征向量。在步骤714处,服务器704确定特征向量之间的距离。 例如,服务器704可以确定对应于关键词的特征向量与对应于令牌的 每个特征向量之间的距离或相似性。在步骤716处,服务器704基于 邻近的特征向量来确定对应于关键词的匹配。具体地,服务器704可 以标识对应于特征向量的令牌,这些特征向量与表示关键词的特征向 量至少具有预定的相似性程度。在步骤718处,服务器704可以将匹 配返回给终端用户设备702,以使得终端用户设备702可以显示匹配 的指示(例如在词搜索用户界面内)。
图7中被图示为对特定设备执行的步骤仅仅是示例,并且许多变 型是可能的。例如,终端用户设备702可以将电子文档的全部内容发 送给服务器704,并指示服务器704生成令牌。附加地或备选地,终 端用户设备702可以生成对应于令牌的特征向量,或执行实现词嵌入 模型的任何附加部分。
在一些情况下,可能难以确定用户何时录入了完整的关键词。例 如,在用户录入关键词“最大(maximum)”的时间点,搜索系统可 以检测对应于“最大(max)”的输入。搜索系统没有意识到用户打 算扩展关键词。因此,搜索系统可以基于关键词“最大(max)”执 行初始搜索,并且然后一旦已经录入“最大(maximum)”就执行后 续搜索。如果首次搜索中所使用的关键词对应于用户的预期输入,则 执行这种初始搜索可以支持快速搜索时间。然而,如果需要进行多次 搜索(例如,由于用户缓慢键入或录入长的关键词),则执行搜索可 能会浪费带宽和处理能力。因此,所公开的语义搜索系统可以检测、 估计和/或预测用户已经完成录入关键词的时间并且在该时间执行语 义文本搜索。例如,参考图4的语义搜索系统400,检测引擎402可 以基于监测对应于搜索的输入来确定适当的时间来将关键词和令牌列表发送给词嵌入模型。令牌引擎404可以在适当的时间将关键词和 令牌列表发送给词嵌入模型。
图8图示了用于向实现词嵌入模型的语义搜索服务发送关键词和 令牌的示例性过程800。在过程800的步骤802处,检测引擎402检 测对应于关键词的字符的输入。例如,检测引擎402可以检测所录入 的初始字符和每个后续字符。在步骤804处,检测引擎402确定关键 词的当前字符数是否满足字符阈值(例如字符阈值数)。字符阈值可 以是2个、3个、4个或任何适合数量的字符。虽然高阈值可能会导 致较少的对语义搜索服务的不必要调用,但是过高的阈值可能会减慢 或阻碍搜索(例如,如果完整的关键词不满足阈值)。如果检测引擎 402确定关键词不满足字符阈值,则检测引擎402可以继续监测对应 于搜索关键词的字符的输入。如果检测引擎402确定关键词满足字符 阈值(或检测到对应于关键词的完整输入,诸如用户按了“回车 (enter)”),则过程800行进到步骤806。
在步骤806处,检测引擎402确定是否在时间阈值内输入了关键 词的新字符。在一些情况下,未能在时间阈值内检测到新输入可能指 示用户已完成(或可能已完成)录入关键词。时间阈值可以是100毫 秒、200毫秒、300毫秒或任何适合的时间量。虽然高时间阈值可能 会减少对语义搜索服务的不必要的调用,但太高的阈值可能会不必要 地增加搜索延迟。如果检测引擎402确定在时间阈值内输入了新字符, 则检测引擎402可以继续监测对应于关键词的字符的输入。例如,检 测引擎402可以重置计时器,该计时器计数到时间阈值。如果检测引 擎402确定在时间阈值内未输入新字符,则过程800行进到步骤808。 在步骤808处,令牌引擎404将关键词和令牌集合发送给语义搜索服 务。如果检测引擎402在关键词和令牌集合被发送给语义搜索服务之 后检测到对应于关键词的新字符的输入,则令牌引擎404可以发送更 新后的关键词。图8中所图示的步骤仅是示例,并且可以使用任何类型或形式的阈值或其他决策机制来确定何时已完全录入关键词。
如上文所提及,令牌引擎404可以在用户与电子文档交互的任一 点时(诸如当文档被打开时和/或当用户启动词搜索用户界面时)开始 生成令牌集合。如果当检测引擎402确定关键词完整时(例如,响应 于在步骤806处确定为“否”),令牌引擎404尚未完成令牌集合的 生成,则令牌引擎404可以将部分令牌集合(例如到目前为止已生成 的令牌)发送给语义搜索服务。在已经生成附加令牌之后(例如,在 令牌集合完整之后),令牌引擎404可以发送附加令牌。如果语义搜 索服务没有存储先前发送的令牌和/或关键词(例如,出于隐私或安全 目的),则令牌引擎404可以重新发送每个令牌和关键词。在一些情 况下,语义搜索服务可以返回对应于部分令牌集合的初始搜索结果, 并且然后响应于接收到后续令牌集合而返回后续搜索结果。输出引擎 410可以显示初始搜索结果,并且然后在返回更多结果时更新所显示 的搜索结果。虽然初始搜索结果可能不完整,但它们仍可能经常对用 户相关或有帮助。因此,以此方式“流式传输”语义搜索结果可以支 持快速向用户提供高质量的语义搜索结果。
图9图示了示例性表902,该表指示执行所公开的语义文本搜索 技术所涉及的时间和数据量。具体地,表902指示用于包括各种页数 的文档的语义搜索的令牌生成时间、令牌有效负载和总搜索时间。在 一些情况下,在终端用户设备而不是实现词嵌入模型的服务器上生成 令牌集合可能会减少被发送给服务器的数据量(对应于令牌有效负 载)。另外,在终端用户设备上生成令牌可以减少服务器的处理负荷, 这可以减少总搜索时间。
现在将描述使用本文中所描述的技术执行的过程的示例。图10 是图示用于所公开的语义文本搜索技术的过程1000的示例的流程图。 在框1002处,过程1000包括检测对应于定位电子文档内的与输入中 所包括的关键词相关联的文本的请求的输入。在一些情况下,过程 1000可以包括监测被提供给词搜索用户界面的输入。例如,过程1000 可以包括检测提示应用显示电子文档以打开词搜索用户界面的输入。 在这种示例中,可以从词搜索用户界面接收到包括关键词的输入。
在框1004处,过程1000包括生成电子文档的令牌(例如唯一令 牌)集合,每个令牌对应于电子文档内的一个或多个字符串。可以响 应于检测到对应于定位在电子文档内的与关键词相关联的文本的请 求的输入、或在任何其他时间生成令牌集合。在一些示例中,令牌集 合可以由显示电子文档的终端用户设备生成或在该终端用户设备上 生成。令牌集合可以被发送或转发给终端用户设备外部的实现机器学 习系统的服务器。在一些示例中,对应于定位电子文档内的与关键词 相关联的文本的请求的输入包括关键词的一部分。(例如从终端用户 设备向机器学习系统)发送确定电子文档内的与关键词相关联的一个 或多个令牌的请求可以包括:发送确定电子文档内的与关键词的部分 相关联的一个或多个令牌的请求。(例如在终端用户设备处从机器学 习系统)基于请求接收电子文档内的与关键词相关联的至少一个字符 串可以包括:接收电子文档内的与关键词的部分相关联的至少一个字 符串。过程1000可以包括检测对应于整个关键词的输入并且(例如 从终端用户设备向机器学习系统)发送确定电子文档内的与整个关键 词相关联的一个或多个令牌的附加请求。过程1000可以(例如在客 户端设备处从机器学习系统)基于附加请求接收电子文档内的与整个 关键词相关联的至少一个附加字符串。
在框1006处,过程1000包括将关键词和令牌集合发送给机器学 习系统。机器学习系统生成关键词的表示和唯一令牌集合内的每个令 牌的表示。在一些示例中,机器学习系统使用被训练以将词的语义含 义映射到特征向量的词嵌入模型来生成特征向量。如本文中所指出, 基于字符串相对于其他字符串的上下文用法来生成字符串(例如一个 或多个词、短语、一个或多个字符或其他文本字符串)的表示。在一 些情况下,表示可以包括在向量空间内所确定的特征向量。具有相似 的语义含义和/或上下文用法的字符串(例如词)可以对应于向量空间 内彼此邻近定位的特征向量,并且具有不相似的语义含义和/或上下文用法的字符串可以对应于向量空间内彼此远离定位的特征向量。例 如,在训练数据中具有相似上下文用法的词的特征向量一起在向量空 间内比在训练数据中具有不相似上下文用法的词的特征向量更近。
在一些示例中,对应于定位电子文档内的与关键词相关联的文本 的请求的输入包括关键词的字符数。例如,字符数可以包括词的所有 字符的部分字符集合(例如针对词“间谍活动(espionage)”的 “espion”)。在一些情况下,过程1000包括响应于确定关键词的字 符数超过阈值数,来将关键词和令牌集合发送给机器学习系统。例如, 阈值数的字符可以包括三个字符,在这种情况下,过程1000可以响 应于检测到词的三个字符已被录入(例如,被录入到词搜索用户界面 中),而发送关键词和令牌集合。在一些示例中,过程1000可以包 括检测对应于关键词的至少一个附加字符的输入并将包括附加字符 的关键词发送给机器学习系统。过程1000可以基于包括附加字符的 关键词从机器学习系统接收电子文档内的与关键词相关联的至少一 个附加字符串。在一些示例中,过程1000包括响应于确定对应于关 键词的附加字符的输入在对应于关键词的最近提供的字符的输入(例 如输入到词搜索用户系统中)的检测之后的阈值时间段内尚未被检测 到,而将关键词和令牌集合发送给机器学习系统。例如,阈值时间段 可以包括五秒钟,在这种情况下,过程1000可以响应于检测到自从 对应于关键词的最近提供的字符的输入以来已经过去了五秒钟,而发 送关键词和令牌集合。
在一些示例中,生成用于确定字符串的表示的模型可以包括训练 模型以确定对应于向量空间内的字符串的特征向量。如本文中所述, 在训练数据中具有相似上下文用法的字符串的特征向量一起在向量 空间内比在训练数据中具有不相似上下文用法的字符串的特征向量 更近。
在一些示例中,过程1000可以包括在生成电子文档的完整令牌 集合之前转发电子文档的部分令牌集合。例如,机器学习系统可以基 于部分令牌集合来确定电子文档内的与关键词相关联的至少一个初 始词。过程1000可以包括一旦生成完整令牌集合,就转发完整令牌 集合。在这种示例中,机器学习系统可以基于完整令牌集合来确定电 子文档内的与关键词相关联的至少一个附加词。
在框1008处,过程1000包括从机器学习系统接收电子文档内的 与关键词相关联的至少一个字符串(例如至少一个词、短语等)。至 少一个字符串基于关键词的表示与对应于至少一个字符串的令牌的 表示至少具有阈值相似性而与关键词相关联。在一些情况下,机器学 习系统通过确定对应于关键词的特征向量与对应于令牌集合内的每 个令牌的特征向量之间的距离测量,来确定关键词的表示与令牌集合 内的每个令牌的每个表示之间的相似性。例如,机器学习系统可以基 于对应于至少一个字符串的特征向量距对应于向量空间内的关键词 的特征向量小于阈值距离,来确定至少一个字符串(例如词等)与关 键词相关联。在一些情况下,与关键词相关联的至少一个字符串不包 括对应于关键词的字符串。例如,至少一个字符串可以包括与关键词 的字符不同的字符(例如字母)(例如,关键词可以包括词“间谍 (spy)”,并且至少一个字符串可以包括词“间谍(espionage)”)。
在框1010处,过程1000包括输出与关键词相关联的至少一个词 的指示。在一些情况下,输出指示包括在词搜索用户界面内显示至少 一个字符串(例如词、短语等)。在一些示例中,输出与关键词相关 联的至少一个字符串的指示包括:突出显示电子文档内的至少一个字 符串的每个实例。在一些示例中,输出与关键词相关联的至少一个字 符串的指示包括:在用户界面内显示至少一个字符串,用户经由该用 户界面提供了对应于关键词的输入(例如在词搜索用户界面中)。过 程1000可以确定并输出与关键词相关的任何数量的字符串的指示。 例如,过程1000包括确定电子文档内的至少一个附加字符串包括对 应于关键词的字符串,并且输出至少一个附加字符串的附加指示。
在一些示例中,本文中所描述的过程(例如本文中所描述的过程 800、过程1000和/或其他过程)可以由计算设备或装置(诸如具有图 11中所示出的计算设备架构1100的计算设备)执行。在一个示例中, 过程800和/或过程1000可以由具有实现语义搜索系统300、400和/ 或500的计算设备架构1100的计算设备执行。计算设备可以包括任 何适合的设备,诸如移动设备(例如移动电话)、台式计算设备、平 板计算设备、可穿戴式设备、服务器(例如在软件即服务(SaaS)系 统或其他基于服务器的系统中)、和/或具有执行本文中所描述的过程 (包括过程800和/或过程1000)的资源能力的任何其他计算设备。 在一些情况下,计算设备或装置可以包括各种组件,诸如一个或多个 输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微 处理器、一个或多个微型计算机和/或被配置成实行本文中所描述的过 程步骤的其他组件。在一些示例中,计算设备可以包括显示器(作为 输出设备的示例或除了输出设备之外),被配置成传达和/或接收数据 的网络接口、其任何组合和/或(多个)其他组件。网络接口可以被配 置成传达和/或接收基于因特网协议(IP)的数据或其他类型的数据。
计算设备的组件可以在电路系统中被实现。例如,组件可以包括 电子电路或其他电子硬件和/或可以使用电子电路或其他电子硬件来 实现,这些电子电路或其他电子硬件可以包括一个或多个可编程电子 电路(例如微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、 中央处理单元(CPU)和/或其他适合的电子电路),和/或可以包括 计算机软件、固件或其任何组合和/或使用计算机软件、固件或其任何 组合来实现以执行本文中所描述的各种操作。
过程800和1000被图示为逻辑流程图,其操作表示可以以硬件、 计算机指令或其组合来实现的一系列操作。在计算机指令的上下文 中,操作表示被存储在一个或多个计算机可读存储介质上的计算机可 执行指令,这些计算机可执行指令在由一个或多个处理器执行时执行 所叙述的操作。通常,计算机可执行指令包括执行特定功能或实现特 定数据类型的例程、程序、对象、组件、数据结构等。这些操作被描 述的顺序不旨在被解释为是限制性的,并且所描述的任何数量的操作 都可以按照任何顺序组合和/或可以并行地实现这些过程。
附加地,本文中所描述的过程可以在被配置有可执行指令的一个 或多个计算机系统的控制下被执行,并且可以被实现为通过硬件或其 组合在一个或多个处理器上共同地执行的代码(例如可执行指令、一 个或多个计算机程序或一个或多个应用)。如上所述,代码可以例如 以包括由一个或多个处理器可执行的多个指令的计算机程序的形式 被存储在计算机可读或机器可读存储介质上。计算机可读或机器可读 存储介质可以是非瞬态的。
图11图示了可以实现本文中所描述的各种技术的示例计算设备 的示例计算设备架构1100。例如,计算设备架构1100可以实现分别 在图3、图4和图6中所示出的语义搜索系统300、400和/或600。示 出了使用连接1105(诸如总线)彼此电通信的计算设备架构1100的组件。示例计算设备架构1100包括处理器1110(例如CPU或其他处 理单元)和计算设备连接1105,该计算设备连接将包括计算设备存储 器1115的各种计算设备组件(诸如只读存储器(ROM)1120和随机 存取存储器(RAM)1125)耦合到处理器1110。
计算设备架构1100可以包括与处理器1110直接连接、紧邻或整 合为其一部分的高速存储器的高速缓存。计算设备架构1100可以将 数据从存储器1115和/或存储设备1130复制到高速缓存1112,以供 处理器1110快速访问。以此方式,高速缓存可以提供性能提升,从 而避免了处理器1110在等待数据时的延迟。这些和其他模块可以控 制或被配置成控制处理器1110执行各种动作。其他计算设备存储器 1115也可以可供使用。存储器1115可以包括具有不同性能特性的多 种不同类型的存储器。处理器1110可以包括任何通用处理器和硬件 或软件服务,诸如被存储在存储设备1130中、被配置成控制处理器 1110以及软件指令已被合并到处理器设计中的专用处理器的服务1 1132、服务2 1134和服务3 1136。处理器1110可以是包含多个核或 处理器、总线、存储器控制器、高速缓存等的独立系统。多核处理器 可以是对称的或非对称的。
为了使得用户能够与计算设备架构1100进行交互,输入设备1145 可以表示任何数量的输入机制,诸如用于演讲的麦克风、用于手势或 图形输入的触敏屏幕、键盘、鼠标、运动输入、演讲等。输出设备1135 也可以是本领域的技术人员已知的多个输出机制中的一个或多个输 出机制,诸如显示器、投影仪、电视、扬声器设备等。在一些情况下, 多模式计算设备可以使得用户能够提供多种类型的输入以与计算设 备架构1100通信。通信接口1140通常可以支配和管理用户输入和计 算设备输出。对在任何特定硬件布置上进行操作没有约束,并且因此, 随着它们的发展,此处的基本特征可以容易地代替改进的硬件或固件 布置。
存储设备1130是非易失性存储器,并且可以是硬盘或其他类型 的计算机可读介质,它们可以存储由计算机可访问的数据,诸如磁带 盒、闪速存储器卡、固态存储器设备、数字多功能磁盘、盒式磁带、 随机存取存储器(RAM)1125、只读存储器(ROM)1120和其混合。存储设备1130可以包括用于控制处理器1110的服务1132、1134、 1136。可以构想其他硬件或软件模块。存储设备1130可以被连接到 计算设备连接1105。在一方面,执行特定功能的硬件模块可以包括与 必要的硬件组件(诸如处理器1110、连接1105、输出设备1135等) 结合地被存储在计算机可读介质中以实行功能的软件组件。
术语“计算机可读介质”包括但不限于便携式或非便携式存储设 备、光学存储设备、以及能够存储、包含或携带(多个)指令和/或数 据的各种其他介质。计算机可读介质可以包括可以存储数据并且不包 括无线或通过有线连接传播的载波和/或瞬态电子信号的非瞬态介质。 非瞬态介质的示例可以包括但不限于磁盘或磁带、光学存储介质(诸 如压缩盘(CD)或数字多功能磁盘(DVD))、闪速存储器、存储 器或存储器设备。计算机可读介质可以在其上已经存储有代码和/或机 器可执行指令,这些代码和/或机器可执行指令可以表示规程、功能、 子程序、程序、例程、子例程、模块、软件包、类别、或者指令、数 据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、 数据、自变量、参数或存储器内容而被耦合到另一代码段或硬件电路。 可以经由包括存储器共享、消息传递、令牌传递、网络传输等的任何 适合手段来传递、转发或传输信息、自变量、参数、数据等。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括 包含比特流等的电缆或无线信号。然而,当被提及时,非瞬态计算机 可读存储介质明确地排除介质,诸如能量、载波信号、电磁波和信号 本身。
在上文描述中提供了具体细节以提供对本文中所提供的实施例 和示例的透彻理解。然而,本领域的普通技术人员将理解,可以在没 有这些具体细节的情况下实践实施例。为解释清楚起见,在一些情况 下,本文的技术可以被呈现为包括各个功能块,这些功能块包括在以 软件或硬件和软件的组合被实施的方法中包括设备、设备组件、步骤 或例程的功能块。除了在附图中示出和/或在本文中描述的组件以外, 还可以使用附加组件。例如,电路、系统、网络、过程和其他组件可 以被示出为呈框图形式的组件,以便不会在不必要的细节上使实施例 混淆。在其他情况下,可以示出公知的电路、过程、算法、结构和技 术而没有不必要的细节,以便避免使实施例混淆。
各个实施例可以在上文被描述为被描绘为流程图、流程示意图、 数据流程图、结构图或框图的过程或方法。尽管流程图可以将操作描 述为顺序过程,但是许多操作可以并行或同时被执行。另外,可以重 新布置操作的顺序。当过程的操作被完成时,该过程被终止,但可能 会有图中未包括的附加步骤。过程可以对应于方法、函数、规程、子 例程、子程序等。当过程对应于函数时,其终止可以对应于函数返回 到调用函数或主函数。
根据上文所描述的示例的过程和方法可以使用被存储在计算机 可读介质中或以其他方式从计算机可读介质中可获得的计算机可执 行指令来实现。这种指令可以包括例如引起或以其他方式配置通用计 算机、专用计算机或处理设备以执行特定函数或函数组的指令和数 据。所使用的计算机资源的各部分可以通过网络可访问。计算机可执 行指令可以是例如二进制文件、中间格式指令,诸如汇编语言、固件、 源代码等。可以被用于存储指令、所使用的信息和/或在根据所描述示 例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、 闪速存储器、被设置有非易失性存储器的USB设备、联网存储设备等。
实现根据这些公开内容的过程和方法的设备可以包括硬件、软 件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以 采用多种形式因子中的任一种形式因子。当以软件、固件、中间件或 微代码来实现时,用以执行必要任务的程序代码或代码段(例如计算 机程序产品)可以被存储在计算机可读或机器可读介质中。(多个) 处理器可以执行必要的任务。形式因子的典型示例包括膝上型电脑、 智能电话、移动电话、平板电脑设备或其他小的形式因子的个人计算 机、个人数字助理、机架安装设备、独立运行的设备等。本文中所描 述的功能性也可以在外围设备或附加卡中被实施。通过其他示例,这 种功能性还可以在单个设备中执行的不同芯片或不同过程当中在电 路板上被实现。
指令、用于传达这种指令的介质、用于执行这些指令的计算资源 和用于支持这种计算资源的其他结构是用于提供本公开中所描述的 功能的示例部件。
在前述描述中,参考本申请的具体实施例描述了本申请的各方 面,但是本领域的技术人员将认识到,本申请不限于此。因此,虽然 本文中已经详细描述了本申请的说明性实施例,但应理解,可以以其 他方式不同地实施和采用本发明构思,并且除了受现有技术限制外, 所附权利要求书旨在被解释为包括这种变型。上文所描述的申请的各 种特征和方面可以被单独或联合地使用。进一步地,在不脱离本说明 书的更广泛的精神和范围的情况下,实施例可以在除本文中所描述的 环境和应用之外的任何数量的环境和应用中被利用。因此,说明书和 附图被认为是说明性的而不是约束性的。出于说明的目的,以特定顺序描述了方法。应当了解,在交替实施例中,可以以与所描述的顺序 不同的顺序来执行方法。
本领域的普通技术人员将了解,在不脱离本说明书的范围的情况 下,本文中所使用的小于(“<”)和大于(“>”)符号或术语可以 分别用小于或等于(“≤”)和大于或等于(“≥”)符号替换。
在将组件描述为“被配置成”执行某些操作的情况下,可以例如 通过设计电子电路或其他硬件以执行操作、通过对可编程电子电路 (例如微处理器或其他适合的电子电路)进行编程以执行操作或其任 何组合来实现这种配置。
短语“被耦合到”是指直接或间接物理连接到另一组件的任何组 件和/或与另一组件直接或间接通信(例如,通过有线或无线连接和/ 或其他适合的通信接口被连接到另一组件)的任何组件。
引用集合“中的至少一个”和/或集合中的“一个或多个”的权利 要求语言或其他语言指示集合中的一个成员或集合中的多个成员(以 任何组合)满足权利要求。例如,引用“A和B中的至少一个”或“A 或B中的至少一个”的权利要求语言意味着A、B或A和B。在另一示例中,引用“A、B和C中的至少一个”或“A、B或C中的至少 一个”的权利要求语言意味着A、B、C、或A和B、或A和C、或B 和C、或A和B和C。语言集合“中的至少一个”和/或集合中的“一 个或多个”并不将集合限制于该集合中所列出的项。例如,引用“A 和B中的至少一个”或“A或B中的至少一个”的权利要求语言可以 意味着A、B或A和B,并且可以附加地包括未在A和B的集合中列 出的项。
结合本文中所公开的实施例描述的各种说明性的逻辑块、模块、 电路和算法步骤可以被实现为电子硬件、计算机软件、固件或其组合。 为了清楚地说明硬件和软件的该可互换性,上文已经依据其功能性大 体地对各种说明性组件、块、模块、电路和步骤进行了描述。是否将 这种功能性实现为硬件或软件取决于被强加在整体系统上的特定应 用和设计约束。熟练的技术人员可以针对每个特定应用以各种方式来 实现所描述的功能性,但是这种实现决策不应被解释为导致脱离本申 请的范围。
本文中所描述的技术还可以以电子硬件、计算机软件、固件或其 任何组合来实现。可以在多种设备(诸如通用计算机、无线通信设备 手机或具有多种用途的集成电路设备等)中的任一种设备中实现这种 技术,包括在无线通信设备手机和其他设备中的应用。被描述为模块 或组件的任何特征可以在集成逻辑设备中一起被实现,或被单独地实 现为分立但可互操作的逻辑设备。如果技术在软件中被实现,则这些 技术可以至少部分地由计算机可读数据存储介质(包括程序代码,该 程序代码包括指令,这些指令在被执行时执行上文所描述的方法中的 一种或多种方法)来实现。计算机可读数据存储介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括包装材料。计算机 可读存储介质可以包括存储器或数据存储介质,诸如随机存取存储器 (RAM),诸如同步动态随机存取存储器(SDRAM)、只读存储器 (ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程 只读存储器(EEPROM)、FLASH存储器、磁性或光学数据存储介质 等。附加地或备选地,技术可以至少部分地通过计算机可读通信介质 来实现,该计算机可读通信介质以指令或数据结构的形式携带或传达 程序代码并且可以由计算机访问、读取和/或执行,诸如传播的信号或波。
程序代码可以由处理器(可以包括一个或多个处理器,诸如一个 或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、 现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路系 统)执行。这种处理器可以被配置成执行本公开中所描述的任何技术。 通用处理器可以是微处理器;但是在备选例中,处理器也可以是任何 常规处理器、控制器、微控制器或状态机。处理器也可以被实现为计 算设备的组合,例如DSP和微处理器的组合、多个微处理器、与DSP 核心结合的一个或多个微处理器或任何其他这种配置。因此,如本文 中所使用的术语“处理器”可以指任何前述的结构、前述结构的任何 组合或适用于实现本文中所描述的技术的任何其他结构或装置。

Claims (20)

1.一种用于基于模型的语义文本搜索的方法,包括:
检测输入,所述输入对应于一个请求,所述请求定位电子文档内的与所述输入中所包括的关键词相关联的文本;
从所述电子文档生成令牌集合,每个令牌对应于所述电子文档内的一个或多个字符串;
将所述关键词和所述令牌集合发送给机器学习系统,其中所述机器学习系统生成所述关键词的表示和所述令牌集合内每个令牌的表示,字符串的表示基于所述字符串相对于训练数据中的其他字符串的上下文用法而被生成;
从所述机器学习系统接收所述电子文档内的与所述关键词相关联的至少一个字符串,所述至少一个字符串基于所述关键词的所述表示而与所述关键词相关联,所述表示与对应于所述至少一个字符串的令牌的表示至少具有阈值相似性;以及
输出与所述关键词相关联的所述至少一个字符串的指示。
2.根据权利要求1所述的方法,还包括检测提示显示所述电子文档的应用打开词搜索用户界面的输入,其中包括所述关键词的所述输入从所述词搜索用户界面被接收到。
3.根据权利要求2所述的方法,还包括响应于检测到提示所述应用打开所述词搜索用户界面的所述输入来生成所述电子文档的所述令牌集合。
4.根据权利要求1所述的方法,其中对应于定位所述电子文档内的与所述关键词相关联的文本的所述请求的所述输入包括所述关键词的字符数,并且还包括:
响应于确定所述关键词的所述字符数超过阈值数来将所述关键词和所述令牌集合发送给所述机器学习系统。
5.根据权利要求4所述的方法,还包括:
检测对应于所述关键词的至少一个附加字符的输入;
将包括所述附加字符的所述关键词发送给所述机器学习系统;以及
基于包括所述附加字符的所述关键词,从所述机器学习系统接收所述电子文档内的与所述关键词相关联的至少一个附加字符串。
6.根据权利要求1所述的方法,其中对应于定位所述电子文档内的与所述关键词相关联的文本的所述请求的所述输入包括所述关键词的字符数,并且还包括:
响应于确定对应于所述关键词的附加字符的输入在对应于所述关键词的最近提供的字符的输入的检测之后的阈值时间段内尚未被检测到,将所述关键词和所述令牌集合发送给所述机器学习系统。
7.根据权利要求1所述的方法,其中由所述机器学习系统生成的表示包括在向量空间内被确定的词的特征向量,并且其中在所述训练数据中具有相似上下文用法的词的特征向量一起在所述向量空间内比在所述训练数据中具有不相似上下文用法的词的特征向量更近。
8.根据权利要求7所述的方法,其中所述机器学习系统使用被训练以将词的语义含义映射到特征向量的词嵌入模型来生成所述特征向量。
9.根据权利要求1所述的方法,其中:
生成所述电子文档的所述令牌集合包括在显示所述电子文档的终端用户设备上生成所述令牌集合;并且
将所述令牌集合发送给所述机器学习系统包括将所述令牌集合转发给所述终端用户设备外部的实现所述机器学习系统的服务器。
10.根据权利要求1所述的方法,其中将所述令牌集合发送给所述机器学习系统包括:
在所述电子文档的完整令牌集合被生成之前,转发所述电子文档的部分令牌集合,其中所述机器学习系统基于所述部分令牌集合来确定所述电子文档内的与所述关键词相关联的至少一个初始词;以及
一旦所述完整令牌集合被生成,就转发所述完整令牌集合,其中所述机器学习系统基于所述完整令牌集合来确定所述电子文档内的与所述关键词相关联的至少一个附加词。
11.根据权利要求1所述的方法,其中输出与所述关键词相关联的所述至少一个字符串的所述指示包括:突出显示所述电子文档内的所述至少一个字符串的每个实例。
12.根据权利要求1所述的方法,其中输出与所述关键词相关联的所述至少一个字符串的所述指示包括:在用户界面内显示所述至少一个字符串,用户经由所述用户界面提供了对应于所述关键词的输入。
13.根据权利要求1所述的方法,其中与所述关键词相关联的所述至少一个字符串不包括对应于所述关键词的字符串。
14.根据权利要求13所述的方法,还包括:
确定所述电子文档内的至少一个附加字符串包括对应于所述关键词的所述字符串;以及
输出所述至少一个附加字符串的附加指示。
15.一种被配置用于基于模型的语义文本搜索的终端用户设备,包括:
一个或多个处理器;以及
存储器,所述存储器对所述一个或多个处理器可访问,所述存储器存储指令,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器:
在所述终端用户设备上检测输入,所述输入对应于一个请求,所述请求定位电子文档内的与所述输入中所包括的关键词相关联的文本;
在所述终端用户设备上从所述电子文档生成令牌集合,每个令牌对应于所述电子文档内的一个或多个字符串;
从所述终端用户设备向被托管在所述客户端设备外部的服务器上的机器学习系统发送请求,所述请求基于确定具有表示的令牌来确定所述电子文档内的与所述关键词相关联的一个或多个令牌,所述表示与所述关键词的表示至少具有阈值相似性,字符串的表示基于所述字符串相对于训练数据中的其他字符串的上下文用法而被生成;
在所述终端用户设备处从所述机器学习系统基于所述请求接收所述电子文档内的与所述关键词相关联的至少一个字符串;以及
在所述终端用户设备上显示与所述关键词相关联的所述至少一个字符串的指示。
16.根据权利要求15所述的终端用户设备,其中:
对应于定位所述电子文档内的与所述关键词相关联的文本的所述请求的所述输入包括所述关键词的部分;
从所述终端用户设备向所述机器学习系统发送确定所述电子文档内的与所述关键词相关联的所述一个或多个令牌的所述请求包括:发送确定所述电子文档内的与所述关键词的所述部分相关联的一个或多个令牌的请求;
在所述终端用户设备处基于所述请求从所述机器学习系统接收所述电子文档内的与所述关键词相关联的所述至少一个字符串包括:接收所述电子文档内的与所述关键词的所述部分相关联的至少一个字符串,并且还包括:
检测对应于整个所述关键词的输入;
从所述终端用户设备向所述机器学习系统发送确定所述电子文档内的与整个所述关键词相关联的一个或多个令牌的附加请求;以及
在所述终端用户设备处基于所述附加请求从所述机器学习系统接收所述电子文档内的与整个所述关键词相关联的至少一个附加字符串。
17.一种其上存储有指令的非瞬态计算机可读介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器:
使用机器学习系统生成用于确定字符串的表示的模型,字符串的表示基于所述字符串相对于训练数据中的其他字符串的上下文用法而被生成;
接收定位电子文档内的与关键词相关联的文本和所述电子文档的令牌集合的请求的指示,每个令牌对应于所述电子文档中所包括的至少一个不同的字符串;
使用所述模型生成所述关键词的表示和所述令牌集合内的每个令牌的表示;
确定所述关键词的所述表示与所述令牌集合内的每个令牌的每个表示之间的相似性;以及
基于所述关键词的所述表示与对应于所述电子文档内的与所述关键词相关联的至少一个字符串的令牌的表示至少具有阈值相似性,来确定所述至少一个字符串。
18.根据权利要求17所述的非瞬态计算机可读介质,其中生成用于确定字符串的表示的所述模型包括:训练所述模型以确定对应于向量空间内的字符串的特征向量,在所述训练数据中具有相似上下文用法的字符串的特征向量一起在所述向量空间内比在所述训练数据中具有不相似上下文用法的字符串的特征向量更近。
19.根据权利要求18所述的非瞬态计算机可读介质,其中确定所述关键词的所述表示与所述令牌集合内的每个令牌的每个表示之间的所述相似性包括:确定对应于所述关键词的特征向量与对应于所述令牌集合内的每个令牌的特征向量之间的距离测量。
20.根据权利要求17所述的非瞬态计算机可读介质,还包括输出与所述关键词相关联的所述至少一个字符串的指示。
CN202110125326.7A 2020-04-15 2021-01-29 基于模型的语义文本搜索 Pending CN113590739A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/849,885 US11567981B2 (en) 2020-04-15 2020-04-15 Model-based semantic text searching
US16/849,885 2020-04-15

Publications (1)

Publication Number Publication Date
CN113590739A true CN113590739A (zh) 2021-11-02

Family

ID=74865460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110125326.7A Pending CN113590739A (zh) 2020-04-15 2021-01-29 基于模型的语义文本搜索

Country Status (5)

Country Link
US (2) US11567981B2 (zh)
CN (1) CN113590739A (zh)
AU (1) AU2021200962B2 (zh)
DE (1) DE102021000736A1 (zh)
GB (1) GB2594129A (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11383173B2 (en) * 2020-08-03 2022-07-12 Roblox Corporation Automatically generated search suggestions
US11663407B2 (en) * 2020-12-02 2023-05-30 International Business Machines Corporation Management of text-item recognition systems
US11798549B2 (en) * 2021-03-19 2023-10-24 Mitel Networks Corporation Generating action items during a conferencing session
US20220366138A1 (en) * 2021-05-17 2022-11-17 Microsoft Technology Licensing, Llc Rule-based machine learning classifier creation and tracking platform for feedback text analysis
US20220414128A1 (en) * 2021-06-23 2022-12-29 Servicenow Canada Inc. Method and system for interactive searching based on semantic similarity of semantic representations of text objects
CN113836918A (zh) * 2021-09-29 2021-12-24 天翼物联科技有限公司 文档搜索方法、装置、计算机设备及计算机可读存储介质
TWI799008B (zh) * 2021-12-16 2023-04-11 凌華科技股份有限公司 查詢導向之事件辨識系統及方法
CN113934835B (zh) * 2021-12-16 2022-03-25 之江实验室 结合关键词和语义理解表征的检索式回复对话方法及系统
US20230195819A1 (en) * 2021-12-20 2023-06-22 Home Depot Product Authority, Llc Machine learning-based user selection prediction based on sequence of prior user selections

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106796608A (zh) * 2014-11-20 2017-05-31 甲骨文国际公司 上下文搜索字符串同义词的自动生成
US20170315998A1 (en) * 2013-09-17 2017-11-02 International Business Machines Corporation Active Knowledge Guidance Based on Deep Document Analysis
US20180052928A1 (en) * 2016-08-16 2018-02-22 Ebay Inc. Semantic forward search indexing of publication corpus

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6946715B2 (en) * 2003-02-19 2005-09-20 Micron Technology, Inc. CMOS image sensor and method of fabrication
US7440947B2 (en) * 2004-11-12 2008-10-21 Fuji Xerox Co., Ltd. System and method for identifying query-relevant keywords in documents with latent semantic analysis
US7827125B1 (en) * 2006-06-01 2010-11-02 Trovix, Inc. Learning based on feedback for contextual personalized information retrieval
US9984068B2 (en) * 2015-09-18 2018-05-29 Mcafee, Llc Systems and methods for multilingual document filtering
US10346727B2 (en) * 2016-10-28 2019-07-09 Adobe Inc. Utilizing a digital canvas to conduct a spatial-semantic search for digital visual media
US10599771B2 (en) * 2017-04-10 2020-03-24 International Business Machines Corporation Negation scope analysis for negation detection
US10810266B2 (en) 2017-11-17 2020-10-20 Adobe Inc. Document search using grammatical units
US11074486B2 (en) 2017-11-27 2021-07-27 International Business Machines Corporation Query analysis using deep neural net classification
WO2020091829A1 (en) * 2018-10-30 2020-05-07 Google Llc Automatic hyperlinking of documents
US11308320B2 (en) * 2018-12-17 2022-04-19 Cognition IP Technology Inc. Multi-segment text search using machine learning model for text similarity
US11222183B2 (en) * 2020-02-14 2022-01-11 Open Text Holdings, Inc. Creation of component templates based on semantically similar content

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170315998A1 (en) * 2013-09-17 2017-11-02 International Business Machines Corporation Active Knowledge Guidance Based on Deep Document Analysis
CN106796608A (zh) * 2014-11-20 2017-05-31 甲骨文国际公司 上下文搜索字符串同义词的自动生成
US20180052928A1 (en) * 2016-08-16 2018-02-22 Ebay Inc. Semantic forward search indexing of publication corpus

Also Published As

Publication number Publication date
US11567981B2 (en) 2023-01-31
AU2021200962B2 (en) 2022-06-09
US20210326371A1 (en) 2021-10-21
GB202101238D0 (en) 2021-03-17
GB2594129A (en) 2021-10-20
US20230133583A1 (en) 2023-05-04
AU2021200962A1 (en) 2021-11-04
DE102021000736A1 (de) 2021-10-21

Similar Documents

Publication Publication Date Title
AU2021200962B2 (en) Model-based semantic text searching
JP7398402B2 (ja) 実体リンキング方法、装置、電子機器、記憶媒体およびコンピュータプログラム
CN108369580B (zh) 针对屏幕上项目选择的基于语言和域独立模型的方法
US10936821B2 (en) Testing and training a question-answering system
US20180341871A1 (en) Utilizing deep learning with an information retrieval mechanism to provide question answering in restricted domains
US10073840B2 (en) Unsupervised relation detection model training
WO2019133903A1 (en) Generating command-specific language model discourses for digital assistant interpretation
US10896222B1 (en) Subject-specific data set for named entity resolution
US10997223B1 (en) Subject-specific data set for named entity resolution
US11907671B2 (en) Role labeling method, electronic device and storage medium
US11423089B2 (en) System and method for determining application programming interface and object bindings on natural language processed inputs
US10885281B2 (en) Natural language document summarization using hyperbolic embeddings
WO2019133856A2 (en) Automated discourse phrase discovery for generating an improved language model of a digital assistant
WO2019133895A2 (en) Automated document cluster merging for topic-based digital assistant interpretation
JP2023519713A (ja) 自然言語処理のためのノイズデータ拡張
US20220365956A1 (en) Method and apparatus for generating patent summary information, and electronic device and medium
CN116615727A (zh) 用于自然语言处理的关键词数据扩充工具
CN111984774A (zh) 搜索方法、装置、设备以及存储介质
US11087098B2 (en) Computer systems for classifying multilingual text
US20170124090A1 (en) Method of discovering and exploring feature knowledge
US20200110834A1 (en) Dynamic Linguistic Assessment and Measurement
US11048887B1 (en) Cross-language models based on transfer learning
CN112329429A (zh) 文本相似度学习方法、装置、设备以及存储介质
US9223833B2 (en) Method for in-loop human validation of disambiguated features
KR20230148561A (ko) 문서 요약 방법 및 시스템

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination