CN106796608B - 上下文搜索字符串同义词的自动生成 - Google Patents

上下文搜索字符串同义词的自动生成 Download PDF

Info

Publication number
CN106796608B
CN106796608B CN201580055078.6A CN201580055078A CN106796608B CN 106796608 B CN106796608 B CN 106796608B CN 201580055078 A CN201580055078 A CN 201580055078A CN 106796608 B CN106796608 B CN 106796608B
Authority
CN
China
Prior art keywords
synonym
phrase
reserved
list
matching
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.)
Active
Application number
CN201580055078.6A
Other languages
English (en)
Other versions
CN106796608A (zh
Inventor
F·诺兹
C·奇斯格
G·克鲁斯特曼
J·拉施拉斯
A·D·E·委德拉尔
S·尼斯瓦
M·扎拉芬
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN106796608A publication Critical patent/CN106796608A/zh
Application granted granted Critical
Publication of CN106796608B publication Critical patent/CN106796608B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/35Clustering; Classification
    • G06F16/355Class or cluster creation or modification
    • 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/31Indexing; Data structures therefor; Storage structures
    • G06F16/313Selection or weighting of terms for indexing
    • 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/3329Natural language query formulation or dialogue systems
    • 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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Abstract

对内容的搜索可以利用特有预留短语来改进。预留短语可以将查询指向内容的具体预选的部分。同义词可以被生成并且与预留短语相关联,以使得即使当查询不包括预留短语时,同义词也可以被用于将查询映射到预留短语和相关联的内容。同义词可以被生成和过滤,以使得同义词仅与一个预留短语相关联,由此减少搜索歧义。

Description

上下文搜索字符串同义词的自动生成
技术领域
本发明的实施例一般涉及用于响应于查询而向用户提供更相关和有用的内容的方法和系统,并且更具体地涉及响应于查询而使用特有预留短语向用户提供结果。
背景技术
由用户执行的Web搜索或企业搜索常常将返回与搜索的预期目标不相关的结果。例如,可能向搜寻产品的技术帮助的用户呈现针对不相关的产品的结果或者该产品的新版本的销售报价。在许多情况下,当用户没有输入产品的全名或其它搜索项时,web搜索或企业搜索可能不会返回任何结果。因此,需要改进的方法和系统,以用于向用户提供更相关和有用的内容。
发明内容
本发明的实施例提供了用于响应于查询而向用户提供更相关和有用的内容的系统和方法。根据一个实施例,可以利用特有预留短语来改进对内容的搜索。预留短语可以将查询指向内容的具体预选部分。同义词可以被生成并且与预留短语相关联,以使得即使当查询不包括预留短语时,同义词也可以被用于将查询映射到预留短语和相关联的内容。同义词可以被生成和过滤,以使得同义词仅与一个预留短语相关联,由此减少搜索歧义。
根据一个实施例,搜索字符串扩展可以包括接收预留短语的列表。列表中的每个预留短语可以与内容相关,并且每个字符串可以与内容的一部分相关联。每个预留短语可以根据语言特性来分类。例如,语言特性包括名词、动词或地点中的至少一个。
可以为列表中的每个预留短语生成同义词的候选列表。可以通过去除同义词重复、将同义词与同义词规则进行比较以及去除与同义词规则匹配的同义词来过滤同义词的候选列表。每个同义词可以根据相关联的预留词的语言特性进行分类。根据一个实施例,生成同义词的候选列表可以包括生成预留短语中的每个预留短语的子串变体的列表。附加地或可替代地,生成同义词的候选列表可以包括分析内容并且确定内容中的被用于指代预留短语中的每个预留短语的替代词。
一旦接收到查询字符串,就可以识别来自候选同义词的经过滤的列表的与查询字符串的一部分匹配的匹配同义词。可以关于查询字符串的该部分是否与匹配同义词的语言特性匹配做出确定。然后可以发送与匹配同义词的预留短语相关联的内容的部分。
附图说明
图1是示出其中可以实现本发明的各种实施例的示例性分布式系统的组件的框图。
图2是示出由本发明的实施例提供的服务可以通过其作为云服务被提供的系统环境的组件的框图。
图3是示出其中可以实现本发明的实施例的示例性计算机系统的框图。
图4是示出根据本发明的一个实施例的上下文搜索系统的元件的框图。
图5是示出根据本发明的实施例的同义词引擎的元件的附加细节的框图。
图6是示出根据本发明的一个实施例的用于为预留短语确定同义词的过程的流程图。
图7是示出根据本发明的一个实施例的使用预留短语以及它们的同义词对用户查询进行处理的附加细节的流程图。
图8是示出根据本发明的一个实施例的用于为预留短语确定同义词的过程的流程图。
具体实施方式
在以下描述中,为了解释的目的,阐述了许多具体细节以便提供对本发明的各种实施例的透彻理解。然而,对于本领域技术人员将明显的是,可以在没有这些具体细节中的一些细节的情况下实践本发明的实施例。在其它实例中,公知的结构和设备以框图的形式示出。
随后的描述仅提供示例性的实施例,并且不是旨在限制本公开的范围、适用性或配置。相反,示例性实施例的随后描述将为本领域技术人员提供用于实现示例性实施例的可行描述。应当理解,在不背离如所附权利要求中阐述的本发明的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
在以下描述中给出了具体细节以提供对实施例的透彻理解。然而,本领域普通技术人员将理解,可以在没有这些具体细节的情况下实践实施例。例如,电路、系统、网络、过程和其它组件可以以框图的形式被示为组件,以便不会以不必要的细节模糊实施例。在其它实例中,公知的电路、过程、算法、结构和技术可以在没有不必要的细节的情况下被示出,以便避免模糊实施例。
而且,应当指出,单独的实施例可以被描述为被描绘为流程图表、流程图、数据流程图、结构图或框图的过程。虽然流程图可以将操作描述为顺序的过程,但是操作中的许多操作可以被并行地或并发地执行。此外,操作的顺序可以被重新布置。过程在它的操作完成时被终止,但是可以具有未包括在附图中的附加步骤。过程可以对应于方法、函数、进程(procedure)、子例程、子程序等。当过程对应于函数时,它的终止可以对应于函数返回到调用函数或主函数。
术语“机器可读介质”包括但不限于便携式或固定存储设备、光存储设备、以及能够存储、包含或携带(一条或多条)指令/或数据的各种其它介质。代码段或机器可执行指令可以表示进程、函数、子程序、程序、例程、子例程、模块、软件包、类、或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容耦接到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的手段来传递、转发或传输。
此外,实施例可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现。当用软件、固件、中间件或微代码来实现时,用于执行必要任务的程序代码或代码段可以被存储在机器可读介质中。(一个或多个)处理器可以执行必要任务。
网站、互联网门户、内联网等可以具有允许用户输入查询的搜索能力。可以包括与产品、产品名称或其它查询项相关的问题的查询可以被处理并且与现有内容进行比较,以向用户提供与查询相关的信息或者到信息的链接。
例如,搜索功能可以被包括在计算机产品制造商的网站上。搜索功能可以是允许用户输入查询项的文本输入框。查询项可以包括关于制造商的产品的问题、对关于与产品相关的技术问题的更多信息的请求,等等。查询可以被处理,以向用户返回与查询项相关的来自网站的内容或到内容的链接。
在一些实施例中,查询项可以与网站或内容管理系统中的词或文本进行比较。查询可以返回与查询的词匹配的内容的部分。搜索系统可以具有用于基于搜索结果的期望精度将搜索项与内容文本匹配的不同方法。在一些情况下,内容以及查询的语言分析可以被用于提高结果的精度。
在一些情况下,可以使用查询词和内容的直接匹配。在一些情况下,仅用户输入的确切项与内容文本匹配。搜索系统可以仅返回与查询项完全匹配的结果。虽然直接匹配可以提供良好的精度,但是它对许多应用来说可能是不够的。用户可以输入嵌有在内容中使用的词或短语的完整句子或问题。用户可以输入在内容中使用的词的变体。由于字的小变化,可能不向用户呈现任何结果。例如,制造商的网站可以包括关于制造商的产品的信息。网站上的产品的官方名称可以包括诸如“Computec X 1000”和“Computec V”之类的名称。可能输入具有项“Where can I buy the ComputecX”的查询的用户可能不会接收到任何结果。
在一些其它情况下,可以使用子串搜索。在一些情况下,输入的查询项的变体或子串可以与内容文本的子串匹配。子串搜索可以提供较低的精度并且可以返回更多的结果。在许多情况下,子串搜索可能返回不相关的结果。继续上面的示例,如果用户输入具有项“Computec 1000”的查询,则系统可能尝试将内容与子串“Computec”和“1000”匹配,这可以匹配用于两个产品“Computec X 1000”和“Computec V”的字符串。
取得来自用户的输入的搜索系统应当将返回结果的精度与返回结果的数量进行平衡。直接搜索项映射可能导致查询结果太少并且可能错过常见的变体,而子串搜索可能导致涉及不相关的产品或概念的太多结果。
给出了在精度和不相关结果的数量之间提供平衡的搜索系统。在实施例中,搜索系统接收可以与内容的具体部分相关联的预留短语(诸如产品名称)的列表。搜索系统可以为与内容相关的预留短语的列表中的每个词生成同义词的列表。用于每个预留短语的同义词可以相互比较,以去除任何重复。在去除重复之后,每个预留关键字将与特有的同义词相关联。同义词可以与用户输入的查询文本在上下文中匹配。匹配的查询文本可以被转换成每个匹配的同义词的相关联的预留短语,并且与预留短语相关的内容可以被返回给用户。
系统可以接收预留短语的列表。预留短语的列表可以是与网站或其它搜索内容相关的重要项(term)、产品、地点等的列表。例如,预留短语的列表可以对应于制造商网站上列出的产品。预留短语的列表可以由用户手动确定。在一些实施例中,预留短语的列表可以通过扫描网站或其它内容来自动确定。预留短语的列表可以通过确定词在内容中的频率来识别。不是常见词但是在内容中具有高出现频率的词可以被选为预留短语。
预留短语的列表可以包括在内容中找到的词。预留短语的列表可以对应于内容的一个或多个具体部分。例如,对于计算机产品制造商的网站,预留短语的列表可以包括产品名称。制造商的网站可以包括用于每个产品的网页、文档等,并且可以与每个产品名称相关联。
预留短语的列表可以被处理,以识别可以与每个预留词相关联的可能的替代项或同义词。每个预留短语可以与附加的同义词相关联。对于每个预留词,同义词可以由用户手动地和/或由系统自动地识别并且与预留短语相关联。用户可以为每个预留词输入或提供常用词或替代词的列表。
在一些实施例中,系统可以为预留短语中的每个预留短语自动生成子串变体。在一些情况下,每个预留短语的比两个或三个字母长的所有可能的子串可以被用作同义词并且与预留词相关联。在一些实施例中,可以定义用于生成子串同义词的附加规则。例如,在一些情况下,可以生成从预留短语中去除数字的子串。在产品名称的情况下,用户可能发现难以记住数字并且可能仅通过其第一组词或第一组数字来指代产品。预留的产品名称“Computec X 1000”例如可以被处理以在标记化(tokenization)之后生成诸如“ComputecX”、“Computec”和“Computec 1000”之类的同义词。
用于基于预留短语的子串定义同义词的许多不同的规则和方法可以被使用并且可以依赖于上下文、应用和其它设置。
在一些实施例中,系统可以扫描其它内部或外部内容,以确定与预留短语相关联的替代词。附加的网站(诸如博客、评论网站、在线论坛等)可以被扫描和分析,以确定与预留短语一起使用或相关联的替代词。
在一些实施例中,可以用词性或其它类别来注释预留短语。可以指示预留短语是名词、产品、地点还是动词等的标识符可以与每个预留短语相关联。为每个预留短语识别的同义词可以继承预留词的所指定的词性或其它类别。
在实施例中,与每个预留短语相关联的同义词的列表可以被比较或分析,以去除重复。被发现与多于一个预留短语相关联的同义词可以被去除,以使得每个同义词仅与一个预留词相关联。可以通过各种搜索和匹配算法来去除重复。
预留短语的列表可以被分类为不同的词性或其它分组。例如,一些预留短语可以被分类为名词,而其它被分类为动词。在一些实施例中,如果同义词的重复与来自不同组的预留短语相关联,则同义词的重复可以保持原样。例如,预留短语“bicycling”可以具有同义词“bike”。另一个预留词“bicycle”可以具有相同的同义词“bike”。由于bicycling是动词,而bicycle是名词,因此两个同义词“bike”可以在每个预留词的同义词列表中保持原样。
在又一个实施例中,当识别出同义词重复时,可以将所有同义词一起去除,以避免引起召回问题的歧义。在一些实施例中,除了同义词的一个副本之外的所有副本都可以被去除,以使得仅一个预留短语与该同义词相关联。在一个实施例中,与排名最高的预留短语相关联的重复同义词可以保持原样并且所有其它的重复同义词被去除。预留短语可以基于一个或多个因素(诸如它们在内容中出现的次数)来排名。预留短语出现得越频繁,预留短语的排名可能越高。在一些实施例中,可以将重复同义词与它们相关联的预留短语进行比较。同义词与预留短语的相似度可以基于编辑距离或其它度量来计算。在一个实施例中,编辑距离可以每字符地应用,而在另一个实施例中,它可以每标记(token)地应用。
同义词的列表可以由可以去除更多同义词的附加词过滤器进行处理。词过滤器可以去除例如小于2或3个字符的同义词。词过滤器可以包括用于过滤的过滤字典或词列表。过滤字典可以包括冒犯的词、竞争对手的产品名称等。
预留短语的列表和同义词的列表可以被用于处理来自用户的查询请求。当用户提交查询字符串时,该字符串可以被分析,以确定一个或多个预留短语或同义词是否与查询的部分匹配。在一些实施例中,同义词、预留短语和查询字符串之间的匹配可以包括分析和匹配词性或其它语言特性。查询字符串的词可以被分析,以确定它们的上下文并且识别词是否被用作名词、动词、地点等。仅当词性和其它分组匹配时,查询字符串中的词才可以与同义词和/或预留短语匹配。查询字符串中与预留短语或同义词不匹配的词也可以由搜索系统使用。即,查询可以是复杂的并且可以包含比仅预留短语更多的信息,并且这种信息也可以与获得良好的搜索结果相关。
如果查询字符串的一部分与预留短语中的一个预留短语匹配,则可以对包括匹配的预留词的内容执行搜索。如果查询字符串的一部分与同义词中的一个同义词匹配,则可以对包括相关联的预留短语的内容执行搜索。在一些情况下,每个预留短语可以与某个主题一起被索引或映射到内容的具体部分。当用户输入包括预留短语或它的同义词中的一个同义词的查询字符串时,加索引的内容或到内容的链接可以在查询与主题匹配时被呈现给用户。如果用户输入查询项“my Computec X 1000 is broken”,主题是关于某物被损坏,匹配的产品是“Computec X 1000”,则可以向用户呈现关于如何处理被损坏的“Computec X1000”的内容。
在实施例中,用于每个预留短语的同义词列表可以被连续地和/或周期性地更新。当向预留短语的列表添加新的预留短语或从预留短语的列表中去除预留短语时,可以重新计算用于每个预留短语的同义词列表。当添加新的预留短语时,用于新的预留短语的同义词可以被确定并且可以与现有的词列表进行比较,以去除重复的同义词。当预留短语从以前可能重复的同义词的列表中被去除时,可以被添加到剩余预留短语中的一些剩余预留短语的同义词的列表中。
在一些实施例中,可以记录用户的查询字符串中的词。查询字符串中与内容中的任何项都不匹配或没有向用户返回结果的词可以被记录和保存。系统可以监视没有返回结果的特定词被用户输入了多少次。不匹配的词和它们的频率的列表可以被提供给管理员以供考虑。操作人员可以选择不匹配的词中的一个或多个,并且将它们添加到预留词的同义词的列表。在一些实施例中,当用户的查询字符串中的特定词不匹配超过预定阈值时,可以触发管理员警报。在一些情况下,当词不匹配超过5次或10次时,可以导致管理员通知,诸如电子邮件或警报。下面将参考附图描述本发明的实施例的各种附加细节。
图1是示出其中可以实现本发明的各种实施例的示例性分布式系统的组件的框图。在所示的实施例中,分布式系统100包括一个或多个客户端计算设备102、104、106和108,该一个或多个客户端计算设备被配置为经一个或多个网络110执行和操作客户端应用,诸如web浏览器、专有客户端(例如,Oracle Forms)等。服务器112可以经由网络110与远程客户端计算设备102、104、106和108可通信地耦接。
在各种实施例中,服务器112可以适于运行由系统的组件中的一个或多个组件提供的一个或多个服务或软件应用。在一些实施例中,这些服务可以作为基于web的服务或云服务或者在软件即服务(Software as a Service,SaaS)模型下被提供给客户端计算设备102、104、106和/或108的用户。操作客户端计算设备102、104、106和/或108的用户又可以利用一个或多个客户端应用与服务器112交互,以利用由这些组件提供的服务。
在该图中绘出的配置中,系统100的软件组件118、120和122被示为在服务器112上实现。在其它实施例中,系统100的组件中的一个或多个组件和/或由这些组件提供的服务还可以由客户端计算设备102、104、106和/或108中的一个或多个客户端计算设备来实现。操作客户端计算设备的用户然后可以利用一个或多个客户端应用来使用由这些组件提供的服务。这些组件可以用硬件、固件、软件或其组合来实现。应当理解,可以不同于分布式系统100的各种不同的系统配置是可能的。因此,在该图中示出的实施例是用于实现实施例系统的分布式系统的一个示例,并且不是旨在是限制性的。
客户端计算设备102、104、106和/或108可以是运行诸如Microsoft Windows之类的软件和/或各种移动操作系统(诸如iOS、Windows Phone、Android、BlackBerry 10、Palm OS等)并且启用互联网、电子邮件、短消息服务(SMS)、或其它通信协议的便携式手持设备(例如,蜂窝电话、计算平板、个人数字助理(PDA))或可穿戴设备(例如,Google头戴式显示器)。客户端计算设备可以是通用个人计算机,作为示例包括,运行各种版本的MicrosoftApple和/或Linux操作系统的个人计算机和/或笔记本计算机。客户端计算设备可以是运行包括但不限于各种GNU/Linux操作系统(诸如像GoogleChrome OS)的各种商用或类UNIX操作系统中的任何操作系统的工作站计算机。可替代地或附加地,客户端计算设备102、104、106和108可以是能够经(一个或多个)网络110通信的任何其它电子设备,诸如瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有姿势输入设备的Microsoft Xbox游戏机)和/或个人消息传送设备。
虽然示例性分布式系统100被示为具有四个客户端计算设备,但是任何数量的客户端计算设备可以被支持。诸如具有传感器的设备等之类的其它设备可以与服务器112交互。
在分布式系统100中的(一个或多个)网络110可以是对于本领域技术人员来说熟悉的、可以支持利用各种商用协议中的任何商用协议的数据通信的任何类型的网络,这些商用协议包括但不限于TCP/IP(传输控制协议/互联网协议)、SNA(系统网络架构)、IPX(互联网分组交换)、AppleTalk等。仅仅作为示例,(一个或多个)网络110可以是局域网(LAN),诸如基于以太网、令牌环等的局域网。(一个或多个)网络110可以是广域网和互联网。它可以包括虚拟网络,该虚拟网络包括但不限于虚拟专用网(VPN)、内联网、外联网、公共交换电话网(PSTN)、红外网络、无线网络(例如,在电气和电子协会(IEEE)802.11协议套件、和/或任何其它无线协议中的任何协议下操作的网络);和/或这些网络和/或其它网络的任何组合。
服务器112可以包括一个或多个通用计算机、专用服务器计算机(作为示例,包括PC(个人计算机)服务器、服务器、中型服务器、大型计算机、机架式服务器等)、服务器场、服务器集群或者任何其它适当的布置和/或组合。在各种实施例中,服务器112可以适于运行上述公开内容中描述的一个或多个服务或软件应用。例如,服务器112可以对应于用于执行上文描述的根据本公开的实施例的处理的服务器。
服务器112可以运行操作系统,包括上文讨论的操作系统中的任何操作系统,以及任何商用的服务器操作系统。服务器112还可以运行各种附加的服务器应用和/或中间层应用中的任何服务器应用和/或中间层应用,这些服务器应用和/或中间层应用包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(公共网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于术自Oracle、Microsoft、Sybase、IBM(国际商业机器公司)等的商用数据库服务器。
在一些实施方式中,服务器112可以包括用于分析和整合从客户端计算设备102、104、106和108的用户接收到的数据馈送和/或事件更新的一个或多个应用。作为示例,数据馈送和/或事件更新可以包括但不限于馈送、更新或者从一个或多个第三方信息源和连续数据流接收到的实时更新,该一个或多个第三方信息源和连续数据流可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和业务管理应用)、点击流分析工具、汽车交通监视等相关的实时事件。服务器112还可以包括经由客户端计算设备102、104、106和108的一个或多个显示设备显示数据馈送和/或实时事件的一个或多个应用。
分布式系统100还可以包括一个或多个数据库114和116。数据库114和116可以驻留在各种位置中。作为示例,数据库114和116中的一个或多个可以驻留在服务器112本地(和/或驻留在服务器112中)的非暂态存储介质上。可替代地,数据库114和116可以远离服务器112,并且经由基于网络的或专用的连接与服务器112进行通信。在一组实施例中,数据库114和116可以驻留在存储区域网络(SAN)中。类似地,用于执行属于服务器112的功能的任何必要的文件可以适当地被存储在服务器112本地和/或远程存储。在一组实施例中,数据库114和116可以包括适于响应于SQL格式的命令来存储、更新和检索数据的关系数据库,诸如由提供的数据库。
图2是示出由本发明的实施例提供的服务可以通过其被提供为云服务的系统环境的组件的框图。在所示的实施例中,系统环境200包括可以由用户使用以与提供云服务的云基础设施系统202交互的一个或多个客户端计算设备204、206和208。客户端计算设备可以被配置为操作可以由客户端计算设备的用户使用以与云基础设施系统202交互、以便使用由云基础设施系统202提供的服务的客户端应用,诸如web浏览器、专有客户端应用(例如,Forms)或一些其它应用。
应当理解,在该图中绘出的云基础设施系统202可以具有除了所绘出的组件之外的其它组件。此外,在该图中示出的实施例仅是可以结合本发明的实施例的云基础设施系统的一个示例。在一些其它实施例中,云基础设施系统202可以具有比在该图中示出的更多或更少的组件、可以组合两个或更多个组件、或者可以具有不同的组件配置或布置。
客户端计算设备204、206和208可以是类似于对于102、104、106和108上文描述的设备。
虽然示例性系统环境200被示为具有三个客户端计算设备,但是任何数量的客户端计算设备可以被支持。诸如具有传感器的设备等之类的其它设备可以与云基础设施系统202交互。
(一个或多个)网络210可以便于客户端204、206和208与云基础设施系统202之间的通信和数据交换。每个网络可以是对于本领域技术人员来说熟悉的、可以支持利用各种商用协议中的任何商用协议的数据通信的任何类型的网络,包括对于(一个或多个)网络110上文描述的网络。
云基础设施系统202可以包括一个或多个计算机和/或服务器,该一个或多个计算机和/或服务器可以包括对于服务器112上文描述的服务器。
在某些实施例中,由云基础设施系统提供的服务可以包括云基础设施系统的用户按需可用的许多(a host of)服务,诸如在线数据存储和备份解决方案、基于Web的电子邮件服务、托管的办公套件和文档协作服务、数据库处理、受管理的技术支持服务等。由云基础设施系统提供的服务可以动态地缩放,以满足它的用户的需求。由云基础设施系统提供的服务的具体实例化在本文中被称为“服务实例”。一般而言,来自云服务提供商的系统的、经由诸如互联网之类的通信网络对用户可用的任何服务被称为“云服务”。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自己本地的服务器和系统不同。例如,云服务提供商的系统可以托管应用,并且用户可以经由诸如互联网之类的通信网络按需订购和使用应用。
在一些示例中,计算机网络云基础设施中的服务可以包括对存储装置、托管的数据库、托管的web服务器、软件应用的受保护的计算机网络访问,或由云供应商提供给用户的其它服务,或者如以其它方式在本领域中已知的服务。例如,服务可以包括通过互联网对云上的远程存储装置的受密码保护的访问。作为另一个示例,服务可以包括用于由联网的开发人员私人使用的基于web服务的托管的关系数据库和脚本语言中间件引擎。作为另一个示例,服务可以包括对在云供应商的网站上托管的电子邮件软件应用的访问。
在某些实施例中,云基础设施系统202可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用并且安全的方式交付给客户的一套应用、中间件和数据库服务提供物(offering)。这样的云基础设施系统的示例是由本受让人提供的公共云。
在各种实施例中,云基础设施系统202可以适于自动供应、管理和跟踪客户对由云基础设施系统202提供的服务的订阅。云基础设施系统202可以经由不同的部署模型来提供云服务。例如,服务可以在公共云模型下被提供,在该公共云模型中云基础设施系统202由销售云服务的组织拥有(例如,由Oracle拥有)并且服务对一般公众和不同行业企业可用。作为另一个示例,服务可以在私有云模型下被提供,在该私有云模型中云基础设施系统202仅为单个组织操作并且可以为该组织内的一个或多个实体提供服务。云服务还可以在社区云模型下被提供,在该社区云模型中云基础设施系统202和由云基础设施系统202提供的服务由相关社区中的若干组织共享。云服务还可以在混合云模型下被提供,该混合云模型是两种或更多种不同模型的组合。
在一些实施例中,由云基础设施系统202提供的服务可以包括在软件即服务(SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别、或包括混合服务的其它服务类别下提供的一个或多个服务。客户经由订阅订单可以订购由云基础设施系统202提供的一个或多个服务。云基础设施系统202然后执行处理,以提供客户的订阅订单中的服务。
在一些实施例中,由云基础设施系统202提供的服务可以包括但不限于应用服务、平台服务和基础设施服务。在一些示例中,应用服务可以由云基础设施系统经由SaaS平台提供。SaaS平台可以被配置为提供落入SaaS类别下的云服务。例如,SaaS平台可以提供在集成的开发和部署平台上构建和交付按需应用套件的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,客户可以利用在云基础设施系统上执行的应用。客户可以获取应用服务,而无需客户购买分开的许可和支持。可以提供各种不同的SaaS服务。示例包括但不限于为大型组织提供用于销售业绩管理、企业集成和业务灵活性的解决方案的服务。
在一些实施例中,平台服务可以由云基础设施系统经由PaaS平台提供。PaaS平台可以被配置为提供落入PaaS类别下的云服务。平台服务的示例可以包括但不限于使得组织(诸如Oracle)能够在共享的公共架构上整合现有应用,以及利用由平台提供的共享服务来构建新应用的能力的服务。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设施。客户可以获得由云基础设施系统提供的PaaS服务,而无需客户购买分开的许可和支持。平台服务的示例包括但不限于Oracle Java云服务(Oracle Java Cloud Service,JCS)、Oracle数据云服务(Oracle Database Cloud Service,DBCS)以及其它服务。
通过利用由PaaS平台提供的服务,客户可以采用由云基础设施系统支持的编程语言和工具,并且还可以控制所部署的服务。在一些实施例中,由云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,Oracle Fusion Middleware服务)和Java云服务。在一个实施例中,数据库云服务可以支持共享服务部署模型,该共享服务部署模型使得组织能够汇集数据库资源并且以数据库云的形式向客户提供数据库即服务。在云基础设施系统中,中间件云服务可以为客户提供开发和部署各种业务应用的平台,而Java云服务可以为客户提供部署Java应用的平台。
各种不同的基础设施服务可以由云基础设施系统中的IaaS平台提供。基础设施服务便于利用由SaaS平台和PaaS平台提供的服务的客户对底层计算资源(诸如存储装置、网络和其它基本计算资源)的管理和控制。
在某些实施例中,云基础设施系统202还可以包括基础设施资源230,以用于提供被用来向云基础设施系统的客户提供各种服务的资源。在一个实施例中,基础设施资源230可以包括用于执行由PaaS平台和SaaS平台提供的服务的硬件(诸如服务器、存储装置和联网资源)的预先集成的和优化的组合。
在一些实施例中,云基础设施系统202中的资源可以由多个用户共享并且按需动态地重新分配。此外,资源可以被分配给在不同时区中的用户。例如,云基础设施系统230可以使得第一时区中的第一用户集合能够利用云基础设施系统的资源指定的小时数,然后使得能够将同一资源重新分配给位于不同时区中的另一用户集合,从而最大化资源的利用率。
在某些实施例中,可以提供由云基础设施系统202的不同组件或模块以及由云基础设施系统202提供的服务共享的若干内部共享服务232。这些内部共享服务可以包括但不限于安全性和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于实现云支持的服务、电子邮件服务、通知服务、文件传输服务等。
在某些实施例中,云基础设施系统202可以在云基础设施系统中提供对云服务(例如,SaaS、PaaS和IaaS服务)的综合管理。在一个实施例中,云管理功能可以包括用于供应、管理和跟踪由云基础设施系统202接收到的客户的订阅的能力等。
在一个实施例中,如在附图中绘出的,云管理功能可以由诸如订单管理模块220、订单编排模块222、订单供应模块224、订单管理和监视模块226以及身份管理模块228之类的一个或多个模块提供。这些模块可以包括一个或多个计算机和/或服务器或者利用一个或多个计算机和/或服务器来提供,该一个或多个计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器场、服务器集群或任何其它适当的布置和/或组合。
在示例性操作234中,使用客户端设备(诸如客户端设备204、206或208)的客户可以通过请求由云基础设施系统202提供的一个或多个服务并且对由云基础设施系统202提供的一个或多个服务的订阅下订单来与云基础设施系统202交互。在某些实施例中,客户可以访问云用户界面(UI),云UI 212、云UI 214和/或云UI 216并且经由这些UI下订阅订单。响应于客户下订单而由云基础设施系统202接收到的订单信息可以包括识别客户以及客户旨在订阅的由云基础设施系统202提供的一个或多个服务的信息。
在客户已下订单之后,订单信息经由云UI 212、214和/或216被接收。
在操作236处,订单被存储在订单数据库218中。订单数据库218可以是由云基础设施系统218操作并且结合其它系统元素操作的若干数据库中的一个数据库。
在操作238处,订单信息被转发到订单管理模块220。在一些实例中,订单管理模块220可以被配置为执行与订单相关的计费和记帐功能,诸如验证订单,并且在通过验证时,预订订单。
在操作240处,关于订单的信息被传送到订单编排模块222。订单编排模块222可以利用订单信息来编排用于客户下的订单的服务和资源的供应。在一些实例中,订单编排模块222可以编排资源的供应,以利用订单供应模块224的服务来支持订阅的服务。
在某些实施例中,订单编排模块222使得能够管理与每个订单相关联的业务流程,并且应用业务逻辑来确定订单是否应当继续供应。在操作242处,当接收到对新订阅的订单时,订单编排模块222向订单供应模块224发送分配资源和配置履行订阅订单所需的那些资源的请求。订单供应模块224实现用于由客户订购的服务的资源分配。订单供应模块224提供在由云基础设施系统200提供的云服务和被用来供应用于提供所请求的服务的资源的物理实现层之间的抽象层。因此,订单编排模块222可以与诸如服务和资源是实际上被实时供应还是预先被供应并且仅在请求时才进行分配/指派之类的实现细节隔离。
在操作244处,一旦供应了服务和资源,云基础设施系统202的订单供应模块224就可以向客户端设备204、206和/或208上的客户发送所提供的服务的通知。
在操作246处,客户的订阅订单可以由订单管理和监视模块226管理和跟踪。在一些实例中,订单管理和监视模块226可以被配置为收集订阅订单中的服务的使用统计数据,诸如所使用的存储量、所传送的数据量、用户的数量、以及系统运行时间和系统停机时间的量。
在某些实施例中,云基础设施系统200可以包括身份管理模块228。身份管理模块228可以被配置为提供身份服务,诸如云基础设施系统200中的访问管理和授权服务。在一些实施例中,身份管理模块228可以控制关于希望利用由云基础设施系统202提供的服务的客户的信息。这样的信息可以包括认证这些客户的身份的信息以及描述这些客户被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段等)执行哪些动作的信息。身份管理模块228还可以包括对关于每个客户的描述性信息以及关于如何和由谁来访问和修改描述性信息的管理。
图3是示出其中可以实现本发明的实施例的示例性计算机系统的框图。系统300可以被用来实现上文描述的计算机系统中的任何计算机系统。如图所示,计算机系统300包括经由总线子系统302与若干外围子系统通信的处理单元304。这些外围子系统可以包括处理加速单元306、I/O子系统308、存储子系统318和通信子系统324。存储子系统318包括有形的计算机可读存储介质322和系统存储器310。
总线子系统302提供用于让计算机系统300的各种组件和子系统按预期彼此通信的机制。虽然总线子系统302被示意性地示为单条总线,但是总线子系统的可替代实施例可以利用多条总线。总线子系统302可以是利用各种总线架构中的任何总线架构的若干类型的总线结构中的任何类型的总线结构,这些类型的总线结构包括存储器总线或存储器控制器、外围总线以及局部总线。例如,这些架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线,其中PCI总线可以被实现为按IEEE P1386.1标准制造的夹层(Mezzanine)总线。
可以被实现为一个或多个集成电路(例如,常规的微处理器或微控制器)的处理单元304控制计算机系统300的操作。一个或多个处理器可以被包括在处理单元304中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元304可以被实现为一个或多个独立的处理单元332和/或334,其中在每个处理单元中包括单核或多核处理器。在其它实施例中,处理单元304还可以被实现为通过将两个双核处理器集成到单个芯片中而形成的四核处理单元。
在各种实施例中,处理单元304可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定时间,要执行的程序代码中的一些或全部可以驻留在(一个或多个)处理器304中和/或存储子系统318中。通过适当的编程,(一个或多个)处理器304可以提供上文描述的各种功能。计算机系统300可以附加地包括处理加速单元306,处理加速单元306可以包括数字信号处理器(DSP)、专用处理器等。
I/O子系统308可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球之类的指示设备、结合到显示器中的触摸板或触摸屏、滚轮、点拨轮、拨盘、按钮、开关、键板、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括例如运动感测和/或姿势识别设备,诸如使得用户能够通过利用姿势和口头命令的自然用户接口来控制输入设备(诸如Microsoft360游戏控制器)并且与该输入设备交互的Microsoft运动传感器。用户接口输入设备还可以包括眼睛姿势识别设备,诸如检测来自用户的眼睛活动(例如,当拍摄图片和/或进行菜单选择时的“眨眼”)并且将眼睛姿势变换为到输入设备(例如,Google)中的输入的Google 眨眼检测器。附加地,用户接口输入设备可以包括使得用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备。
用户接口输入设备还可以包括但不限于三维(3D)鼠标、操纵杆或指示杆、游戏板和图形平板、以及音频/视觉设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、以及视线跟踪设备。附加地,用户接口输入设备可以包括例如医疗成像输入设备,诸如计算机断层扫描设备、磁共振成像设备、正电子发射断层扫描设备、医疗超声设备。用户接口输入设备还可以包括例如音频输入设备,诸如MIDI键盘、数字乐器等。
用户接口输出设备可以包括显示子系统、指示器灯或诸如音频输出设备之类的非视觉显示器等。显示子系统可以是阴极射线管(CRT)、诸如利用液晶显示器(LCD)或等离子显示器的平板设备之类的平板设备、投影设备、触摸屏等。一般而言,术语“输出设备”的使用旨在包括用于向用户或其它计算机输出来自计算机系统300的信息的所有可能类型的设备和机构。例如,用户接口输出设备可以包括但不限于可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。
计算机系统300可以包括存储子系统318,存储子系统318包括被示为当前位于系统存储器310内的软件元素。系统存储器310可以存储在处理单元304上可加载并且可执行的程序指令以及在这些程序执行期间生成的数据。
依赖于计算机系统300的配置和类型,系统存储器310可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器,等等)。RAM通常包含可由处理单元304立即访问和/或目前正由处理单元304操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器310可以包括多种不同类型的存储器,诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实施方式中,包含有助于诸如在启动期间在计算机系统300内的元素之间传送信息的基本例程的基本输入/输出系统(BIOS)通常可以被存储在ROM中。作为示例,而不是限制,系统存储器310还示出了应用程序312、程序数据314以及操作系统316,其中应用程序312可以包括客户端应用、Web浏览器、中间层应用、关系数据库管理系统(RDBMS)等。作为示例,操作系统316可以包括各种版本的MicrosoftApple和/或Linux操作系统、各种商用或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、GoogleOS等)和/或诸如iOS、Phone、OS、10OS和OS操作系统之类的移动操作系统。
存储子系统318还可以提供用于存储提供一些实施例的功能的基本编程和数据构造的有形计算机可读存储介质。当由处理器执行时提供上文描述的功能的软件(程序、代码模块、指令)可以被存储在存储子系统318中。这些软件模块或指令可以由处理单元304执行。存储子系统318还可以提供用于存储根据本发明来使用的数据的储存库。
存储子系统300还可以包括计算机可读存储介质读取器320,计算机可读存储介质读取器320可以被进一步连接到计算机可读存储介质322。与系统存储器310一起并且可选地与系统存储器310组合,计算机可读存储介质322可以全面地表示用于临时和/或更永久地包含、存储、传送和检索计算机可读信息的远程存储设备、本地存储设备、固定存储设备和/或可移动存储设备以及存储介质。
包含代码或代码的部分的计算机可读存储介质322还可以包括本领域已知或使用的任何适当的介质,这些介质包括存储介质和通信介质,诸如但不限于以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。这可以包括有形的计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储装置、磁带盒、磁带、磁盘存储或其它磁存储设备、或其它有形的计算机可读介质。这还可以包括非有形的计算机可读介质,诸如可以被用来传送期望的信息并且可以由计算机系统300访问的数据信号、数据传输或者任何其它介质。
作为示例,计算机可读存储介质322可以包括从不可移动的非易失性磁介质读取或对不可移动的非易失性磁介质写入的硬盘驱动器、从可移动的非易失性磁盘读取或对可移动的非易失性磁盘写入的磁盘驱动器、以及从可移动的非易失性光盘(诸如CD ROM、DVD和盘或其它光学介质)读取或对可移动的非易失性光盘写入的光盘驱动器。计算机可读存储介质322可以包括但不限于驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字音频带等。计算机可读存储介质322还可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如固态RAM、动态RAM、静态RAM,基于DRAM的SSD,磁阻RAM(MRAM)SSD)、以及使用基于DRAM的SSD和基于闪存存储器的SSD的组合的混合SSD。盘驱动器和它们的相关联的计算机可读介质可以为计算机系统300提供计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。
通信子系统324提供到其它计算机系统和网络的接口。通信子系统324充当用于从来自计算机系统300的其它系统接收数据以及向来自计算机系统300的其它系统传送数据的接口。例如,通信子系统324可以使得计算机系统300能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统324可以包括用于(例如,利用蜂窝电话技术,诸如3G、4G或EDGE(用于全球演进的增强的数据速率)之类的先进数据网络技术、Wi-Fi(IEEE 802.11族标准)、或其它移动通信技术、或其任何组合)访问无线语音网络和/或数据网络的射频(RF)收发器组件、全球定位系统(GPS)接收器组件和/或其它组件。在一些实施例中,除了无线接口之外或者作为无线接口的替代,通信子系统324可以提供有线网络连接(例如,以太网)。
在一些实施例中,通信子系统324还可以代表可以使用计算机系统300的一个或多个用户接收以结构化和/或非结构化的数据馈送326、事件流328、事件更新330等的形式的输入通信。
作为示例,通信子系统324可以被配置为从社交网络和/或其它通信服务的用户实时地接收数据馈送326,诸如馈送、更新、诸如丰富站点摘要(RSS)馈送之类的web馈送和/或来自一个或多个第三方信息源的实时更新。
此外,通信子系统324还可以被配置为接收以连续数据流的形式的本质上可以是连续的或无界的没有明确结束的数据,其中该连续数据流可以包括实时事件的事件流328和/或事件更新330。生成连续数据的应用的示例可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如网络监视和业务管理应用)、点击流分析工具、汽车交通监视等。
通信子系统324还可以被配置为向一个或多个数据库输出结构化的和/或非结构化的数据馈送326、事件流328、事件更新330等,其中该一个或多个数据库可以与耦接到计算机系统300的一个或多个流数据源计算机进行通信。
计算机系统300可以是各种类型中的一种类型,这些类型包括手持便携式设备(例如,蜂窝电话、计算平板、PDA)、可穿戴设备(例如,Google头戴式显示器)、PC、工作站、大型机、信息亭、服务器机架或任何其它数据处理系统。
由于计算机和网络不断变化的本质,在附图中绘出的计算机系统300的描述仅仅旨在作为具体示例。具有比附图中绘出的系统更多或更少的组件的许多其它配置是可能的。例如,定制的硬件还可以被使用和/或特定的元素可以用硬件、固件、软件(包括小程序)或其组合来实现。此外,可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文所提供的公开内容和教导,本领域普通技术人员将理解实现各种实施例的其它方式和/或方法。
图4是示出根据本发明的一个实施例的上下文搜索系统的元件的框图。系统400可以被用于为预留短语的列表识别同义词和/或使用同义词和预留短语来处理用户查询。系统可以包括内容储存库406,内容储存库406可以包括网站、文档和/或其它内容。内容储存库可以是例如产品制造商的网站。系统可以包括预留短语404的一个或多个列表。系统可以包括与预留短语404相关联的同义词416的一个或多个列表。预留短语404和同义词416的列表可以被生成或具体地与内容406相关。在一些情况下,预留短语404的列表可以由系统从外部源或从用户接收。在一些情况下,内容分析引擎412可以被配置为扫描或处理内容406,以识别预留短语。系统400还可以包括同义词引擎408。同义词引擎可以被配置为自动生成用于预留短语中的每个预留短语的同义词。用于预留短语404的同义词416可以由同义词引擎408通过取得该预留短语的特有子串来生成。在一些实施例中,同义词引擎408可以通过利用内容分析引擎412分析内容中的相关词、分析外部内容和/或监视用户查询来生成同义词。
用户界面414可以由用户用来提交查询。查询可以是与内容406相关的问题或搜索。这些搜索的目的应当是识别查询的主题并且识别查询中存在的预留短语或同义词。在一个实施例中,用户界面414可以是在web浏览器中显示的网页或者在用户的计算机或移动计算设备上显示的应用。用户界面可以包括用于提交搜索或查询的文本框或其它输入区域。来自用户界面414的查询可以被发送到查询处理引擎402。在用户界面414远离查询处理引擎402的情况下,来自用户界面414的查询可以经由网络410发送。查询处理引擎402可以分析查询、查询的上下文,并且识别查询的词中是否有任何词与预留短语404和同义词416匹配。查询处理引擎402可以将与同义词416匹配的查询词映射到相关联的预留短语。查询处理引擎可以将相关的预留短语映射到内容406的具体区域。相关内容或到相关内容的链接可以被返回并且发送到用户界面414。
在一些实施例中,查询处理引擎402可以监视并且保持用户查询的记录、以及用户查询是否被成功地映射到内容406的区域中。查询处理引擎402可以记录用户查询中不匹配的词中的每个不匹配的词被输入了多少次。查询以及它们到内容406的成功映射的历史可以被用于完善由系统使用的同义词416和预留短语404。
图5是示出根据本发明的实施例的同义词引擎的元件的附加细节的框图。同义词引擎408可以被用于识别用于预留短语的列表的同义词。同义词引擎408可以包括用于处理预留短语404和内容以自动生成用于预留短语404的同义词的列表的各种模块。同义词引擎可以包括子串分析模块502、语言分析模块504、词过滤器506、内容匹配模块508、重复检测模块510以及各种字典512。在实施例中,各种模块的功能可以被组合或被划分成不同数量的模块,并且同义词引擎408的一些实施例包括本文描述的功能的子集。
预留短语404的一个或多个列表可以由同义词引擎408接收。预留短语404的列表可以包括分组或语言指示符。分组可以包括指示符,诸如预留短语是名词、地点还是动词等。当指示符对于预留短语不可用时,语言分析模块504可以被用于识别预留短语的语言属性。在一些情况下,语言属性(诸如预留短语是名词还是动词)可以直接从预留词确定。在一些情况下,孤立的预留短语可能太模糊。在一些实施例中,语言分析模块504可以从内容分析引擎412请求包括预留短语的内容。内容分析引擎412可以返回包含预留短语的内容的完整句子、段落或其它部分。基于预留短语在内容中的使用,语言分析模块504可以确定预留短语的语言属性。语言分析模块504可以确定预留短语是否被一致地用作名词、动词等。预留短语的分组和语言特性可以与每个预留短语和为每个预留词确定的同义词相关联。
子串分析模块502可以被用于生成每个预留词的可能子串的列表。子串分析模块502可以将预留短语解析成用作同义词的各种子串。在一些情况下,子串分析模块502可以包括用于生成子串同义词的规则集合。例如,子串模块可以被限制为生成至少三个字符长的子串。附加的规则可以包括子串以与预留词相同的字母开头。在用于生成子串同义词的规则的另一个示例中,模块502可以被配置为通过去除数字字符并且仅留下字母字符来生成子串。
可以包括辞典(thesaurus)、字典等的字典512可以被用于确定用于预留短语的附加的同义词。字典512可以被用于确定相关词和/或语言特性的列表。
在一些实施例中,内容匹配模块508可以被用于直接从内容中确定用于预留短语的同义词。内容匹配模块508可以分析内容,以识别与预留短语可互换使用的词。
由同义词引擎408的模块生成的同义词列表可以由重复检测模块510处理。重复检测模块510可以被配置为识别可能已经被识别为用于多于一个预留词的同义词的词。重复检测模块510可以识别重复的同义词并且去除重复词。在一些情况下,重复检测模块510可以识别重复的同义词,并且删除除了一个重复词之外的所有重复词。重复项的修剪可以基于与每个重复同义词相关联的预留短语的重要性或排名。与排名最高的预留短语相关联的重复同义词可以留在同义词的列表中,而所有其它的重复同义词被去除。
在实施例中,词过滤器模块506可以被用于进一步处理同义词的列表。过滤器模块506可以将同义词的列表与禁用词的列表进行比较和/或使用规则来分析同义词。与禁用词中的任何禁用词匹配的同义词可以由过滤器模块506过滤或去除。与一个或多个规则匹配的同义词也可以被过滤或去除。例如,规则可以包括同义词至少有三个字符长,或者同义词以与预留词相同的字母开始。
图6是示出根据本发明的一个实施例的用于确定预留短语的同义词的过程的流程图。方法600可以使用先前描述的系统来执行。例如,可以使用图5的同义词引擎500或图7的系统700。这样的系统的组件可以使用硬件、软件和/或固件来实现。
在步骤602处,系统可以接收预留短语的一个或多个列表。预留短语可以从用户或系统的不同部分接收。预留短语的列表可以包括名称或产品或者可以在诸如网站之类的内容中找到的词。预留短语可以与内容的具体部分相关联或链接到内容的具体部分。在步骤604处,可以识别预留短语的上下文。上下文可以从预留词确定。字典和其它参考资料可以被用于确定预留短语的语言特性。在一些情况下,可以搜索使用预留短语的内容,以识别预留短语的上下文。使用预留短语的句子可以被分析,以确定它们的上下文,该上下文可以包括它们的语言特性、相关主题等。
在步骤606处,通过至少部分地使用预留短语的所确定的上下文,系统可以确定用于预留短语的同义词。同义词可以经由参考资料、分析内容、子串分析等来确定。在步骤608处,可以过滤不期望的同义词。不期望的同义词可以包括与多于一个预留词、竞争对手产品名称等相关联的重复同义词。在步骤610处,剩下的同义词可以继承相关联的预留短语的上下文。
图7是示出根据本发明的一个实施例的使用预留短语和它们的同义词对用户查询进行处理的附加细节的流程图。方法700可以使用先前描述的系统来执行。例如,可以使用图5的同义词引擎500或图4的系统400。这样的系统的组件可以使用硬件、软件和/或固件来实现。
在步骤702处,可以接收查询字符串。查询可以经由用户界面从用户接收并且经由网络发送到查询系统。在一些情况下,查询可以从系统的不同部分或不同的系统接收。在步骤704处,查询字符串可以被分析和处理,以识别是否有任何预留短语或预留短语的同义词是查询字符串的一部分。在步骤706处,可以识别所识别的同义词和/或预留短语的位置和上下文。至少部分地基于在查询字符串中的位置、查询字符串的结构等,查询字符串中匹配词的诸如语言特性之类的特性可以由系统确定。查询字符串中的词的上下文可以与预留短语和同义词的上下文进行比较,以确定它们是否匹配。如果上下文匹配,则查询字符串的同义词和/或预留短语可以被认为匹配。如果查询字符串包括匹配的同义词,则在步骤708中同义词可以被映射到相关联的预留短语。在步骤710处,映射的预留短语可以被用于处理查询字符串。预留短语可以与内容的具体部分或到内容的链接相关联。与查询字符串中识别出的预留短语相关联的内容或到内容的链接可以被返回给用户。
图8是示出根据本发明的一个实施例的用于确定预留短语的同义词的过程的流程图。方法800可以使用先前描述的系统来执行。例如,可以使用图5的同义词引擎500或图4的系统400。这样的系统的组件可以使用硬件、软件和/或固件来实现。
在步骤802处,可以接收预留短语。可以使用一个或多个步骤来处理预留短语,以生成用于预留词的同义词。在一些实施例中,可以在步骤804处理预留短语,以将预留短语的子串识别为潜在的同义词。子串生成可以包括诸如最小和/或最大字符数之类的规则。在一些情况下,子串可以包括不是原始预留词的一部分的附加结尾。具有替代结尾、后缀和/或前缀的子串可以被生成,以用作潜在的同义词。诸如“ed”或“ing”之类的后缀可能适用于一些预留短语。
在一些实施例中,在步骤806处,可以使用字典、辞典等来处理预留短语,以识别用于预留词的常见的或众所周知的同义词。在一些实施例中,在步骤808处,可以使用目标内容来处理预留短语。内容的文本可以被分析,以确定与预留词可互换使用的词。可互换的词可以被标记为用于预留词的同义词的潜在候选者。在步骤810处,识别出的同义词可以被进一步处理,并且与同义词规则和/或禁用词列表进行比较。同义词规则可以包括指定同义词的最小或最大字符数、非字母字符数等的规则。与规则不匹配或作为禁用词列表的一部分的任何同义词可以在步骤812处被过滤。
在前述描述中,为了说明的目的,以特定顺序描述了方法。应当理解,在可替代的实施例中,方法可以以与所描述的顺序不同的顺序来执行。还应当理解,上文描述的方法可以由硬件组件执行或者可以以机器可执行指令的序列来实施,机器可执行指令可以被用来使得用该指令对其编程的诸如通用或专用处理器或逻辑电路之类的机器执行该方法。这些机器可执行指令可以被存储在一个或多个机器可读介质或存储器设备上,诸如存储在CD-ROM或其它类型的光盘、软盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、闪存存储器、或适合于存储电子指令的其它类型的机器可读介质或存储器设备上。可替代地,方法可以通过硬件和软件的组合来执行。
虽然本文已经详细描述了本发明的说明性实施例和当前优选的实施例,但是要理解的是,本发明性概念可以以其它方式不同地实施和采用,并且所附权利要求旨在被解释为包括除了由现有技术限制的之外的这些变化。

Claims (21)

1.一种用于搜索字符串扩展的方法,所述方法包括:
接收预留短语的列表,所述列表中的每个预留短语与内容相关,并且其中每个预留短语与所述内容的一部分相关联;
为所述列表中的每个预留短语生成同义词的候选列表;
通过以下操作来过滤所述同义词的候选列表:
去除同义词重复;以及
将同义词与同义词规则进行比较,并且去除与所述同义词规则不相符的同义词;
接收查询字符串;
从候选同义词的经过滤的列表中识别与所述查询字符串的一部分匹配的匹配同义词;以及
确定所述查询字符串的所述一部分是否与所述匹配同义词的语言特性匹配。
2.如权利要求1所述的方法,还包括:
根据语言特性将每个预留短语分类成不同的组;
其中过滤所述同义词的候选列表还包括:
如果同义词的重复与来自不同组的预留短语相关联,则将同义词的重复保持原样。
3.如权利要求2所述的方法,还包括:
根据相关联的预留短语的语言特性来对经过滤的同义词的候选列表中的每个同义词进行分类;
其中确定所述查询字符串的所述一部分是否与所述匹配同义词的语言特性匹配还包括:
根据所述查询字符串的所述一部分的语言特性对所述查询字符串的所述一部分进行分类;以及
仅当所述查询字符串的所述一部分的分类与所述匹配同义词的分类匹配时,才确定所述查询字符串的所述一部分与所述匹配同义词匹配。
4.如权利要求1所述的方法,还包括:
发送所述内容中与所述匹配同义词的预留短语相关联的所述一部分。
5.如权利要求1所述的方法,其中生成同义词的候选列表包括:
生成所述预留短语中的每个预留短语的子串变体的列表。
6.如权利要求1所述的方法,其中生成同义词的候选列表包括:
分析所述内容;以及
确定所述内容中的被用于指代所述预留短语中的每个预留短语的替代词。
7.如权利要求1所述的方法,其中语言特性包括名词、动词或地点中的至少一个。
8.一种系统,包括:
处理器;以及
存储器,所述存储器与所述处理器耦接并且可由所述处理器读取,并且在所述存储器中存储指令集合,所述指令集合当由所述处理器执行时,使得所述处理器通过以下操作来执行搜索字符串扩展:
接收预留短语的列表,所述列表中的每个预留短语与内容相关,并且其中每个预留短语与所述内容的一部分相关联;
为所述列表中的每个预留短语生成同义词的候选列表;
通过以下操作来过滤所述同义词的候选列表:
去除同义词重复;以及
将同义词与同义词规则进行比较,并且去除与所述同义词规则不相符的同义词;
接收查询字符串;
从候选同义词的经过滤的列表中识别与所述查询字符串的一部分匹配的匹配同义词;以及
确定所述查询字符串的所述一部分是否与所述匹配同义词的语言特性匹配。
9.如权利要求8所述的系统,
其中所述指令集合当由所述处理器执行时,还使得所述处理器根据语言特性将每个预留短语分类成不同的组;
其中过滤所述同义词的候选列表还包括:
如果同义词的重复与来自不同组的预留短语相关联,则将同义词的重复保持原样。
10.如权利要求9所述的系统,
其中所述指令集合当由所述处理器执行时,还使得所述处理器根据相关联的预留短语的语言特性来对经过滤的同义词的候选列表中的每个同义词进行分类;
其中确定所述查询字符串的所述一部分是否与所述匹配同义词的语言特性匹配还包括:
根据所述查询字符串的所述一部分的语言特性对所述查询字符串的所述一部分进行分类;以及
仅当所述查询字符串的所述一部分的分类与所述匹配同义词的分类匹配时,才确定所述查询字符串的所述一部分与所述匹配同义词匹配。
11.如权利要求8所述的系统,其中所述指令集合当由所述处理器执行时,还使得所述处理器:
发送所述内容中与所述匹配同义词的预留短语相关联的所述一部分。
12.如权利要求8所述的系统,其中生成同义词的候选列表包括:
生成所述预留短语中的每个预留短语的子串变体的列表。
13.如权利要求8所述的系统,其中生成同义词的候选列表包括:
分析所述内容;以及
确定所述内容中的被用于指代所述预留短语中的每个预留短语的替代词。
14.如权利要求8所述的系统,其中语言特性包括名词、动词或地点中的至少一个。
15.一种计算机可读存储器,所述计算机可读存储器包括存储在其中的指令集合,所述指令集合当由处理器执行时,使得所述处理器通过以下操作来执行搜索字符串扩展:
接收预留短语的列表,所述列表中的每个预留短语与内容相关,并且其中每个预留短语与所述内容的一部分相关联;
为所述列表中的每个预留短语生成同义词的候选列表;
通过以下操作来过滤所述同义词的候选列表:
去除同义词重复;以及
将同义词与同义词规则进行比较,并且去除与所述同义词规则不相符的同义词;
接收查询字符串;
从候选同义词的经过滤的列表中识别与所述查询字符串的一部分匹配的匹配同义词;以及
确定所述查询字符串的所述一部分是否与所述匹配同义词的语言特性匹配。
16.如权利要求15所述的计算机可读存储器,
其中所述指令集合当由所述处理器执行时,还使得所述处理器根据语言特性将每个预留短语分类成不同的组;
其中过滤所述同义词的候选列表还包括:
如果同义词的重复与来自不同组的预留短语相关联,则将同义词的重复保持原样。
17.如权利要求16所述的计算机可读存储器,
其中所述指令集合当由所述处理器执行时,还使得所述处理器根据相关联的预留短语的语言特性来对经过滤的同义词的候选列表中的每个同义词进行分类;
其中确定所述查询字符串的所述一部分是否与所述匹配同义词的语言特性匹配还包括:
根据所述查询字符串的所述一部分的语言特性对所述查询字符串的所述一部分进行分类;以及
仅当所述查询字符串的所述一部分的分类与所述匹配同义词的分类匹配时,才确定所述查询字符串的所述一部分与所述匹配同义词匹配。
18.如权利要求15所述的计算机可读存储器,其中所述指令集合当由所述处理器执行时,还使得所述处理器:
发送所述内容中与所述匹配同义词的预留短语相关联的所述一部分。
19.如权利要求15所述的计算机可读存储器,其中生成同义词的候选列表包括:
生成所述预留短语中的每个预留短语的子串变体的列表。
20.如权利要求15所述的计算机可读存储器,其中生成同义词的候选列表包括:
分析所述内容;以及
确定所述内容中的被用于指代所述预留短语中的每个预留短语的替代词。
21.如权利要求15所述的计算机可读存储器,其中语言特性包括名词、动词或地点中的至少一个。
CN201580055078.6A 2014-11-20 2015-10-28 上下文搜索字符串同义词的自动生成 Active CN106796608B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/548,553 2014-11-20
US14/548,553 US9690851B2 (en) 2014-11-20 2014-11-20 Automatic generation of contextual search string synonyms
PCT/US2015/057692 WO2016081170A1 (en) 2014-11-20 2015-10-28 Automatic generation of contextual search string synonyms

Publications (2)

Publication Number Publication Date
CN106796608A CN106796608A (zh) 2017-05-31
CN106796608B true CN106796608B (zh) 2018-07-20

Family

ID=54427898

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580055078.6A Active CN106796608B (zh) 2014-11-20 2015-10-28 上下文搜索字符串同义词的自动生成

Country Status (5)

Country Link
US (1) US9690851B2 (zh)
EP (1) EP3221800A1 (zh)
JP (1) JP6439043B2 (zh)
CN (1) CN106796608B (zh)
WO (1) WO2016081170A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690851B2 (en) 2014-11-20 2017-06-27 Oracle International Corporation Automatic generation of contextual search string synonyms
US10572810B2 (en) 2015-01-07 2020-02-25 Microsoft Technology Licensing, Llc Managing user interaction for input understanding determinations
US10249297B2 (en) * 2015-07-13 2019-04-02 Microsoft Technology Licensing, Llc Propagating conversational alternatives using delayed hypothesis binding
US10831800B2 (en) * 2016-08-26 2020-11-10 International Business Machines Corporation Query expansion
US10446137B2 (en) 2016-09-07 2019-10-15 Microsoft Technology Licensing, Llc Ambiguity resolving conversational understanding system
WO2018097091A1 (ja) * 2016-11-25 2018-05-31 日本電信電話株式会社 モデル作成装置、テキスト検索装置、モデル作成方法、テキスト検索方法、データ構造、及びプログラム
CN110287337A (zh) * 2019-06-19 2019-09-27 上海交通大学 基于深度学习和知识图谱获取医学同义词的系统及方法
US11089440B1 (en) 2020-03-02 2021-08-10 International Business Machines Corporation Management of geographically and temporarily distributed services
US11567981B2 (en) * 2020-04-15 2023-01-31 Adobe Inc. Model-based semantic text searching
US11458409B2 (en) * 2020-05-27 2022-10-04 Nvidia Corporation Automatic classification and reporting of inappropriate language in online applications
CN112434523B (zh) * 2020-11-25 2022-08-26 上海极链网络科技有限公司 一种降低敏感词谐音匹配误警率的文本审核装置及方法
US11880653B2 (en) * 2020-12-11 2024-01-23 International Business Machines Corporation Providing customized term explanation
KR102496551B1 (ko) * 2020-12-14 2023-02-06 서울대학교산학협력단 동의어 규칙을 이용한 문자열 매칭 방법 및 이를 구현하는 장치 및 프로그램

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101911069A (zh) * 2008-01-10 2010-12-08 国际商业机器公司 用于数据聚类和同义词的发现和修改的方法和系统
US8335791B1 (en) * 2006-12-28 2012-12-18 Amazon Technologies, Inc. Detecting synonyms and merging synonyms into search indexes

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06325018A (ja) * 1993-05-18 1994-11-25 Matsushita Electric Ind Co Ltd 辞書作成支援装置及びその方法
JP2005135113A (ja) * 2003-10-29 2005-05-26 Sony Corp 電子機器装置、関連語抽出方法及びプログラム
JP2006146802A (ja) * 2004-11-24 2006-06-08 Mitsubishi Electric Corp テキストマイニング装置およびテキストマイニング方法
US7478092B2 (en) 2005-07-21 2009-01-13 International Business Machines Corporation Key term extraction
US7720721B1 (en) * 2006-12-28 2010-05-18 Amazon Technologies, Inc. Method and system for analyzing user interaction to identify documents associated with dissimilar items that may contain synonyms
US8065283B2 (en) 2008-01-24 2011-11-22 Globalspec, Inc. Term synonym generation
US8135580B1 (en) * 2008-08-20 2012-03-13 Amazon Technologies, Inc. Multi-language relevance-based indexing and search
JP5008152B2 (ja) * 2009-09-25 2012-08-22 株式会社ファイブドライブ 調達情報検索システム
US20110184946A1 (en) 2010-01-28 2011-07-28 International Business Machines Corporation Applying synonyms to unify text search with faceted browsing classification
JP5079845B2 (ja) * 2010-05-28 2012-11-21 富士通株式会社 コンテンツナビゲーションプログラム
JP6108212B2 (ja) * 2013-01-07 2017-04-05 日本電気株式会社 同義語抽出システム、方法およびプログラム
CN103914492B (zh) * 2013-01-09 2018-02-27 阿里巴巴集团控股有限公司 查询词融合方法、商品信息发布方法和搜索方法及系统
US9690851B2 (en) 2014-11-20 2017-06-27 Oracle International Corporation Automatic generation of contextual search string synonyms

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8335791B1 (en) * 2006-12-28 2012-12-18 Amazon Technologies, Inc. Detecting synonyms and merging synonyms into search indexes
CN101911069A (zh) * 2008-01-10 2010-12-08 国际商业机器公司 用于数据聚类和同义词的发现和修改的方法和系统

Also Published As

Publication number Publication date
CN106796608A (zh) 2017-05-31
WO2016081170A1 (en) 2016-05-26
JP2017538198A (ja) 2017-12-21
EP3221800A1 (en) 2017-09-27
JP6439043B2 (ja) 2018-12-19
US20160147775A1 (en) 2016-05-26
US9690851B2 (en) 2017-06-27

Similar Documents

Publication Publication Date Title
CN106796608B (zh) 上下文搜索字符串同义词的自动生成
JP7411651B2 (ja) コンテンツアイテム推奨をランク付けするための技術
US11023441B2 (en) Distributed storage and processing of hierarchical data structures
JP7449919B2 (ja) 自律型エージェントおよびシソーラスを用いるデータベースのための自然言語インターフェイス
US11334583B2 (en) Techniques for semantic searching
CN107077466B (zh) 计算机自然语言处理中通用本体的词元映射
US20170177743A1 (en) Multidimensional spatial searching for identifying substantially similar data fields
US11756059B2 (en) Discovery of new business openings using web content analysis
US10102290B2 (en) Methods for identifying, ranking, and displaying subject matter experts on social networks
KR20150031234A (ko) 어플리케이션 검색들을 가능하게 하기 위해 사용되는 검색 인덱스의 업데이트
US10552464B2 (en) Identifying relevant material for cases
US10380124B2 (en) Searching data sets
CN108701155A (zh) 社交网络中的专家检测
US20170124181A1 (en) Automatic fuzzy matching of entities in context
CN111666417B (zh) 生成同义词的方法、装置、电子设备以及可读存储介质
US10262061B2 (en) Hierarchical data classification using frequency analysis
US20220207038A1 (en) Increasing pertinence of search results within a complex knowledge base
US20230068342A1 (en) Machine learning for similarity scores between different document schemas
US20230066143A1 (en) Generating similarity scores between different document schemas
US11810577B2 (en) Dialogue management using lattice walking
US20230252093A1 (en) Template builder and use for network analysis
Lo Truglio From Analysis to Application: Employing AI to Enhance User Experience at ESA

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
GR01 Patent grant
GR01 Patent grant