CN110488991A - 输入法编辑器应用平台 - Google Patents

输入法编辑器应用平台 Download PDF

Info

Publication number
CN110488991A
CN110488991A CN201910813634.1A CN201910813634A CN110488991A CN 110488991 A CN110488991 A CN 110488991A CN 201910813634 A CN201910813634 A CN 201910813634A CN 110488991 A CN110488991 A CN 110488991A
Authority
CN
China
Prior art keywords
application
ime
user
candidate
input
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
CN201910813634.1A
Other languages
English (en)
Inventor
M·R·斯科特
H·候
X·陈
W·刘
R·赖
Y·时
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN201910813634.1A priority Critical patent/CN110488991A/zh
Publication of CN110488991A publication Critical patent/CN110488991A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • 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/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/10Multimedia information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services

Abstract

本申请涉及一种输入法编辑器应用平台。输入法编辑器(IME)提供一种分布式平台架构,所述架构实现将多个应用与IME相关联以提供扩展的功能。诸如皮肤之类的应用的呈现可以彼此不同或不同于IME的呈现。应用可以以人类可读和可编辑的清单文件来表示。IME收集与到主应用中的用户输入相关的包括用户输入的查询和主应用的场景在内的多个参数并且基于所述应用依照所收集的多个参数的分数和排名来选择一个或多个应用以提供候选。可以使用机器学习来改进分数或排名。所述候选可以包括文本候选、富候选和信息性候选。

Description

输入法编辑器应用平台
本发明专利申请是国际申请号为PCT/CN2012/077436,国际申请日为2012年6月25日,进入中国国家阶段的申请号为201280074281.4,名称为“输入法编辑器应用平台”的发明专利申请的分案申请。
技术领域
本申请涉及输入法编辑器(IME),更具体地,涉及一种输入法编辑器应用平台
背景技术
常规的输入法编辑器(IME)是在计算设备处辅助用户输入文本的计算机应用。IME可以基于从用户接收的输入提供若干输入候选。所述输入和所提供的文本候选可以是相同或不同的语言。
例如,用户可以输入一个或多个单词或短语的初始英语字符,并且IME基于所述初始字符提供一个或多个完整单词或短语以供用户选择一个合适单词或短语。对于另一示例,IME还可以辅助用户输入非拉丁字符,比如中文。用户可以通过键盘输入拉丁字符。拉丁字符可以是中文字符的拼音。IME基于所述拼音返回一个或多个中文字符以供用户选择合适的一个字符。由于当前键盘常常仅支持输入拉丁字符,因此IME有助于用户输入非拉丁字符。
由用户选择的输入候选可以被插入到各个其他计算机应用中,比如聊天应用、文档编辑应用、游戏应用等等。
通常,常规IME仅仅提供文本形式的输入字符,并且通常使用单个源来标识输入候选,而不管使用IME的应用的类型。
发明内容
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并非旨在标识所要求保护的主题的关键特性或必要特性,也不旨在用于帮助确定所要求保护的主题的范围。例如,术语“技术”可以指上述上下文和本公开通篇所准许的设备、系统、方法、和/或计算机可读指令。
在此所述的输入法编辑器(IME)至少部分基于一个或多个参数来提供候选,其中用户可从所述候选中选择一个或多个以输入到主应用中。所述一个或多个参数例如可以包括:由用户输入到IME中的查询;主应用的场景;用户输入的上下文;和/或语言模式。所提供的候选不仅可以包括文本候选、而且可以包括富候选和信息性候选。用户可以选择文本候选和富候选中的一个或多个以作为用户输入。所述一个或多个信息性候选对用户可用,以说明或提供与另一候选相关联的信息。
另外,一个或多个应用可以与IME相关联以向IME提供扩展的功能,比如提供附加的候选。所述一个或多个应用可以被认为是对IME的扩展。一些应用可以具有驻留在本地设备和远程服务器处的组件,并且能够调用服务器处的组件或其他web服务来提供候选。用户可以从应用存储中选择一个或多个应用。可替代地,一个或多个应用可被预装或嵌入到IME内。IME可以至少部分基于所述一个或多个参数从相关联的多个应用中选择一个或多个应用以提供候选。另外,用户可以从IME中直接选择和启动一个或多个应用以提供候选。
例如,IME可以基于所述参数计算出应用的分数或排名,并且选择具有高于阈值的排名或分数的一个或多个应用。可以使用机器学习技术来调整一些属性,包括特定应用的分数或排名。用户还可以基于他/她的偏好来修改特定应用的属性。
多个应用可以并发和独立地运行以提供候选。应用的用户界面和功能去耦合。例如,诸如用户界面的皮肤之类的应用的外观样式可以彼此不同和/或不同于IME的外观样式。
附图说明
参考附图来描述具体实施方式。在附图中,附图标记最左边的数字标识该附图标记首次出现的附图。在各附图中,使用相同的标号来指示相同的特征和组件。
图1示出了在示例性聊天场景中通过示例性输入法编辑器(IME)来向用户提供候选的示例性概况。
图2示出了用于向用户提供一个或多个候选的示例性方法的流程图。
图3示出了用户可以从中选择要与IME相关联的一个或多个应用的示例性应用存储。
图4示出了描述与IME相关联的应用的特性的示例性清单方案。
图5示出了要被安装在IME的计算系统的客户端设备和/或服务器处的特定应用的示例性应用包格式。
图6示出了管理与IME相关联的应用的示例性应用配置界面。
图7示出了用于从与IME相关联的多个应用中选择应用的示例性方法的流程图。
图8示出了向用户提供信息性候选的示例性场景。
图9示出了用于在独立界面中启动应用以提供候选的示例性方法的流程图。
图10示出了在独立界面中启动地图应用的场景。
图11示出了用于在示例性电子邮件场景中插入候选的用户界面。
图12示出了用于在示例性文档场景中插入候选的用户界面。
图13示出了用于IME的示例性计算系统的所选组件。
具体实施方式
概览
所公开的技术描述了一种输入法编辑器(IME),所述输入法编辑器(IME)向用户提供供输入到另一计算机应用、即主应用中的候选。该IME至少部分地基于一个或多个参数来提供候选。该IME可以收集所述一个或多个参数,所述参数例如可以包括:由用户输入到IME中的查询;主应用的场景(例如聊天或发电子邮件);用户输入的上下文(例如计算应用的在先使用历史,比如聊天历史或在计算应用的用户界面处显示的内容,比如用户的在先输入);和/或语言模式(例如针对所期望的候选的英语或中文)。还可以基于当前用户输入的参数的组合来生成或标识出候选及其在多个候选中的显示位置的排名。例如,由用户在不同场景下输入到IME中的相同查询可能具有不同的候选和/或候选排名。
IME可以具有或调用一个或多个引擎来基于所述一个或多个参数搜索候选。所述引擎基于不同设定和配置搜索本地数据库和/或网络以提供候选。另外,一个或多个应用可以与IME相关联以向IME提供扩展的功能。每个应用都可以具有或调用其一个或多个引擎以提供附加的候选。应用存储的图形用户界面可以供用户用于选择用户感兴趣的应用并将其与IME相关联。例如,所选应用可以安装在IME内。可替代地,一个或多个应用可以预装或嵌入到IME中。在IME处存在应用的各个安装配置。在一个示例中,一些应用以可执行文件格式安装在IME处。在另一示例中,可以使用以声明性标记语言为格式的文件来描述与IME相关联的一个或多个应用的一个或多个特性、以及启用相关联的应用的行为。在此可称为清单文件的文件是人类可读和可编辑的。与IME相关联并以清单文件表示的一个或多个应用的特性例如可以包括特定应用何时取得资格以运行或被IME选中的条件以及依照与用户输入相关的一个或多个参数的特定组合来预设特定应用的分数或排名。
基于所收集的一个或多个参数,IME可以计算一些或所有相关联的应用和/或IME的引擎的分数和/或排名。IME可以选择分数或排名高于预设阈值的其自己的引擎或一个或多个应用来提供候选。应用配置界面可供用户用于管理相关联的应用,包括编辑它们的以清单文件描述的特性。
另外,用户可以基于所述一个或多个参数直接从IME选择和启动一个或多个应用以请求这样的应用提供附加的候选。这样的所启动的应用可以具有其自己的与IME的界面不同的独立用户界面,使得用户可以从所启动的应用输入查询和接收候选。
多个所选和/或所启动的应用可以并发和独立地运行以提供候选。在一个示例中,提供候选的功能同用户界面的外观样式(比如用户界面的皮肤)的功能去耦合。例如,用户界面的皮肤可以定义用户界面的显示窗口的外观,比如颜色和大小。换言之,多个应用的外观样式可以彼此不同和/或不同于IME的外观样式。
IME和/或所选应用可以基于所述一个或多个参数提供候选。所述候选可以包括一个或多个文本候选、富候选和/或信息性候选。文本候选是由文本格式的查询来表示或与其相关联的表达,并且可以包括诸如中文之类的非拉丁字符、以及诸如英语之类的拉丁字符。富候选是由文本以外形式的查询来表示或与其相关联的表达,并且可以包括图像或多媒体来向用户提供补充信息以增强用户体验。用户可以选择一个或多个文本候选和富候选作为到主应用的用户界面中的输入。信息性候选向用户提供另一候选的信息,比如背景或详细图示。例如,用户可能打算获悉特定文本或富候选的信息。在用户指示其兴趣以后,将相应的信息性候选提供给用户以供参考。
在IME从其自己的引擎和/或所选应用接收所生成或标识出的候选以后,IME可以通过IME的用户界面显示它们。IME可以具有一个或多个显示窗口来显示候选。例如,IME可以具有用于显示文本候选的文本候选窗口、用于显示富候选的富候选窗口、以及用于显示信息性候选的信息性候选窗口。除非与此处的描述相抵触,文本候选和富候选的细节在Scott等人的美国专利申请No.13/331,023“Scenario-adaptive input method editor(场景自适应输入法编辑器)”中予以了描述,该申请并入本申请。
所述一个或多个显示窗口与IME并发地呈现,或者在IME确定存在要显示的相应类型的候选时可用。在一些示例中,信息性候选窗口可以仅当用户指示他/她有兴趣获悉与一个特定候选相关联的更多信息并且IME确定存在这样的信息性候选时出现并显示该信息性候选。
在IME从用户接收到针对一个或多个所显示候选(比如文本或富候选)的选择时,IME将所选候选插入到主应用的用户界面中以作为用户输入。IME可以将所选候选以主应用所支持的最优格式插入到主应用中。
存在各种配置以供部署IME、应用存储和/或应用。在一个实施例中,IME、应用和/或应用存储的所有组件都位于客户端设备处。在另一实施例中,IME、应用和/或应用存储中的每个都可以以客户端-服务器架构来实现,其中一些组件位于客户端设备处而一些组件位于相对于客户端设备的远程服务器处。
使用IME的用户输入的示例性场景
图1示出了在示例性聊天场景中通过示例性输入法编辑器(IME)来向用户提供候选的示例性概况100。用户102通过IME 106的用户界面104将一个或多个对象108输入到主应用110的用户界面中。IME106的用户界面104和主应用110的用户界面二者同时呈现在客户端设备112的用户界面处。用户102可以使用鼠标、触摸屏、语音或任何其他输入技术来作出用户输入。
在图1的示例中,主应用110是诸如微软之类的聊天应用。主应用110的用户界面包括两个窗口,即聊天窗口114和输入窗口116。聊天窗口114显示已经被输入到主应用110的用户界面中的对象108。对象108可包括文本和/或富对象。在图1的示例中,对象108是文本对象“Jack:Where are you?(Jack:你在哪?)”,“Me:I’m home now.(我:我现在在家。)”,“Jack:Where to go tonight?(Jack:今晚去哪儿?)”。Jack是与用户102聊天的另一方的用户名。“我”是用户102的表示。
输入窗口116包括要作为对象108被输入到聊天窗口114中的一个或多个输入对象118。在图1的示例中,输入对象118是文本对象“Meet me at”(在…见我)。由“|”表示的输入指示120表示对插入下一输入对象118的位置的指示。输入指示120例如可以是诸如鼠标之类的输入技术输入下一输入对象116的焦点。输入指示120还指示:尤其是包含运行中的计算机应用中的输入应用120的主应用110是从IME 106接收输入对象118的应用。
用户102可以使用IME 106来提供输入对象118。例如,用户102将查询122输入到IME 106的用户界面104中。IME 106在用户界面104处呈现一个或多个候选以供用户102选为到主应用110的输入窗口116中的输入对象118。另外,一个或多个应用124可以与IME 106相关联以向IME 106提供扩展的功能,比如附加的候选。所述一个或多个相关联的应用124可以由用户102选自包括多个应用的应用存储(图1中未示出)。可替代地,所述一个或多个应用124可以与IME 106一起预装在客户端设备112处。
在图1的示例中,相关联的应用124包括计算器应用126、地图应用128以及天气应用130。IME 106和应用124中的每个都可以以客户端-服务器架构来实现,其中一些组件位于客户端设备112处,并且一些组件位于服务器132处,所述服务器132通过网络134与客户端设备112通信。网络134可以是内联网或因特网。在图1的示例中,计算器应用126驻留在客户端设备112处,而IME 106、地图应用128以及天气应用130具有驻留在客户端设备112和服务器132二者处的组件。
用户102通过使用任何输入技术将查询122输入到IME 106的用户界面104中。查询122可以是任何类型的输入,比如文本、多媒体或用户102的音频输入。例如,查询122可表示文本候选136的一系列首字母、缩写、拼写、和/或翻译。在图1的示例中,查询122是英语字符串“sanlitun”,其表示中文字符“三里屯”的拼音或发音。
IME 106收集与来自用户102的输入相关的一个或多个参数,并且基于所述一个或多个参数选择相关联的应用124至少之一来向用户102提供一个或多个候选。
例如,所述一个或多个参数可以包括查询122和用户输入的场景。用户输入的场景可以包括主应用110的场景、即图1中的聊天。所述一个或多个参数还可以包括用户102的输入的上下文,比如由用户102和另一方“Jack”在主应用110的用户界面处作出的先前的输入。在图1的示例中,IME 106可以捕捉已经被输入到主应用110的聊天窗口114中的对象108、主应用110的输入窗口116处的输入对象118、或者二者来获得输入的上下文。
所述一个或多个参数还可以包括语言模式(例如英语或中文)以指示用户输入的语言。例如,如果语言模式是简体中文,则选择和排名优先级具有对简体中文字符的偏好、在简体中文下的表达样式的偏好、或者对来自具有简体中文字符的网页的数据源的偏好。相反,如果语言模式是繁体中文,则选择和排名优先级具有对繁体中文字符的偏好、在繁体中文下的表达样式的偏好、或者对来自具有繁体中文字符的网页的数据源的偏好。
所述一个或多个参数还可以包括主应用的之前使用历史,比如在主应用110为聊天应用时的聊天历史。
IME 106可以基于所述一个或多个参数至少之一为一些或所有应用124计算分数并对它们进行排名。IME 106可以从应用124中选择具有高于分数阈值的分数和/或高于排名阈值的排名的一个或多个应用以向用户102提供一个或多个候选。
所选应用还可以向用户102标识出或生成一个或多个候选。换言之,候选可以由IME 106所调用的一个或多个引擎、来自应用124的一个或多个所选应用、或者二者来提供。IME 106和/或所选应用对候选的选择和排名还可以基于候选与一个或多个所收集参数的相关度。例如,与主应用110的场景具有较高相关度的文本候选或富候选可以被排名为具有比要呈现给用户102的文本候选136和/或富候选138中的其他候选更高的优先级。
在IME 106的用户界面104处呈现的候选可以包括一个或多个文本候选136、一个或多个富候选138、和/或一个或多个信息性候选140。用户102可以从文本候选136和/或富候选138中选择一个或多个候选以作为要输入到主应用110的输入窗口116中的输入对象118。
文本候选136可以是任何种类的文本,比如拉丁字符(例如英语)、非拉丁字符(例如中文)、符号、数字或不同种类的文本的混合。查询122和文本候选136可以是相同或不同的语言。
附加于文本,富候选138还可包括附加于文本候选136向用户102提供补充信息的图片、地图、视频和/或其他形式的表示。
信息性候选140用于说明或提供查询122、文本候选136或富候选138的信息。例如,用户102可以使用诸如鼠标之类的输入技术来定点到相应的文本候选136或富候选138以示出:用户102想要知道与这样的候选相关联的更多信息。然后,IME 106和/或所选应用可以向用户呈现信息性候选140。在一些示例中,如果用户102有兴趣获悉与诸如信息性候选140内的单词或多媒体的一些内容相关联的信息,则用户102可以继续定点到这样的内容以获得说明信息性候选140的另一信息性候选(图1中未示出)。
由于信息性候选140是出于说明目的,因为它们常常不能被用户102直接选为输入对象118。然而,在一些示例中,102仍然可以选择它们并将它们作为输入对象插入。例如,用户102可以复制信息性候选140的内容,并且将其粘贴到主应用110的用户界面中以作为输入对象118。
在图1的示例中,基于诸如包括输入对象118“Meet me at(在…见我)”的用户输入的上下文之类的所收集参数,IME 106可以确定查询122“sanlitun”涉及一位置并且地图应用128在应用124中具有最高相关度分数。IME 106从相关联的应用128中选择地图应用128以提供包括附加候选的扩展功能。地图应用128可以调用其客户端组件或服务器组件或者调用web服务以基于查询122“sanlitun”和一个或多个其他参数提供候选。例如,地图应用128可以调用web服务,所述web服务具有被调谐到搜索“sanlitun”的地图功能的引擎。该web服务可以是被调谐到地图搜索的搜索引擎。在另一示例中,地图应用128还可以将诸如“三里屯”之类的一个或多个文本候选136用作查询或者甚至将一个或多个富候选138(未示出)用作搜索项。
在图1的示例中,文本候选136包括第一文本候选“三里屯”、第二文本候选“三里屯village”、以及第三文本候选“三里屯酒吧”,第三文本候选在英语中是指“sanlitun bar”。文本候选136例如可以由IME 106的引擎基于查询122和IME针对查询122的语言模式和/或一些其他参数来提供。可替代地,文本候选136可以由文本候选应用(图1中未示出)来提供,所述文本候选应用覆盖IME 106的提供文本候选136的功能。文本候选136中的三个文本候选的排名基于它们与所收集的一个或多个参数的相关度。因为图1的示例中的语言模式是简体中文,因此所提供的文本候选126主要是中文字符,但是仍然可能存在一些英语字符,比如第二文本候选中的“village”。
在图1的示例中,所选应用、即地图应用128提供富候选138、即地图“三里屯”。地图应用128基于查询122和/或其他参数生成或标识出“三里屯”的地图。基于诸如用户输入的上下文之类的其他一些参数,地图应用128还可以生成示出从用户102和/或“Jack”、即正在通过主应用110与用户102通信的另一个人、的当前位置到“三里屯”的路线的另一地图(图1中未示出)。
在候选被IME 106和/或所选应用生成、标识和排名以后,IME 106通过用户界面104将它们以适用于候选的类型的格式显示给用户102。
在图1的示例中,IME 106的用户界面104可以包括:用于接收和呈现查询122的撰写窗口142;用于显示文本候选136的文本候选窗口144;以及用于显示富候选138的富候选窗口146。文本候选窗口144和/或富候选窗口146可以与撰写窗口120并发地出现。可替代地,文本候选窗口144和/或富候选窗口146可以仅当存在相应文本候选136或富候选138可用时呈现。
IME 106的用户界面104还可以包括信息性候选窗口148以显示信息性候选140。在图1的示例中,当用户102在富候选138、即“三里屯”的地图上标识出诸如餐馆之类的感兴趣点150时,IME 106可以在信息性候选窗口148中显示与感兴趣点150相关联的信息性候选140,比如该餐馆的地址和营业时间、即“工体路1号…营业时间:10:00am–10:00pm”,这在英语中是指“No.1,Gongti Road…Business hours:10:00am–10:00pm”。
附加于IME 106从应用124中自动选择一个或多个应用的方法,用户102可以从应用124中直接选择和启动一个或多个应用。例如,IME 106可以向用户102提供界面(图1中未示出)以从应用124中直接选择和启动一个或多个应用。在图1的示例中,用户102从IME提供的界面中直接选择天气应用130,因为用户102可能想要知道天气信息。所启动的天气应用130可以在同IME 106的用户界面104分开和独立的独立界面中呈现在客户端设备112的用户界面处。
在图1的示例中,所启动的天气应用130可以包括查询窗口152和显示窗口154。查询窗口152接收查询156,所述查询156可以与查询122相同或不同。例如,IME 106可以自动将查询122的副本作为查询156发送给查询窗口152。可替代地,如图1所示,用户102可以直接输入查询156或者使用IME 106将查询156输入到查询窗口152中。在所示的示例中,在查询窗口152中,查询156“三里屯”表示“sanlitun”的中文字符。显示窗口154显示由天气应用130基于查询156和/或其他一些所收集的参数(比如主应用110的场景、用户输入的上下文等等)所提供的一个或多个候选158。
在图1的示例中,由天气应用130提供的候选158可以包括由“三里屯”表示的位置的当前天气和天气预报、例如“现在气温23C…今晚多云”,这在英语中是指“currenttemperature 23Celsius…tonight cloudy”。天气应用130考虑到了例如简体中文之类的语言模式的参数,并且不仅以简体中文字符、而且以简体中文中优选的表达样式来呈现候选158。例如,在简体中文下,温度的优选表达是摄氏、而不是华氏。天气应用130例如基于输入对象“meet me at(在…见我)”还考虑到用户输入的上下文的参数,天气应用130预测用户102想要知道天气预报,并且在候选158中提供“今晚多云”信息。用户102可以查看作为附加信息源的候选158,并且可以选择一个或多个候选158以作为要输入到主应用110的用户界面中的输入对象118。
当用户102定点到查询152或候选158时,另一信息性候选(图1中未示出)如果可用则也可以在另一信息性候选窗口(未示出)中呈现给用户102。
用于执行在此所述的技术的示例性方法和计算系统将在下面予以详细讨论。图1的IME 106可以使用、但不限于下面所述的技术来实现其功能。在此所述的参考每个附图的技术可以同依照其他附图所讨论的技术独立或相组合。这些示例方法可在计算机可执行指令的一般上下文中描述。一般而言,计算机可执行指令可以包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、过程、模块、功能等等。这些方法还能在其中功能由通过通信网络或通信云链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,计算机可执行指令可位于本地和远程存储器两者中。
这些示例方法有时被示出为逻辑流程图中框的集合,这表示可用硬件、软件、固件、或其组合来实现的一系列操作。描述方法的次序并不旨在被解释为限制,并且任意数量的所描述的框可以按任何次序组合以实现这些方法或替换方法。另外,可从方法中省去各个操作,而不背离此处所述的主题的精神和范围。在软件的上下文中,各个框表示当由一个或多个处理器执行时完成既定操作的计算机可执行指令。
用于提供候选的示例性技术
图2示出了用于向用户提供一个或多个候选的示例性方法200的流程图。在202,IME收集与用户输入相关的一个或多个参数。在示例性实施方式中,IME具有多个运行时状态。202的操作对应于IME的查询状态,在此期间,IME的计算系统监听用户的输入,捕捉输入,准备包括所述一个或多个所收集参数的输入的增强型查询,并且发送增强型查询以供进一步处理。所述一个或多个参数例如可以包括:由用户输入的查询;用户输入的场景,比如主应用的场景;用户输入的上下文;和/或语言模式。存在各种替代方案来准备增强型查询以供进一步处理。在一个示例中,IME可以在经排序的列表中预选一个或多个有资格被启用以在查询状态下处理增强型查询的合格应用,并且还在服务状态下从合格应用中选择一个或多个应用,这在下面予以详细描述。该经排序的列表可以称为竞争者的矢量,因为每个合格应用都充当竞争者。
在另一示例中,在查询状态下,IME在不预选应用的情况下收集多个参数,并且在服务状态下从多个应用中选择所述一个或多个应用。
在图1的示例中,IME106可以在客户端设备110的界面处打开的多个计算机应用中标识出接收输入对象118的主应用110。IME 106例如可以检查输入指示120以标识出主应用110。在标识出接收输入对象118的主应用110之后,IME可以收集与主应用110的场景相关的数据,比如主应用110的名称和版本。在图1的示例中,例如主应用110的名称是微软而主应用110的版本是用于Windows的MSN Messenger 7.5。IME 106可以将主应用110的名称与本地或远程数据库相比较以确定主应用110、即微软是聊天应用。例如,计算机应用的名称可与场景列表相比较。该场景列表存储了计算机应用与情景之间的对应关系。例如,该列表可指示:计算机应用微软对应于聊天场景,而计算机应用微软对应于文档编辑场景。这样的场景列表可被周期地更新以包括与新的计算机应用的对应关系,以及更新对应关系。
IME 106还可捕捉显示在主应用110的用户界面处的当前内容,比如聊天窗口114中的对象108以及输入窗口116处的输入对象118。例如,IME 106可基于诸如OCR之类的视觉理解技术使用屏幕像素信息来标识出所显示的内容。在图1的示例中,IME 106可捕捉显示在主应用108的界面处的聊天,比如输入对象108“Jack:Where are you?Me:I am homenow.Jack:Where to go tonight?”。
IME 106还可收集使用主应用110的先前用户历史。这样的用户历史可被本地存储或远程存储,并可有助于分析最近输入的上下文。例如,当主应用110是微软的时,用户历史可以是用户的聊天历史。
显示在主应用110的用户界面处的内容以及先前的用户历史也可用于标识出主应用110的场景。例如,基于主应用110的用户界面处显示的内容的上下文,IME可基于从聊天窗口114中的对象108中标识出的聊天模式来确定它是聊天场景。
在204,IME基于所收集的参数从多个应用中选择一个或多个应用以提供候选。204的操作可以对应于IME的服务状态,在此期间,IME的计算系统接收包括与用户输入相关的多个参数的增强型查询,处理增强型查询,从应用和/或IME的引擎中选择一个或多个引擎以提供候选,处理来自所选一个或多个引擎的候选响应,将来自所选引擎的候选响应打包,以及使响应返回到合适形式以供在显示状态下进行处理,这在下面予以详细描述。
在图1的示例中,IME 106可以基于所述一个或多个参数中的至少之一为一些或所有应用124计算分数并对它们进行排名。IME 106可以从应用124中选择具有高于阈值的分数或高于阈值的排名的一个或多个应用以向用户102提供一个或多个候选。所选应用可以通过使用查询122和/或其他一些参数来标识出或生成所述一个或多个候选。在一个示例中,IME可以被限于选择具有最高分数或排名的一个应用来提供候选。在多个特定应用具有相同最高分数或排名的情况下,IME的服务器组件可以基于多个应用的控制以外的因素来作出判定。例如,IME可以分析其他用户在相同或类似场景下的选择以作出选择。
所选应用中的一些可能已经与IME相关联,比如图1中的相关联的应用124。在其他一些示例中,所选应用中的一些可能还未与IME相关联。IME可以在IME的用户界面处提示消息以请求用户安装特定应用或者可以自动安装这样的应用。IME还可以检查应用的版本号以确定其是否在IME的特定客户端组件处得到支持。如果其不被支持,则IME可以在IME的用户界面处提示另一消息以请求用户更新客户端组件或者可以自动更新IME的客户端组件。
在206,IME使用IME的用户界面显示所述一个或多个候选。206的操作对应于IME的显示状态,在此期间,IME的计算系统接收从服务状态得到的响应,对所得到的响应进行预处理和显示,并且在IME的用户界面处监听和响应用户交互。存在各种技术来显示候选。
例如,IME可以具有用于显示文本候选的文本候选窗口、用于显示富候选的富候选窗口、以及用于显示信息性候选的信息性候选窗口。IME可以在存在相应的文本候选和/或富候选时呈现文本候选窗口和/或富候选窗口。在另一示例中,IME可以即使在不存在相应的文本候选和/或富候选时仍然呈现文本候选窗口和富候选窗口。
IME可以在接收到表示用户有兴趣更多地获悉相应候选的指示时呈现信息性候选窗口以显示与相应候选相关联的信息性候选。可替代地,这样的信息性候选窗口可以在存在与相应候选相关联的相应信息性候选时与相应候选一起自动呈现,而不管用户是否定点到该相应候选。例如,信息性候选窗口和/或相应候选可以是半透明的,并且信息性候选窗口可以显示为紧密接近相应候选。
在一个示例中,IME的用户界面提供一个文本候选窗口、一个富候选窗口和/或一个信息性候选窗口。IME从不同的所选应用和/或其自己的引擎接收文本候选,基于所述一个或多个所收集的参数对它们进行排名,并且将它们显示在一个文本候选窗口中。类似地,IME从不同的所选应用和/或其自己的引擎接收富候选,基于所述一个或多个所收集的参数对它们进行排名,并且将它们显示在一个富候选窗口中。在另一示例中,每个应用都可以具有其自己的文本候选窗口、富候选窗口和/或信息性候选窗口。由特定应用提供的候选还由特定应用来排名并且显示在相应候选窗口中。
存在适用于在此所述的候选显示的各种呈现样式,比如皮肤。在一个示例中,IME可以向应用提供统一呈现样式。在另一示例中,所选应用和/或IME中的每个都可以具有诸如皮肤之类的单独且独立的呈现样式以分别在显示窗口中显示它们的所生成或标识出的候选。例如,IME和应用可以具有诸如文本候选窗口、富候选窗口或信息性候选窗口之类的单独的显示窗口来显示它们的相应候选。例如,富候选窗口146显示由地图应用128提供的富候选138。富候选窗口146的诸如皮肤之类的呈现样式可以不同于显示由另一应用或IME106提供的文本候选136的文本候选窗口144。对于另一实例,由用户102在独立窗口中启动的天气应用130的候选窗口154的呈现样式可以不同于IME106的用户界面104处的文本候选窗口144和富候选窗口146的呈现样式。IME还可以向用户提供界面以为不同应用选择不同呈现样式,比如不同皮肤。用户可以分别为IME和应用选择不同的可用皮肤。
在208,IME接收表示用户已经从所显示的候选中选择一个或多个候选的指示,并且将所选候选插入到主应用的用户界面中。208的操作对应于IME的插入状态,在此期间,IME的计算系统在显示状态下接收到用户交互以后作出到主应用中的插入请求。例如,IME可以检查主应用所支持的形式或格式,以及将所选候选格式化为主应用支持的最优格式。
示例性应用存储
图3示出了用户可以从中选择要与IME相关联的一个或多个应用的示例性应用存储。应用存储302的图形用户界面(GUI)呈现在客户端设备304的用户界面处。图1的应用124可以选自在此所呈现的应用存储302的GUI。
在图3的示例中,应用存储302可以是输入法编辑器(IME)306的一部分,并且可以从IME 306的用户界面启动。可替代地,应用存储可以是独立于IME 306的应用。
应用存储302的GUI包括一个或多个图标,并且每个图标都表示可供用户选择的相应应用。应用中的一些可以已经在客户端设备304处可用。例如,一个或多个应用可以已经预装在IME 306处并且不要求用户选择。对于另一示例,一些应用可以驻留在远程服务器处。用户选择表示他/她期望的应用的图标以从服务器下载该应用或其客户端组件。在图3的示例中,IME 306可以从通过网络310与客户端设备304连接的服务器308下载所选应用。服务器308可以主存IME 306的服务器组件和通过应用存储可用的多个应用二者。在另一示例中,每个相应应用都可以由不同服务器来主存,并且由此IME 306可以从相应应用所驻留在的不同服务器下载应用。
在图3的示例中,应用存储302的GUI列出多个应用,包括地图应用图标312、天气应用图标314、计算器应用图标316、地址簿应用图标318、占星术应用图标320、以及游戏应用图标322。
在用户在应用存储302的GUI处逐一地或批量地选择他/她所期望的应用图标(比如图3中的地图应用图标312、天气应用图标314和计算器应用图标316)以后,由这样的所选图标表示的应用、即地图应用324、天气应用326和计算器应用328被安装在客户端设备304处。如果所选应用利用客户端-服务器结构,则从服务器308下载应用的客户端组件,而服务器组件(图3中未示出)仍然保留在服务器308处。
在图3的示例中,IME 306可以具有安装器330来管理所选应用的下载和安装。例如,安装器330可以从服务器308下载相应特定应用的经zip压缩的文件,并且在客户端设备304处的指定类别的存储器中对经zip压缩的文件进行解zip压缩。
在一个示例中,如图1所示,应用的客户端组件可以与IME 306的客户端组件一起或作为其一部分安装在客户端设备304处。可替代地,应用的客户端组件和IME的客户端组件可以作为独立实体安装在客户端设备处。类似地,应用的服务器组件可以与IME的服务器组件一起或作为其一部分安装。可替代地,应用的服务器组件和IME的服务器组件可以是服务器处的独立实体或者驻留在不同服务器处。
应用中的一些可以是不要求用户注册来使用的国内或在线服务,比如地图。应用中的一些可以是要求用户注册来使用的国内或在线服务、或者要求用户注册以基于所保存的在先用户偏好、历史数据等提供更多功能的服务。IME 306或应用可以预先存储用户的认证凭证以登录并使用这样的服务。
描述应用特性的示例性清单文件
各个应用配置可被安装在IME处。在一个示例中,一些应用以可执行文件格式安装在IME处。在另一示例中,IME可以使用具有诸如可扩展标记语言(XML)之类的声明性标记语言形式的文件来描述与IME相关联的一个或多个应用的一个或多个特性。该标记语言文件是人类可读和可编辑的,并且在此称为清单或清单文件。清单文件是自描述的文档。起始点是,加载相应的应用并且在客户端设备和/或服务器处由IME的计算系统以说明性方式来解释以启用应用行为。其还用于自动展示关于相应应用的配置信息。清单文件可以驻留在IME的计算系统的客户端和服务器组件二者处。
清单文件可以包括清单方案和清单。具有声明性标记语言形式的清单方案描述IME的计算系统所支持的清单特征。清单描述特定应用。清单中的针对特定应用的特征应符合清单方案中的规范。特定应用的清单可以是同清单方案独立的文件。可替代地,不同应用的清单和清单方案可被组合在一个清单文件中。清单方案可以展示对于所支持的场景的枚举。应用的应用开发者可以参考清单方案以作为对IME的计算系统的当前能力的基线参考。
图4示出了示例性清单方案400。清单方案400包括诸如版本号之类的版本402以及各个元素404,所述元素充当模板以规定特定应用的清单应符合的规范。清单文件中的针对特定应用的各个属性在IME处在该特定应用的运行时状态期间启用该特定应用的特性。元素404包括与IME相关联的每个应用的清单应具有的各个所需元素406、以及与IME相关联的每个应用的清单可以任选地具有的任选元素408。
在图4的示例中,所需元素406包括身份元素410、运行资格确定元素412、选择概率元素414、引擎元素416、显示元素418、以及插入元素420。任选元素408包括高级查询元素422、信息性候选元素424以及IME访问控制元素426。不同清单方案、所需元素和任选元素的数目和类型可以不同,并且一些元素可以在一个示例中是所需元素并且在另一示例中是任选元素。
版本402描述清单方案400的当前版本。例如,清单方案400可以驻留在IME的计算系统的服务器处。IME的计算系统的客户端设备可以具有之前从服务器下载的本地清单方案。
由于清单方案定义了IME的计算系统所支持的应用的规范,因此IME的计算系统检查本地清单的版本是否与存储在服务器处的清单方案400的版本相匹配。如果客户端设备和服务器处的清单方案的两个版本不匹配,则IME的计算系统将本地清单方案更新到最新版本和/或检查两个版本是否兼容。如果客户端设备和服务器处的清单方案的版本不匹配并且不兼容,则IME的计算系统可以禁用IME或者请求用户安装具有清单方案的最新版本的IME。
例如,如果客户端设备和服务器处的清单方案的版本不匹配,则IME的计算系统检查IME的客户端组件是否已经更新、但本地清单方案未被更新。如果确定IME的客户端组件已经更新、但本地清单方案未被更新,则IME的计算系统将本地清单方案更新到清单方案400的最新版本。例如,IME的客户端组件在本地清单方案中检查更新元素。如果存在更新,则IME可以提示用户下载清单方案400的最新版本,或者清单方案400可以根据更新元素中的属性自动从服务器下载到客户端。任选地,清单方案400可以在后台下载或安装。
如果IME的客户端组件所支持的清单方案的最新版本被下载和安装并且其仍然与清单方案400的服务器版本不匹配,则可能的是,存在IME的客户端组件的经更新版本并且IME的计算系统将检查IME的客户端组件的最新版本,并且如果存在这样的版本,则将提示用户更新IME的客户端组件以支持清单方案400。
图4中所示的各个元素404是清单方案400的根级元素。每个元素都具有一个或多个子元素,这些元素在下面不予详细描述。在图4的示例中,身份元素410是所需元素,其描述相应应用的身份。运行资格确定元素412是所需元素,其声明相应应用何时有资格运行或应考虑激活的一个或多个条件。
选择概率元素414是所需元素,其提供:在诸如输入和上下文条件之类的参数的什么组合下,相应应用应当被认为是服务竞争者的概率。具体而言,其可以为不同类型的输入和上下文声明或计算“分数”。简言之,其具有用于充分利用语义标签以及还有常规表达的语言。
引擎元素416是所需元素,其声明:应用的引擎是位于客户端设备处、服务器处、还是二者处。如果引擎处于本地设备处,则引擎元素416可以进一步声明所需要的“挂钩”和所需的能力例如以用于存储和网络访问。相应应用的引擎基于由IME和/或相应应用所收集的一个或多个参数来提供候选。
显示元素418是所需元素,其声明:IME的计算系统将如何显示该特定应用。其考虑到不同主应用的场景并且描述如何根据场景来变换呈现。通过这种方式,主应用可以对如何显示候选产生影响。
插入元素420是所需元素,其声明:如何将来自所选候选的数据变换成主应用可以接收的形式,并且根据场景声明:候选是否可以“最优地”变换到主应用中。例如,可以将电子邮件候选变换成电子邮件程序中的特殊电子邮件链接或者简单笔记程序中的纯文本。
高级查询元素422是任选元素,其声明为了增强在特定应用为服务的竞争者的情况下将形成的查询所需的某些种类的添加。例如,由IME生成的本地文本候选、以及上下文中的一些(例如IME或主应用的查询中的文本的剩余n元或之前编写的M个字符)可被发送以用于服务。n元是来自给定文本序列的n项的连续序列,其中n和M可以是任何整数,并且可以在高级查询元素42中规定。
信息性候选元素424是与信息性候选相关的任选显示元素,其在此亦称工具提示(tooltip)。其声明:如何为特定应用所生成的候选呈递特殊工具提示。例如,其为用户提供了在用户指示鼠标悬停或键盘快捷方式以后获得关于候选的信息的方式。
IME访问控制元素426是任选元素,其声明:应用是否需要较低级的脚本能力。例如,IME访问控制元素426可以指向应用包内的JScript文件和回调函数,使得其可以被激活。Jscript是对脚本语言的一种实施方式,其用在的Internet中。JScrpt在此仅仅是一个示例。还可以使用任何其他脚本语言,比如JavaScript ActionScript。
由于IME访问控制元素426可以允许修改IME的任何部分,因此在任何时间都仅能加载具有依照IME访问控制元素426被启用的特性的一个应用,并且IME基于IME访问控制元素426将向用户提醒:特定应用需要特殊许可。该元素的效用性通常在如下企业中得到体现:所述企业出于IT需求需要对IME进行附加的扩充,比如统一部署、重写或者出于安全原因禁止特定应用或IME的个人配置。
下面在表1示例性清单方案实施方式中示出了示例性的清单方案。在该表1中,身份元素410被命名为“Identity(身份)”,运行资格确定元素412被命名为“WhenRun(何时运行)”,选择概率元素414被命名为“LikelihoodQuickCheck(可能性快速检查)”,引擎元素416被命名为“Engine(引擎)”,显示元素418被命名为“Display(显示)”,插入元素420被命名为“Insertion(插入)”,高级查询元素422被命名为“QueryAugmentation(查询扩充)”,信息性候选元素424被命名为“Tooltip(工具提示)”,并且IME访问控制元素426被命名为“CustomScript(自定义脚本)”。表1示出了为不同元素及其相应的子元素、以及相应应用应具有或支持的属性提供模板的示例性清单方案。
表1示例性清单方案实施方式
基于该清单方案,下面在表2中示出了示例性地图应用的清单。该示例性地图应用能够提供和呈现地图作为富候选。表2示出了清单遵循清单方案中的模板和规范,并且提供了特定地图应用的不同元素的详细属性数据。
表2示例性地图应用的清单
IME还可以提供一种机制以供相关联的应用可以充分利用IME提供的功能并且甚至可以修改IME。如图4所示,IME访问控制元素426通常由诸如企业之类的需要对IME进行附加扩充的组的开发者来使用。例如,IT管理员可以修改IME以满足一组人的需求或企业的策略,并且在组内部署经修改的IME。
表1和表2中的CustomScript元素是IME访问控制元素426的特定实例。例如,清单中的CustomScript为相应应用声明较低级的脚本能力。例如,由于CustomScript元素可被调用以修改IME的任何部分,因此在任何时间仅能加载具有所启用的CustomScript功能的一个应用,因为二者都具有所启用的CustomScript功能的两个运行中的应用可能彼此冲突并且竞争资源。
CustomScript元素提供了用于充分利用IME的功能但还提高安全考量的强大技术。因此,当相应应用被安装时,计算系统还可以向用户警告和提醒:该应用需要特殊的许可。另外,用户可能必须被标识为具有特权来安装清单具有CustomScript元素的应用。例如,可以在微软操作系统下提示用户同意在管理员模式下、而不是作为访客进行该安装。
为了定义CustomScript,所需元素是清单中的Identity和CustomScript。例如,CustomScript可以指向应用包的CustomScript文件夹中的Jscript文件和回调串以指向该脚本的main函数。表3示出了包括CustomScript元素的IME访问控制的示例性清单。
表3 IME访问控制的示例性清单
在示例性实施方式中,当用在微软操作系统中时,基于IME访问控制元素426的启用脚本的IME可被构建在对象链接和嵌入(OLE)自动化(“自动化”)技术上。自动化基于组件对象模型(“COM”)并且是一种进程间通信技术,其使得一个应用能够获得对另一应用的所展示功能的访问。在示例性实施方式的场景中,一个应用可以具有CustomScript并且另一应用是具有脚本需要访问的核心组件的IME。为了实现例如以C++和JScript语言编写的IME组件的之间的通信,IME组件应当实现IDispatch接口。考虑到C++与Jscript语言之间的互操作涉及变量检查、错误处理等等,计算系统可以实现独立的类来充当IME核心组件与脚本语言之间的代理。示例性的流程如下:(1)终端用户启动IME;(2)IME初始化脚本主机;(3)脚本主机加载和解析Jscript文件;以及(4)Jscript文件的编程逻辑不直接访问IME核心组件,而是访问代理层。用户使用IME并且IME核初始化脚本主机,所述脚本主机加载和解析JS文件,并且JS文件经由脚本主机通过充当代理的ImeRoot来操纵IME核。通过该代理,IME的所有主要函数都被展示。该脚本是经解释的语言,因此需要“脚本主机”来解析和运行脚本并且脚本通过脚本主机来操作IME。
图5示出了要安装在IME的计算系统的客户端设备和/或服务器处的特定应用的示例性应用包格式500。应用包502包括清单504和一个或多个部分506。如上所示,清单504可以为诸如XML之类的声明性标记语言的形式以充当自描述文件。部分506可以包括应用包502下的一个或多个子文件夹。每个子文件夹都可以对应于清单504中陈述的元素。在图5的示例中,部分506包括显示子文件夹508、插入子文件夹510、信息性候选子文件夹512、引擎子文件夹514以及IME访问控制子文件夹516。
应用包格式500可以基于开放标准并且因此可以在任何操作系统上并且在没有任何特定产品的特殊解释的情况下被检查。应用包格式500可以使用zip打包(zlib)和XML格式。附加的部分506在语义上映射到上述运行时状态,并且还可以包含开放格式文件,比如HTML、CSS、Jscript、Png、XSLT等等。
例如,部分506的子文件夹可以是任选的,因为仅在它们在清单504中被引用的情况下才需要它们。诸如.dll和词典二进制之类的二进制文件(不包括.png、.gif、.jpg)通常仅在引擎子文件夹514中被允许。在一个示例中,除了部分506以外,仅仅文件可以被添加到应用包502。限制什么可以被添加的意图在于使包格式500更加有效、可靠和安全。包格式500是有效的,因为该格式是尽可能扁平的,并且因此子路径不需要被枚举或搜索。该格式是可靠的,因为该格式努力尽可能避免不必要的复杂度,其中复杂度常常携带着错误(bug)。该格式是安全的,因为可能为恶意或以其他方式隐藏的有效载荷不能被埋藏在文件夹分层结构中。
相应应用的客户端组件和服务器组件二者可以具有相同或相似的打包格式。例如,示例性的命名约定是[publisher].[appname].v[version].app,比如用于相应应用的客户端组件的名称的Contoso.maps.v1.0.0.6.client.app和Contoso.maps.v1.0.0.6.server.app。Contoso是发布者的名称。Maps(地图)是应用的名称。1.0.0.6是版本号。
如上所示,具有声明性标记语言为形式来描述应用行为的清单文件提高了有效性、可维护性、可靠性、扩展能力和安全性。出于有效性目的,清单文件通过去串行化为使用本机代码对象的有效数据结构而被加载到存储器中。可替代地,使用脚本语言的脚本可被用于描述应用的行为。由于脚本需要高频率地、可能在每次键击以后运行并且可能在安装有N个应用的情况下存在N个脚本,其中N可以为任何整数。简言之,清单文件实现了对多个应用的缩放。
可维护性被实现是因为诸如XML之类的声明性语言是人类可读的并且该行为是通过自描述来暗示的。可靠性是通过充分利用格式的方案实施来实现的。扩展能力例如可以通过经由XML命名空间充分利用内置版本化功能来实现。安全性被部分地实现,因为标记本身未被执行,其是明文并且是容易扫描的。相反,二进制或脚本解决方案将执行代码本身。另外,由于清单文件是声明,因此用户可以获悉:什么系统能力或唯一行为被应用“请求”。例如,在用户选择安装应用时,需要本地存储能力的该应用将可在安装时被清楚地呈现给用户,由此向用户提供了在用户觉得该应用可能导致安全问题时拒绝该应用的机会。
图6示出了供用户管理与输入法编辑器(IME)相关联的应用的示例性应用配置界面600。应用配置界面600可以是基于相关联的应用的清单方案和/或清单自动生成的。在图6的示例中,应用配置界面600的左侧列出了已经与IME相关联的一个或多个相关联的应用602。相关联的应用602可以包括地图应用604、天气应用606、以及计算器应用608。当用户点击诸如地图应用604之类的特定应用按钮时,应用配置界面600的右侧出现并且列出用于管理特定应用的界面,例如图6中的地图应用管理界面610。
诸如地图应用界面610之类的每个应用管理界面都包括一个或多个基本功能按钮以帮助用户配置特定应用的功能。在图6的示例中,所述一个或多个按钮包括禁用按钮612、恢复缺省按钮614、以及卸载按钮616。如果用户选中禁用按钮612,则地图应用604将不被激活或选中来提供候选。如果用户选中恢复缺省按钮614,则地图应用604的缺省设定被应用,并且缺省设定重写由用户或通过机器学习过程作出的任何先前修改。如果用户选中卸载按钮616,则地图应用604将从IME卸载或与IME取消关联。
应用配置界面600还可以向用户提供调节特定应用的一个或多个特性的更多自由度。在一个示例中,一些特性或属性可以由计算系统或用户设置为不可改变的。在另一示例中,所有特性或属性可以是开放的,以通过机器学习或由用户进行编辑。在图6的示例中,地图应用管理界面610还基于地图应用604的清单方案和/或清单为用户提供高级选项来管理地图应用604的不同特性。对于高级选项,用户可以修改地图应用604的从地图应用何时运行到其如何显示的地图应用的大多数行为。如果任何缺省被用户改变,则地图应用604的清单文件的新副本被创建并且被用作当前清单文件。旧副本可以被存储,使得如果用户希望,则用户可以恢复缺省设定,所述缺省设定简单地用清单的旧副本来交换经修改的清单。通过这种方式,清单文件还充当配置存储介质。
在图6的示例中,地图应用管理界面610包括运行时窗口618,所述运行时窗口618在运行时状态下列出地图应用604的一个或多个特性或属性。例如,运行时窗口618在运行时状态下显示与地图应用604相关联的各个性质和相应值。例如,语言模式是简体中文,字符计数最小值为6,响应等待时间是1600毫秒,并且场景类型是聊天和发电子邮件。场景类型性质是指地图应用604在主应用的场景与场景类型性质的值、即聊天或发电子邮件、相匹配时有资格运行。例如,场景类型性质及其值可以基于地图应用的清单的运行资格确定元素来生成。更具体而言,场景类型性质及其值可以基于表2示例性地图应用的清单中的“WhenRun”元素来生成。
用户可以编辑这些性质和值,比如添加或删除在其中地图应用604有资格运行的一个或多个场景。例如,用户可以在场景类型性质的值中添加另一场景,比如“文档”。基于该改变,当主应用是诸如微软之类的文档应用时,地图应用604也有资格运行。
分数窗口620针对不同参数组合列出地图应用604的不同分数。在图6的示例中,如果输入与“地点”类型匹配,则相应的分数为90。如果输入与模式“公路”相匹配,则相应分数为80。如果上下文与模式“在那里(there at)”相匹配,则相应分数为66。用户可以在分数窗口620中编辑分数或添加更多自定义的参数组合和相应分数。所述性质和值也可以通过机器学习来自动修改。
显示窗口622可以在显示状态下列出地图应用604的各个性质和值,比如地图应用604所支持的候选类型、以及是否在同IME的界面分开的界面处呈现候选。
插入窗口624可以在插入状态下列出地图应用604的各个性质和值,比如要插入到主应用中的候选的格式。应用配置界面600可以是IME的一部分,并且可以从IME的IME栏窗口626启动。IME栏窗口626可以包括用于IME的不同功能的多个按钮,比如语言模式按钮628、管理应用按钮630、启动应用按钮632以及帮助按钮634。用户可以选中语言模式按钮628来为候选设置语言模式,比如英语或简体中文。用户可以选中管理应用按钮630来启动应用配置界面600。如果用户选中启动应用按钮632,则相关联的应用的列表将被呈现给用户以选中来启动,这在下面予以详细描述。帮助按钮634在被用户选中时向用户提供一些有帮助的信息,比如问题和回答。图6中的IME栏窗口626仅仅是一个示例。在不同示例中,IME可以具有拥有不同外观样式和功能按钮的不同IME栏窗口。
选择应用的示例性方法
图7示出了用于从与IME相关联的多个应用中选择应用的示例性方法700的流程图。
在702,IME基于一个或多个所收集的参数来筛选与IME相关联的多个应用以预选有资格运行的一个或多个应用。例如,IME收集:用户输入的查询;主应用的场景,比如应用名称;以及上下文,比如由主应用保留在存储器中的之前编写的可能被频繁清除的字符。
例如,IME可以将所有相关联的应用的清单加载到客户端设备的计算系统的存储器中,并且在它们的清单中检查它们的运行资格确定元素。如果主应用的场景作为特定应用的清单的资格确定元素中的值被列出,则这样的特定应用有资格运行并且被预选。
在704,IME基于所述一个或多个所收集的参数为每个预选的应用计算分数。所述一个或多个参数例如可以包括:由用户输入的查询;用户输入的场景,比如主应用的场景;用户输入的上下文;和/或语言模式。在一个示例中,IME106可以基于多个预设规则实时地计算分数。在图6所示的另一示例中,相应应用依照各个参数组合的分数可以被预先计算出并且存储在其清单中。IME可以选择与当前所收集的参数相匹配或最相关的相应应用的所存储的参数组合,并且使用预先计算的分数。例如,对于相应的所预选的应用,其清单中的选择概率元素被检查并且基于所存储的如下分数获得分数:所述分数的相应参数组合与当前收集的参数相同或最相似。
在706,IME 106基于所预选应用的分数对所述所预选的应用进行排名。在708,IME106基于预选应用的排名和/或分数从所预选的应用中选择一个或多个所预选的应用。例如,IME 106可以选择分数高于预设分数阈值或排名高于预设排名阈值的一个或多个所预选的应用。可替代地,IME 106可以考虑到分数和排名二者。例如,IME可以在所预选的应用的分数低于预设分数阈值的情况下不选择该所预选的应用,即使该所预选的应用的排名高于预设排名阈值。
在710,IME基于对候选或由用户启动的应用的选择来调整一个或多个所预选的应用的分数或排名。例如,在IME选择一个或多个应用来向用户提供候选以后,用户可以选择由特定应用生成的候选。用户还可以直接启动应用,这如图1所示。IME将相应地调整所选应用的分数,比如增加用户选择的特定应用的依照当前所收集参数的分数或排名,或者降低其候选未被用户选择的另一应用的分数或排名。在一个示例中,这样的机器学习基于特定用户的偏好,所述特定用户基于一时间段内的不同的参数组合来选择或启动不同应用。在另一示例中,这样的机器学习还可以考虑到其他用户的偏好,比如由其他用户在相同或相似参数组合下选择或启动的应用。
IME可以使用机器学习技术来自动实现该调整。IME将使用经调整的值和性质来更新相应应用的清单并且用户可以查看这样的改变,或者通过图6所示的应用配置界面来进一步编辑所述改变。
在图1的示例中,用户102启动诸如天气应用130之类的另一应用以基于相同或类似的查询提供候选。IME 106可以增加天气应用130的分数并且在未来时间面临相同或相似所收集参数时选择该应用。另外,IME 106可以依照不同参数在不引用用户的个人数据的情况下匿名地收集不同用户的选择偏好以计算和改善应用依照不同场景的分数和排名。
示例性信息性候选场景
图1示出了:在用户102定点到富候选138时向用户102提供信息性候选140。图8示出了向用户提供信息性候选的另一示例性场景。
在图8的示例中,主应用802是诸如微软之类的聊天应用。主应用的聊天窗口804显示已经被输入到主应用802的用户界面中的对象806。对象806包括“Jack:Whatclasses are you taking?(Jack:你在上什么课?)”
输入窗口808显示要作为对象806被输入到聊天窗口804中的一个或多个输入对象810。输入对象810包括文本对象“theoretical(理论)”。由“|”表示的输入指示812表示对插入下一输入对象810的位置的指示。
IME的用户界面814使得用户能够选择一个或多个候选并将其输入到主应用802的输入窗口808中。在图8的示例中,用户将查询816“Fiziks”输入到IME的用户界面814的撰写窗口818中。在收集和分析一个或多个参数(比如对象806所反映的上下文、输入对象810以及先前使用历史)以后,IME可以确定查询816“Fiziks”表示“physics(物理学)”的缩写,并且在文本候选窗口822中显示“physics”作为文本候选820中的第一文本候选。IME还可以在文本候选窗口822处显示第二文本候选,“physician(物理学家)”以及任何数目的其他文本候选(图8中未示出)以作为文本候选820。
如果用户想要获悉文本候选820“physics”的更多信息,则用户可以使用诸如鼠标之类的任何输入技术悬停在文本候选820之上或者按下键盘处的按键来激活IME提供信息性候选的功能。IME在从用户接收到指示以后检查是否存在文本候选“physics”的相应信息性候选824,并且如果有的话则在信息性候选窗口826处显示信息性候选824。在图8的示例中,信息性候选824包括以英语和中文二者对“physics”的定义。信息性候选824包括:“Physics is a natural science that involves the study of matter and itsmotion through spacetime”以及简体中文定义“物理是一种自然科学,主要研究的是物质在时空中的运动”。
在图8的示例中,信息性候选窗口826可以是基于HTML的信息窗口。信息性候选窗口826可以仅在IME确定存在相应信息性候选824时出现。
在一个示例中,提供相应候选、即用户表示感兴趣的文本候选820的应用将具有排名的优先级以便被选为要提供信息性候选的应用。因此,信息性候选与相应候选高度相关。在图8的示例中,文本候选820“physics”可以由IME的引擎来提供。IME可以搜索其自己的引擎并且然后选择一个或多个应用来提供信息性候选。
IME还可以设置缺省应用来依照不同参数组合提供信息性候选。例如,当用户选择的文本候选是术语时,可以使用诸如字典应用或百科全书应用之类的缺省应用来提供信息性候选。类似地,当用户选择的文本候选是股票名称时,可以使用股票应用来提供诸如股票的股票图之类的股票信息。
示例性独立应用
图9示出了用于在独立界面中启动应用以提供候选的示例性方法900的流程图。所启动的应用的独立界面可以同IME的界面独立和分开。
在902,将一个或多个应用与IME相关联。在904,IME为用户提供界面以直接选择相关联的应用中的一个或多个。在一个示例中,该界面可以是图1所显示的撰写窗口142。用户可以使用特殊的句法,比如在IME的用户界面(比如撰写窗口142)处输入他/她所期望的应用的名称或符号。在另一示例中,该界面可以处于图6所显示的IME栏窗口626处,比如通过点击启动应用按钮632被触发的界面。
用户可以启动他/她想要的那么多的应用。在一个示例中,用户界面可以同IME的功能去耦合。所启动的应用的用户界面的诸如皮肤之类的呈现样式可以彼此不同并且可以不同于IME的呈现样式。在另一示例中,IME的皮肤可以比如通过全局层叠样式表(CSS)规则来控制所启动的应用的用户界面。能够理解,应用的开发者不需要关心独立启动的应用的界面的创建。更确切而言,应用界面可以自动生成,而不需要应用开发者编写用户界面源代码。例如,应用的独立界面可以基于清单和/或CSS规则生成。对于另一示例,应用的独立界面可以由用户选自诸如呈现给用户的皮肤之类的多个可用界面。
在906,用户通过使用输入技术从用户界面中选择一个或多个应用,并且IME接收这样的选择的指示。基于对相应应用的选择,IME将绕过图4所显示的相关联的应用的分数和排名的计算,并且IME将直接查询所选应用的特定引擎。
在908,IME启动所选的一个或多个应用。在一个示例中,应用可以在后台运行,而不将其独立界面呈现在客户端设备处。应用提供的候选通过IME的用户界面被呈现给用户。在另一示例中,所启动的应用可以具有其同IME的界面独立和分开的独立的独立界面,比如其自己的用于接收查询的撰写窗口。例如,在客户端设备的用户界面处呈递应用的主页或用户界面。将调用所选应用的清单中的显示元素,比如独立用户界面属性的子元素。如果未提供,则将显示缺省独立用户界面或主页。
在910,IME收集与用户输入相关的多个参数。所述一个或多个参数包括:由用户输入的查询;用户输入的场景,比如主应用的场景;用户输入的上下文;和/或语言模式。
在912,IME请求所选的一个或多个应用至少部分基于所收集参数中的一个或多个向用户提供一个或多个候选。在示例性的实施方式中,所生成或标识出的富候选将通过嵌入式web浏览器加载,其中文本域自动地放置在其之上。所选候选可被复制到计算系统的剪贴板,并且然后作为用户输入粘贴在主应用的用户界面处。
图1示出了地图应用128被IME 106选择以通过IME 106的用户界面104提供候选。在另一示例中,图10示出了在同IME 106的用户界面104分开的独立界面中启动诸如地图应用128之类的示例性应用的场景。例如,用户102可以在图6中的IME栏窗口626处点击启动应用按钮632。在从用户102接收指示以后,IME 106呈现与应用1002相关联的界面列表以供用户102选择。相关联的应用1002的列表列出了与IME 106相关联的应用、即计算器应用126、地图应用128、以及天气应用130。用户102可以选择地图应用128。在接收到指示以后,IME106在地图应用1004的独立用户界面中启动地图应用128。地图应用1004的用户界面可以包括用于接收一个或多个查询的撰写窗口1006、以及用于显示所生成或标识出的候选的候选窗口1008。用户102可以在撰写窗口1006中输入查询1010,比如“sanlitun”。地图应用128接收与用户输入有关的可由IME 106收集或由IME 106和地图应用128联合收集的一个或多个参数,并且生成或标识出富候选1012,该富候选1012是“sanlitun”的地图。候选1012显示在候选窗口1008中。
所选候选的示例性插入
在IME和/或所选或所启动的应用提供的候选被显示在IME的用户界面或应用的独立用户界面处以后,用户可以选择候选中的一个或多个以插入到主应用的用户界面中。IME或所选应用可以基于主应用所支持的格式形成以主应用所支持的最优格式的所选候选,并且将这样的经优化的所选候选插入到主应用中。
图11示出了在示例性电子邮件场景中插入候选。在图11的示例中,主应用1102是诸如微软之类的电子邮件应用。当用户输入查询1104“yiliu”时,返回的文本候选1106包括对应于“yiliu”的拼音的三个中文项。富候选1108包括名为“Yi Liu”的个人的详细联系人信息。富候选可以由IME 106为发电子邮件场景选择的电子邮件应用来提供。电子邮件应用可以使用地址簿服务,地址簿服务例如可通过诸如微软之类的本地邮件服务应用或诸如微软服务器之类的远程地址簿服务来获得。用户从富候选1108中选择富候选1110。富候选1110是电子邮件地址“yiliu@emailaddress.com”。IME或电子邮件应用确定:作为电子邮件应用的主应用1102支持具有电子邮件格式的超链接,并且还确定:富候选1110的电子邮件格式在主应用1102的场景下是最优格式。例如,该电子邮件的用户或接收者(图1中未示出)可以直接点击富候选1110以启动yiliu@emailaddress.com为接收方的另一电子邮件。因此,在指示插入所选候选的位置的输入指示1112以后,所选富候选1110将以电子邮件格式被插入。
图12示出了在示例性文档场景中插入候选。在图12的示例中,IME选择邮件应用并且基于与图1所示相同的查询1104“yiliu”提供相同的文本候选1106和富候选1108。仍然如图11所示,用户选择富候选1110yiliu@emailaddress.com。然而,IME或邮件应用可以确定:图12的示例中的主应用是应用,其仅仅支持文本格式。因此,在指示插入所选候选的位置的输入指示1204以后,IME 106或邮件应用可以移除具有电子邮件格式的超链接,并且将富候选1110从电子邮件格式转换成简单文本格式。
IME的示例性计算系统
可能有IME的各种配置。图13示出了示例性计算系统1300,其实现了在此所述的示例性输入法编辑器(IME)的技术。计算系统1300包括一个或多个处理器1302以及存储器1304。
存储器1304可包括易失性存储器、非易失性存储器、可移动存储器、不可移动存储器、和/或上述存储器的任何组合。一般而言,存储器1304包含可由一个或多个处理器1302访问并执行的计算机可执行指令。存储器1304是计算机可读存储介质的示例。计算机可读介质包括至少两种类型的计算机可读介质,即计算机存储介质和通信介质。
计算机存储介质包括以用于存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,相变存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、光盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或可用于存储由计算设备访问的信息的任何其他非传输介质。
相反,通信介质可在诸如载波之类的已调制数据信号或其他传输机制中体现计算机可读指令、数据结构、程序模块或其他数据。如本文所定义的,计算机存储介质不包括通信介质。
任何数目的程序模块、应用或组件可被存储在存储器1304中,作为示例包括操作系统、如IME 1306、聊天应用、文档编辑应用、游戏应用、以及电子邮件应用之类的一个或多个计算机应用、其他程序模块、程序数据、计算机可执行指令或组件。为简洁起见,图13中未示出IME应用1306以外的应用。任何其他计算机应用都可以充当通过IME 1306从用户接收输入的主应用。
IME 1306可以包括三层组件、即界面组件1308、客户端逻辑组件310和服务组件1312。界面组件1308包括用于与用户对接的一个或多个用户界面。客户端逻辑组件1310管理界面组件1308的用户界面并且与服务组件1312通信。例如,客户端逻辑组件1310收集与用户输入相关的一个或多个参数,将这样的参数发送给服务组件1312以供进一步处理,从所选引擎接收所返回的候选,以及将候选呈现在界面组件1308的用户界面处。服务组件1312基于所收集的参数从IME和/或多个应用中选择一个或多个引擎以提供候选,并且将所生成或标识出的候选发送给客户端逻辑组件1310,所述客户端逻辑组件1310用于将它们显示在界面组件1308的一个或多个用户界面处。功能在三个组件之间的划分、尤其是在客户端逻辑组件1310和服务组件1312之间的划分可以在不同计算系统中不同。
界面组件1308可以驻留在客户端设备上,而客户端逻辑组件1310和/或服务组件1312可以要么驻留在客户端设备处、要么驻留在一个或多个服务器处。换言之,计算系统1300可以完全或不完全位于客户端设备处。可替代地,计算系统1300可以使用客户端-服务器结构或分布式系统,其中可以使用一个以上的服务器来实现所述功能。IME 1306可在通用或专用计算机系统的环境或配置中使用。示例包括个人计算机、服务器计算机、手持式设备或便携式设备、平板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子设备、网络PC、以及包括以上任何系统和设备的分布式计算环境。在分布式计算环境中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,各模块可位于本地或远程计算机的存储介质(其包括数据存储设备)中。
接口组件1308可以包括:撰写窗口1314,其接收用户输入的查询;文本候选窗口1316,其显示文本候选;富候选窗口1318,其显示富候选;以及信息性候选窗口1320,其显示信息性候选。接口组件1308还可以包括独立应用界面1322,该独立应用界面1322是直接由用户选择和启动的应用的用户界面。接口组件1308还可以包括应用配置界面1324,其使得用户能够管理相关联的应用的一个或多个特性。图6中的应用配置界面600是应用配置界面1324的一个示例。在一个示例中,界面组件1308可以向每个界面提供统一呈现样式,比如皮肤。在另一示例中,IME和应用可以具有其自己的呈现样式。例如,独立应用界面1322的皮肤可以因不同的应用而不同并且不同于IME的界面。
客户端逻辑组件1310可以包括应用加载器1326、应用池管理器1318、候选管理器1330、插入管理器1332、以及信息性候选管理器1334。应用加载器1326安装与相关联的应用相对应的应用包,并且基于应用包中的相关联的应用的清单生成应用配置界面1324。应用池管理器1328从界面组件1308接收参数并且从应用加载器1326接收应用的特性以提供增强型查询以供服务组件1312进一步处理。例如,应用池管理器1328从撰写窗口1314接收查询输入并且从界面组件1308接收其他参数,比如场景和上下文。应用管理器1328还可以从独立应用界面1322接收特定应用的身份和查询输入。例如来自应用加载器1326的特性可以为被去串行化的XML清单格式。
候选管理器1330接收从服务组件1312处的输入引擎选择器1336所提供的候选,并且管理所提供的候选的显示。例如,候选管理器1330在文本候选窗口1316处显示文本候选,并且在富候选窗口1318处显示富候选。候选管理器1330还可以接收表示用户有兴趣获悉与富候选窗口1318或文本候选窗口1316处的特定候选相关联的信息的指示,并且将这样的指示传递给信息性候选管理器1334以请求相应信息性候选(如果有的话)。当候选管理器1330从富候选窗口1318或文本候选窗口1316接收用户对特定候选的选择时,候选管理器1330可以将所选候选发送给插入管理器1332。例如,所选候选可以被处理成XML的形式。插入管理器1332将所选候选以主应用所支持的格式(诸如最优格式)插入到主应用中。
信息性候选管理器1334将表示用户有兴趣获悉与特定候选相关联的信息的指示传递给信息性候选引擎选择器1338,从信息性候选引擎选择器1338接收与该特定候选相对应的一个或多个信息性候选,以及将信息性候选发送给信息性候选窗口1320以供显示。
服务组件1312可以包括输入引擎选择器1336、信息性候选引擎选择器1338、以及引擎池1340。输入引擎选择器1336从应用池管理器1328接收增强型查询并且从引擎池1340选择IME和应用的一个或多个引擎。输入引擎选择器1336从引擎池1340接收由所选应用提供的候选,并且将所提供的候选返回给应用池管理器1328。信息性候选引擎选择器1338可以选择提供用户指示感兴趣的特定候选的相同引擎、和/或来自引擎池1340的其他引擎以提供信息性候选。引擎池1340包括可被用于提供候选的IME和应用的一个或多个引擎。引擎池1340中的一个或多个引擎可以位于客户端设备处、服务器处、或二者处。
例如,界面组件1308、客户端逻辑组件1310、以及服务组件1312之间的共同的数据语言可以是XML,其通过清单、引擎的响应以及候选在显示中的表示来表示应用。候选可被变换成HTML格式和文本格式二者任一,以供在界面组件1308处显示。
在示例性实施方式中,下面鉴于示例性运行状态来描述界面组件1308、客户端逻辑组件1310和服务组件1312之间的数据流,所述运行状态包括查询状态、服务状态、显示状态和插入状态。能够理解,数据流可以在不同示例中不同。
在查询状态下,用户在撰写窗口1314或者独立应用界面1322处输入查询。下面的信息在评分机制中被传送给应用池管理器1328以预选合格应用以供服务:
用户输入(例如原始拼音)
场景信息(例如应用名称、输入分数等等)
上下文(例如保留在特定应用中的存储器中的之前编写的字符)
输出是应用的经排序的列表(例如“Contenders Vector(竞争者矢量)”)以供输入引擎选择器1336进一步选择以及供引擎池1340来服务。池中的应用出于性能原因作为对象被从它们的原始XML清单表示中加载到存储器中,使得它们可以实时地被查询。例如,不是应用的所有组件、而是应用的清单需要被加载。参考图4,满足它们的相应清单的运行资格确定元素412中列出的标准的应用对象在评分时予以考虑。对于那些合格的应用,IME检查它们相应清单的选择概率元素414并且为每个合格的应用计算分数和/或排名。高于阈值M的分数或排名最高的N个应用在竞争者的矢量内被发送给服务器。
在服务状态下,例如处于客户端设备处的客户端逻辑组件1310标识出引擎池1340并且异步地发送可依赖于清单中的“引擎”元素的查询。例如处于服务器处的服务组件1312决定使用哪个引擎。换言之,客户端逻辑组件1310提交请求并且服务组件1312决定使用哪个引擎(如果有的话)。在服务组件1312处,存在每个引擎都实现的在此称为IAppEngine的界面。表4列出了IAppEngine界面的示例性函数。
表4服务器处的引擎界面的示例性函数
如果存在位于本地客户端设备处的引擎,则这样的引擎还可以具有与上面相同函数的main.js文件。
对引擎池1340的包括多个参数的增强型查询可以为如下:
APPID表示特定应用的ID。VER表示应用的版本。CLIENT_SCORE表示由IME 1306的客户端逻辑组件1310如上述那样从查询状态中计算出的特定应用的分数。
输入引擎选择器1336从引擎池1340选择服务器处的可能的云引擎。例如,输入引擎选择器1336考虑到与来自竞争者的矢量的APPID值相匹配的引擎,并且用VER信息来查验每个引擎(例如IAppEngine界面展示SupportsClient函数)。对于所支持的每个引擎,输入引擎选择器1336将其添加到ENGINE_CANDIDATES。ENGINE_CANDIDATES表示要被输入引擎选择器1336选择以提供候选的一个或多个引擎候选。
对于ENGINE_CANDIDATES中的每个引擎,输入引擎选择器1336计算E.SERVER_SCORE。E.SERVER_SCORE表示由IME 1306的服务器组件1312计算出的引擎候选的分数。
E.SERVER_SCORE=E.LikelyhoodQuickCheck(Q)//(由IAppEngine展示)
输入引擎选择器1336调用选择函数以决定调用哪个引擎。选择函数界面可以为如下:
○Input:ENGINE_CANDIDATES,N(返回多少)
○Output:EnginesN
○示例性实施方式-可以采用机器学习算法,比如支持矢量机(SVM):
■FOREACH Engine E in ENGINE_CANDIDATES
●RANKED_ENGINES[E]
=NormalProbability(E.SERVER_SCORE)*
NormalProbability(E.CLIENT_SCORE)*
Feature1(E)*Feature2(E)…FeatureN(E)
■Sort(RANKED_ENGINES)
■Return top N of RANKED_ENGINES(返回前N个
RANKED_ENGINES)
FeatureN(E)(其中N可以为整数)指示:存在数目(N)个可用于对引擎进行排名的特征点或信号。在该示例性公式中,每个特征函数、比如Feature1(E)、Feature2(E)、FeatureN(E)都返回0至1的分数。同样,NormalProbability函数将服务器和客户端提供的概率归一化为0至1,使得可以进行一致的计算。
输入引擎选择器1336按如下方式查询引擎并且返回XML响应:
○Response Envelope V
○FOREACH Engine E in Selection(ENGINE_CANDIDATES,N)
■V+=E.Query(Q)
○Return V
关于XML响应,示例性引擎查询函数(在IAppEngine中实现)返回包括引擎的ID的响应,例如<Response ID=APPID>…</Response>。由该XML返回的候选适合于主应用的场景的能力。例如,在MESSENGER_CHATBOX、即的用户界面的聊天窗口中,电影图像有效载荷可以是动画化的Gif,而在具有较少能力的另一聊天窗口中,该图像可以是JPG文件。IME1306可以针对至少一些场景具有预打包的XML。当请求进入时,插入管理器1332可以使用可扩展样式表语言变换(XSLT)来将候选转换成特定场景的需求。
关于引擎质量和相关度,可以应用机器学习技术。例如,在另一进程上,诊断监视器可以监控引擎的性能,并且如果特定引擎运行缓慢,则这样的引擎可以在排名方面(作为附加的特征点被添加)受到惩罚或者可以被禁用。附加地或可替代地,可以使用来自多个用户的全局学习。例如,输入引擎选择器1336可以考虑引擎在不同用户中的总体流行度(或精确度)并且将总体流行度用作排名中的另一特征。
如果一个或多个引擎位于客户端设备处,则IME的客户端组件将把查询定向到引擎池1340的本地引擎。当使用远程服务器实施时,架构/流是相同的。本地引擎可以以Jscript脚本语言来实现。另外,出于安全原因,本地引擎可以不被配置为使用ActiveX。更具体而言,可以展示特定对象模型以供使用。在表5中示出了示例性对象模型函数。
表5示例性对象模型函数
在显示状态下,在从服务(要么为本地、要么为远程的)接收到XML响应以后,候选管理器1330处理响应并且在必要时根据所选应用的目标以及候选是要在文本候选窗口1316处显示的文本候选、还是要在富候选窗口1318处显示的富候选来对所述响应进行变换。该变换通过XSLT进行,并且精确的XSLT是基于在XML清单中提供的场景和目标被确定的。
例如,富候选可以显示在嵌入式web浏览器中。存在特殊对象模型与IME通信以便最终将富候选插入到主应用中。示例性的函数是取得XML串的SendInput。该串将在插入状态下予以解释。表6列出了CanddidateOM.JS的示例性函数
表6.用于显示候选的示例性函数
在插入状态处,插入管理器1332将从在显示状态下所描述的候选管理器1330接收XML响应。插入管理器1332负责将该XML变换成应用主机的最优格式。其工作方式是根据当前场景在清单中查找合适XSLT以供使用。然后,其对候选进行变换并且最终将候选插入到主应用中。可能存在多个用于插入的实施方法。例如,插入管理器1332可以充分利用剪贴板以用作应用之间的通信通道。插入管理器1332首先临时地将剪贴板中存在的任何东西复制到临时位置,然后将针对富候选的HTML或针对文本候选的文本复制到剪贴板中,发送粘贴命令以将候选粘贴在主应用处,以及然后将临时位置处的数据恢复到剪贴板。其他实施方式例如可以充分利用COM自动化来得到对主应用的对象模型的保持。
结语
尽管已经用结构特征和/或方法动作专用的语言描述了本主题,但要理解,所附权利要求书中定义的主题不必限于所描述的具体特征或动作。相反地,这些具体特征和动作是作为实现该权利要求的示例性形式而公开的。

Claims (20)

1.一种方法,包括:
收集与到输入法编辑器(IME)中的用户输入相关的多个参数,所述多个参数包括:用户通过所述IME的界面提交的查询、以及主应用的场景,所述场景指示与所述主应用交互的类型;
至少部分地基于所述多个参数从一个或多个应用中选择应用以提供一个或多个候选以供用户从中选择来输入到所述主应用中;
向所述应用发送请求以提供所述一个或多个候选;
从所述应用接收所述一个或多个候选供所述用户从中选择以输入到所述主应用中,所述一个或多个候选包括富候选,所述富候选包括音频、视频、天气信息的图像、或者地图信息的图像中的至少一个;以及
通过所述IME的界面向所述用户显示所述一个或多个候选供所述用户从中选择以输入到所述主应用中。
2.如权利要求1所述的方法,其特征在于,还包括:
从所述用户接收表示所述用户有兴趣访问与所述一个或多个候选中的特定候选相关联的附加信息的指示;
选择应用以提供信息性候选,所述信息性候选说明与所述特定候选相关联的附加信息;以及
呈现所述信息性候选。
3.如权利要求1所述的方法,其特征在于,通过所述IME向所述用户显示所述一个或多个候选包括:
在所述IME的富候选窗口处显示所述富候选;以及
响应于确定所述一个或多个候选包括文本候选,在所述IME的文本候选窗口处显示所述文本候选。
4.如权利要求3所述的方法,其特征在于,还包括:
接收所述用户对来自所述一个或多个候选的相应候选的选择;以及
将所述相应候选以所述主应用所支持的格式插入到所述主应用的用户界面中。
5.如权利要求1所述的方法,其特征在于,所述多个参数还包括所述用户输入的上下文、语言模式、以及先前用户历史。
6.如权利要求1所述的方法,其特征在于,发送所述请求包括调用所述应用的引擎,所述引擎具有驻留在服务器处的至少一些组件。
7.如权利要求1所述的方法,其特征在于,还包括:
呈现应用存储的图形用户界面(GUI),所述图形用户界面包括分别表示所述一个或多个应用的一个或多个图标;
通过所述GUI接收用户提交的选择表示相应应用的相应图标的指示;
从服务器将所述相应应用的至少一部分下载到客户端设备;以及
在所述客户端设备处安装所述相应应用的至少一部分。
8.如权利要求1所述的方法,其特征在于,还包括:在客户端设备处预装所述一个或多个应用中的至少一个的至少一部分。
9.如权利要求1所述的方法,其特征在于,所述选择包括:
从所述一个或多个应用中选择有资格在所述主应用的场景下运行的一个或多个合格应用;
基于与所述用户输入相关的多个参数为所述一个或多个合格应用中的每个计算分数;
基于所述一个或多个合格应用的相应分数对所述一个或多个合格应用进行排名;以及
基于分数的阈值、排名的阈值或二者从所述一个或多个合格应用中选择所述应用。
10.如权利要求9所述的方法,其特征在于,还包括通过机器学习技术来修改特定应用的排名或分数。
11.如权利要求1所述的方法,其特征在于,还包括:
接收对来自所述一个或多个应用的特定应用的用户选择的指示,所述一个或多个应用包括计算器应用、地图应用、或天气应用中的至少一个;
启动所述特定应用;以及
收集与到所述特定应用中的另一用户输入相关的另外的一个或多个参数,所述另外的一个或多个参数包括通过所述特定应用接收的用户提交的另一查询;以及
请求所述特定应用至少部分基于所述另外的一个或多个参数提供一个或多个候选。
12.如权利要求1所述的方法,其特征在于,还包括:使用以声明性标记语言为格式的清单文件来描述所述一个或多个应用的一个或多个特性,所述清单文件是人类可读和可编辑的。
13.如权利要求1所述的方法,其特征在于,还包括:提供应用管理界面以使得用户能够添加、删除或修改相应应用的一个或多个特性,所述一个或多个特性包括所述相应应用有资格在不同主应用的不同场景下运行的条件、以及所述相应应用的依照不同参数的相应分数。
14.如权利要求1所述的方法,其特征在于,还包括:允许相应应用访问和管理所述IME的功能。
15.如权利要求1所述的方法,其特征在于,所述一个或多个应用中的相应应用的呈现样式不与所述IME的呈现样式绑定,所述相应应用的呈现样式和所述IME的呈现样式分别包括皮肤。
16.如权利要求1所述的方法,其特征在于,还包括:至少部分基于所述多个参数从所述一个或多个应用中选择另一应用以提供另外的一个或多个候选以供用户从中选择来输入到所述主应用中,所述应用和所述另一应用并发和独立地运行。
17.一种方法,包括:
提供输入法编辑器(IME)用户界面,所述输入法编辑器(IME)用户界面指示与所述IME相关联的一个或多个应用;
接收用户提交的对来自所述一个或多个应用的特定应用的选择;
在同所述IME用户界面独立的独立用户界面中启动所述特定应用;
收集与到所述特定应用中的用户输入相关的多个参数,所述多个参数包括:用户通过所述特定应用的独立界面提交的查询、以及所述特定应用的场景,所述场景指示与所述特定应用交互的类型;以及
向所述特定应用发送请求以至少部分基于所述多个参数提供要被输入到主应用的用户界面中的一个或多个输入候选;以及
从所述特定应用接收所述要被输入到主应用的用户界面中的一个或多个输入候选,所述一个或多个候选包括音频、视频、天气信息的图像、或者地图信息的图像中的至少一个。
18.如权利要求17所述的方法,其特征在于,还包括:使用以声明性标记语言为格式的清单文件来描述与所述IME相关联的一个或多个应用的一个或多个特性,所述清单文件是人类可读和可编辑的。
19.一种系统,包括:
用于收集与到输入法编辑器(IME)中的用户输入相关的多个参数的装置,所述多个参数包括:用户通过所述IME的界面提交的查询、以及主应用的场景,所述场景指示与所述主应用交互的类型;
用于至少部分地基于所述多个参数从一个或多个应用中选择应用以提供一个或多个候选以供用户从中选择来输入到所述主应用中的装置;
用于向所述应用发送请求以提供所述一个或多个候选的装置;
用于从所述应用接收所述一个或多个候选供所述用户从中选择以输入到所述主应用中的装置,所述一个或多个候选包括富候选,所述富候选包括音频、视频、天气信息的图像、或者地图信息的图像中的至少一个;以及
用于通过所述IME的界面向所述用户显示所述一个或多个候选供所述用户从中选择以输入到所述主应用中的装置。
20.一种系统,包括:
用于提供输入法编辑器(IME)用户界面的装置,所述输入法编辑器(IME)用户界面指示与所述IME相关联的一个或多个应用;
用于接收用户提交的对来自所述一个或多个应用的特定应用的选择的装置;
用于在同所述IME用户界面独立的独立用户界面中启动所述特定应用的装置;
用于收集与到所述特定应用中的用户输入相关的多个参数的装置,所述多个参数包括:用户通过所述特定应用的独立界面提交的查询、以及所述特定应用的场景,所述场景指示与所述特定应用交互的类型;以及
用于向所述特定应用发送请求以至少部分基于所述多个参数提供要被输入到主应用的用户界面中的一个或多个输入候选的装置;以及
用于从所述特定应用接收所述要被输入到主应用的用户界面中的一个或多个输入候选的装置,所述一个或多个候选包括音频、视频、天气信息的图像、或者地图信息的图像中的至少一个。
CN201910813634.1A 2012-06-25 2012-06-25 输入法编辑器应用平台 Pending CN110488991A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910813634.1A CN110488991A (zh) 2012-06-25 2012-06-25 输入法编辑器应用平台

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201280074281.4A CN104428734A (zh) 2012-06-25 2012-06-25 输入法编辑器应用平台
PCT/CN2012/077436 WO2014000143A1 (en) 2012-06-25 2012-06-25 Input method editor application platform
CN201910813634.1A CN110488991A (zh) 2012-06-25 2012-06-25 输入法编辑器应用平台

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201280074281.4A Division CN104428734A (zh) 2012-06-25 2012-06-25 输入法编辑器应用平台

Publications (1)

Publication Number Publication Date
CN110488991A true CN110488991A (zh) 2019-11-22

Family

ID=49775519

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201280074281.4A Pending CN104428734A (zh) 2012-06-25 2012-06-25 输入法编辑器应用平台
CN201910813634.1A Pending CN110488991A (zh) 2012-06-25 2012-06-25 输入法编辑器应用平台

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201280074281.4A Pending CN104428734A (zh) 2012-06-25 2012-06-25 输入法编辑器应用平台

Country Status (4)

Country Link
US (2) US9921665B2 (zh)
EP (1) EP2864856A4 (zh)
CN (2) CN104428734A (zh)
WO (1) WO2014000143A1 (zh)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9132352B1 (en) 2010-06-24 2015-09-15 Gregory S. Rabin Interactive system and method for rendering an object
US9348479B2 (en) 2011-12-08 2016-05-24 Microsoft Technology Licensing, Llc Sentiment aware user interface customization
US9378290B2 (en) 2011-12-20 2016-06-28 Microsoft Technology Licensing, Llc Scenario-adaptive input method editor
US9239817B2 (en) * 2012-04-19 2016-01-19 Microsoft Technology Licensing, Llc Managing web extension through manifest file
CN104428734A (zh) 2012-06-25 2015-03-18 微软公司 输入法编辑器应用平台
US8959109B2 (en) 2012-08-06 2015-02-17 Microsoft Corporation Business intelligent in-document suggestions
EP2891078A4 (en) 2012-08-30 2016-03-23 Microsoft Technology Licensing Llc CHOICE OF CANDIDATE BASED ON CHARACTERISTICS
US20140122407A1 (en) * 2012-10-26 2014-05-01 Xiaojiang Duan Chatbot system and method having auto-select input message with quality response
US9396126B2 (en) * 2013-01-30 2016-07-19 Google Inc. Clearing an application cache
US10134009B2 (en) * 2013-03-13 2018-11-20 Sap Se Methods and systems of providing supplemental informaton
KR101995283B1 (ko) * 2013-03-14 2019-07-02 삼성전자 주식회사 휴대 단말기의 앱 제공 방법 및 시스템
US10430894B2 (en) 2013-03-21 2019-10-01 Khoros, Llc Gamification for online social communities
US20140351241A1 (en) * 2013-05-24 2014-11-27 Sap Ag Identifying and invoking applications based on data in a knowledge graph
US9431008B2 (en) * 2013-05-29 2016-08-30 Nuance Communications, Inc. Multiple parallel dialogs in smart phone applications
TWI597652B (zh) * 2013-05-31 2017-09-01 Insyde Software Corp Method and apparatus for quickly launching a windowed application in a mobile operating system
US10656957B2 (en) 2013-08-09 2020-05-19 Microsoft Technology Licensing, Llc Input method editor providing language assistance
US9710126B2 (en) * 2013-10-17 2017-07-18 Blackberry Limited Method and apparatus for displaying a preview of an application to a user
WO2015152882A1 (en) * 2014-03-31 2015-10-08 Hewlett-Packard Development Company, L.P. Candidate services for an application
US9547683B2 (en) * 2014-05-30 2017-01-17 Apple Inc. Application suggestion features
KR102411890B1 (ko) 2014-09-02 2022-06-23 삼성전자주식회사 컨텐츠를 처리하는 방법 및 이를 위한 전자 장치
US9959069B2 (en) * 2015-02-12 2018-05-01 Microsoft Technology Licensing, Llc Externalized execution of input method editor
US11250217B1 (en) * 2015-07-14 2022-02-15 Soundhound, Inc. Conditional responses to application commands in a client-server system
JP6730790B2 (ja) * 2015-09-15 2020-07-29 キヤノン株式会社 通信装置およびその制御方法ならびにプログラム
CN105549756A (zh) * 2015-10-30 2016-05-04 东莞酷派软件技术有限公司 一种基于位置信息的输入方法及用户终端
US10776571B2 (en) * 2016-05-04 2020-09-15 Google Llc Dispatch of user input to multiple input fields in a user interface
WO2018195783A1 (en) * 2017-04-25 2018-11-01 Microsoft Technology Licensing, Llc Input method editor
US10699064B2 (en) 2017-04-27 2020-06-30 Microsoft Technology Licensing, Llc Text input cockpit
US10902462B2 (en) 2017-04-28 2021-01-26 Khoros, Llc System and method of providing a platform for managing data content campaign on social networks
CN107315606A (zh) * 2017-06-14 2017-11-03 北京小米移动软件有限公司 应用更新方法及装置
CN107479726B (zh) * 2017-09-27 2021-08-17 联想(北京)有限公司 一种信息输入方法及电子设备
US11050704B2 (en) 2017-10-12 2021-06-29 Spredfast, Inc. Computerized tools to enhance speed and propagation of content in electronic messages among a system of networked computing devices
US11570128B2 (en) 2017-10-12 2023-01-31 Spredfast, Inc. Optimizing effectiveness of content in electronic messages among a system of networked computing device
US10346449B2 (en) 2017-10-12 2019-07-09 Spredfast, Inc. Predicting performance of content and electronic messages among a system of networked computing devices
US11470161B2 (en) 2018-10-11 2022-10-11 Spredfast, Inc. Native activity tracking using credential and authentication management in scalable data networks
US10785222B2 (en) 2018-10-11 2020-09-22 Spredfast, Inc. Credential and authentication management in scalable data networks
US10999278B2 (en) 2018-10-11 2021-05-04 Spredfast, Inc. Proxied multi-factor authentication using credential and authentication management in scalable data networks
US10601937B2 (en) 2017-11-22 2020-03-24 Spredfast, Inc. Responsive action prediction based on electronic messages among a system of networked computing devices
CN108536480B (zh) * 2017-12-28 2021-05-28 Oppo广东移动通信有限公司 输入法配置方法及相关产品
US11410075B2 (en) * 2018-01-15 2022-08-09 Microsoft Technology Licensing, Llc Contextually-aware recommendations for assisting users with task completion
US10594773B2 (en) 2018-01-22 2020-03-17 Spredfast, Inc. Temporal optimization of data operations using distributed search and server management
US11061900B2 (en) 2018-01-22 2021-07-13 Spredfast, Inc. Temporal optimization of data operations using distributed search and server management
CN108268147B (zh) * 2018-02-14 2021-07-02 Oppo广东移动通信有限公司 基于输入法的计算处理方法、装置及设备
USD962953S1 (en) 2018-08-03 2022-09-06 Kilpatrick Townsend & Stockton Llp Display screen or portion thereof having an icon
USD920342S1 (en) * 2018-08-03 2021-05-25 Kilpatrick Townsend & Stockton Llp Display screen or portion thereof having an icon
USD928800S1 (en) 2018-08-03 2021-08-24 Kilpatrick Townsend & Stockton Llp Display screen or portion thereof having an icon
US10855657B2 (en) 2018-10-11 2020-12-01 Spredfast, Inc. Multiplexed data exchange portal interface in scalable data networks
US20200233547A1 (en) * 2019-01-17 2020-07-23 International Business Machines Corporation Context Aware Typing System to Direct Input to Appropriate Applications
CN110460654A (zh) * 2019-02-26 2019-11-15 北京蓦然认知科技有限公司 一种智能交互平台中交互引擎的下载方法及装置
US10931540B2 (en) 2019-05-15 2021-02-23 Khoros, Llc Continuous data sensing of functional states of networked computing devices to determine efficiency metrics for servicing electronic messages asynchronously
CN111124348B (zh) * 2019-12-03 2023-12-05 光禹莱特数字科技(上海)有限公司 一种生成交互引擎簇的方法及装置
US11438289B2 (en) 2020-09-18 2022-09-06 Khoros, Llc Gesture-based community moderation
CN112199035A (zh) * 2020-09-30 2021-01-08 北京搜狗科技发展有限公司 一种资讯推荐方法、装置和电子设备
CN112199034A (zh) * 2020-09-30 2021-01-08 北京搜狗科技发展有限公司 一种数据处理方法、装置和电子设备
US11438282B2 (en) 2020-11-06 2022-09-06 Khoros, Llc Synchronicity of electronic messages via a transferred secure messaging channel among a system of various networked computing devices
US11924375B2 (en) 2021-10-27 2024-03-05 Khoros, Llc Automated response engine and flow configured to exchange responsive communication data via an omnichannel electronic communication channel independent of data source
US11627100B1 (en) 2021-10-27 2023-04-11 Khoros, Llc Automated response engine implementing a universal data space based on communication interactions via an omnichannel electronic data channel
US11714629B2 (en) 2020-11-19 2023-08-01 Khoros, Llc Software dependency management

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6564254B1 (en) * 1998-11-04 2003-05-13 Dream Technologies Corporation System and a process for specifying a location on a network
CN1609764A (zh) * 2003-10-24 2005-04-27 微软公司 向输入法提供上下文的系统和方法
CN101183360A (zh) * 2006-11-15 2008-05-21 富士通株式会社 程序、字符输入编辑方法及设备
CN101183355A (zh) * 2006-11-15 2008-05-21 富士通株式会社 程序、复制和粘贴处理方法、装置以及存储介质
CN101286093A (zh) * 2007-04-09 2008-10-15 谷歌股份有限公司 客户端输入方法
CN102144228A (zh) * 2008-07-03 2011-08-03 谷歌股份有限公司 根据输入字符序列的资源定位符建议
US20120019446A1 (en) * 2009-03-20 2012-01-26 Google Inc. Interaction with ime computing device
TW201205352A (en) * 2010-04-12 2012-02-01 Google Inc Extension framework for input method editor

Family Cites Families (305)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7529981A (en) 1980-09-19 1982-03-25 Hitachi Limited Language analysis by pattern recognition
SE466029B (sv) 1989-03-06 1991-12-02 Ibm Svenska Ab Anordning och foerfarande foer analys av naturligt spraak i ett datorbaserat informationsbehandlingssystem
JPH03185561A (ja) 1989-12-15 1991-08-13 Ricoh Co Ltd 欧文単語入力方法
US6236964B1 (en) 1990-02-01 2001-05-22 Canon Kabushiki Kaisha Speech recognition apparatus and method for matching inputted speech and a word generated from stored referenced phoneme data
US5963671A (en) 1991-11-27 1999-10-05 International Business Machines Corporation Enhancement of soft keyboard operations using trigram prediction
JPH07160827A (ja) * 1993-12-09 1995-06-23 Matsushita Electric Ind Co Ltd 手書きストローク編集装置及び方法
US5734749A (en) 1993-12-27 1998-03-31 Nec Corporation Character string input system for completing an input character string with an incomplete input indicative sign
JP2683870B2 (ja) 1994-05-23 1997-12-03 日本アイ・ビー・エム株式会社 文字列検索システム及び方法
US5485372A (en) 1994-06-01 1996-01-16 Mitsubishi Electric Research Laboratories, Inc. System for underlying spelling recovery
US5778361A (en) 1995-09-29 1998-07-07 Microsoft Corporation Method and system for fast indexing and searching of text in compound-word languages
US5787422A (en) 1996-01-11 1998-07-28 Xerox Corporation Method and apparatus for information accesss employing overlapping clusters
US5873107A (en) 1996-03-29 1999-02-16 Apple Computer, Inc. System for automatically retrieving information relevant to text being authored
US6014638A (en) 1996-05-29 2000-01-11 America Online, Inc. System for customizing computer displays in accordance with user preferences
US5995928A (en) 1996-10-02 1999-11-30 Speechworks International, Inc. Method and apparatus for continuous spelling speech recognition with early identification
JP2976219B2 (ja) 1996-12-10 1999-11-10 豊 塚本 消費者支援方法、および、それに用いられる検索システム
US5926652A (en) 1996-12-20 1999-07-20 International Business Machines Corporation Matching of wild card patterns to wild card strings associated with named computer objects
US5832478A (en) 1997-03-13 1998-11-03 The United States Of America As Represented By The National Security Agency Method of searching an on-line dictionary using syllables and syllable count
US6092044A (en) 1997-03-28 2000-07-18 Dragon Systems, Inc. Pronunciation generation in speech recognition
EP0972254A1 (en) 1997-04-01 2000-01-19 Yeong Kuang Oon Didactic and content oriented word processing method with incrementally changed belief system
US6076056A (en) 1997-09-19 2000-06-13 Microsoft Corporation Speech recognition system for recognizing continuous and isolated speech
US6141655A (en) 1997-09-23 2000-10-31 At&T Corp Method and apparatus for optimizing and structuring data by designing a cube forest data structure for hierarchically split cube forest template
US6377965B1 (en) 1997-11-07 2002-04-23 Microsoft Corporation Automatic word completion system for partially entered data
US5896321A (en) 1997-11-14 1999-04-20 Microsoft Corporation Text completion system for a miniature computer
FI974576A (fi) 1997-12-19 1999-06-20 Nokia Mobile Phones Ltd Menetelmä tekstin kirjoittamiseksi matkaviestimeen ja matkaviestin
US6185558B1 (en) 1998-03-03 2001-02-06 Amazon.Com, Inc. Identifying the items most relevant to a current query based on items selected in connection with similar queries
US6038559A (en) 1998-03-16 2000-03-14 Navigation Technologies Corporation Segment aggregation in a geographic database and methods for use thereof in a navigation application
US6185534B1 (en) 1998-03-23 2001-02-06 Microsoft Corporation Modeling emotion and personality in a computer user interface
US6400831B2 (en) 1998-04-02 2002-06-04 Microsoft Corporation Semantic video object segmentation and tracking
US6247043B1 (en) 1998-06-11 2001-06-12 International Business Machines Corporation Apparatus, program products and methods utilizing intelligent contact management
US6085160A (en) 1998-07-10 2000-07-04 Lernout & Hauspie Speech Products N.V. Language independent speech recognition
US6490563B2 (en) 1998-08-17 2002-12-03 Microsoft Corporation Proofreading with text to speech feedback
US6527715B2 (en) 1998-10-30 2003-03-04 The United States Of America As Represented By The Secretary Of The Army System and method for predicting human cognitive performance using data from an actigraph
JP2000148748A (ja) 1998-11-13 2000-05-30 Nec Corp 仮名漢字変換及び画像検索表示システム
US6424358B1 (en) 1998-12-03 2002-07-23 Lockheed Martin Corporation Method and system for importing database information
US6460015B1 (en) 1998-12-15 2002-10-01 International Business Machines Corporation Method, system and computer program product for automatic character transliteration in a text string object
US7099876B1 (en) 1998-12-15 2006-08-29 International Business Machines Corporation Method, system and computer program product for storing transliteration and/or phonetic spelling information in a text string class
US6363342B2 (en) 1998-12-18 2002-03-26 Matsushita Electric Industrial Co., Ltd. System for developing word-pronunciation pairs
JP2000221990A (ja) 1999-01-28 2000-08-11 Ricoh Co Ltd 音声認識装置
US6801190B1 (en) 1999-05-27 2004-10-05 America Online Incorporated Keyboard system with automatic correction
ATE320650T1 (de) 1999-06-30 2006-04-15 Ibm Verfahren zur erweiterung des wortschatzes eines spracherkennungssystems
US6360252B1 (en) 1999-09-20 2002-03-19 Fusionone, Inc. Managing the transfer of e-mail attachments to rendering devices other than an original e-mail recipient
US6658404B1 (en) 1999-09-20 2003-12-02 Libera, Inc. Single graphical approach for representing and merging boolean logic and mathematical relationship operators
US6339776B2 (en) 1999-10-04 2002-01-15 International Business Machines Corporation Dynamic semi-structured repository for mining software and software-related information
US6654733B1 (en) 2000-01-18 2003-11-25 Microsoft Corporation Fuzzy keyboard
US6573844B1 (en) 2000-01-18 2003-06-03 Microsoft Corporation Predictive keyboard
US20020103809A1 (en) 2000-02-02 2002-08-01 Searchlogic.Com Corporation Combinatorial query generating system and method
US6519599B1 (en) 2000-03-02 2003-02-11 Microsoft Corporation Visualization of high-dimensional data
US7539656B2 (en) 2000-03-06 2009-05-26 Consona Crm Inc. System and method for providing an intelligent multi-step dialog with a user
US6922810B1 (en) 2000-03-07 2005-07-26 Microsoft Corporation Grammar-based automatic data completion and suggestion for user input
US6687734B1 (en) 2000-03-21 2004-02-03 America Online, Incorporated System and method for determining if one web site has the same information as another web site
US6578022B1 (en) 2000-04-18 2003-06-10 Icplanet Corporation Interactive intelligent searching with executable suggestions
US6564213B1 (en) 2000-04-18 2003-05-13 Amazon.Com, Inc. Search query autocompletion
US6963841B2 (en) 2000-04-21 2005-11-08 Lessac Technology, Inc. Speech training method with alternative proper pronunciation database
US7107204B1 (en) 2000-04-24 2006-09-12 Microsoft Corporation Computer-aided writing system and method with cross-language writing wizard
US20020123994A1 (en) 2000-04-26 2002-09-05 Yves Schabes System for fulfilling an information need using extended matching techniques
US7089504B1 (en) 2000-05-02 2006-08-08 Walt Froloff System and method for embedment of emotive content in modern text processing, publishing and communication
US7979802B1 (en) * 2000-05-04 2011-07-12 Aol Inc. Providing supplemental contact information corresponding to a referenced individual
US7383299B1 (en) 2000-05-05 2008-06-03 International Business Machines Corporation System and method for providing service for searching web site addresses
US6556990B1 (en) 2000-05-16 2003-04-29 Sun Microsystems, Inc. Method and apparatus for facilitating wildcard searches within a relational database
JP2004504674A (ja) 2000-07-18 2004-02-12 ヤフー! インコーポレイテッド 売り切れ広告インベントリの代わりに別の広告インベントリを選択させるシステム及び方法
US7328211B2 (en) 2000-09-21 2008-02-05 Jpmorgan Chase Bank, N.A. System and methods for improved linguistic pattern matching
US7277732B2 (en) 2000-10-13 2007-10-02 Microsoft Corporation Language input system for mobile devices
US6731307B1 (en) 2000-10-30 2004-05-04 Koninklije Philips Electronics N.V. User interface/entertainment device that simulates personal interaction and responds to user's mental state and/or personality
US7818286B2 (en) 2001-01-22 2010-10-19 Sas Institute Inc. Computer-implemented dimension engine
US6801661B1 (en) 2001-02-15 2004-10-05 Eastman Kodak Company Method and system for archival and retrieval of images based on the shape properties of identified segments
US7392326B2 (en) 2001-02-16 2008-06-24 Microsoft Corporation Method for text entry in an electronic device
JP2002258894A (ja) 2001-03-02 2002-09-11 Fujitsu Ltd 音声データ圧縮・解凍装置及び方法
US6850934B2 (en) 2001-03-26 2005-02-01 International Business Machines Corporation Adaptive search engine query
US6785677B1 (en) 2001-05-02 2004-08-31 Unisys Corporation Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector
US7308439B2 (en) 2001-06-06 2007-12-11 Hyperthink Llc Methods and systems for user activated automated searching
CN1391180A (zh) 2001-06-11 2003-01-15 国际商业机器公司 外语写作辅助方法和辅助工具
US7133876B2 (en) 2001-06-12 2006-11-07 The University Of Maryland College Park Dwarf cube architecture for reducing storage sizes of multidimensional data
US6985851B2 (en) 2001-07-17 2006-01-10 Microsoft Corporation Method and apparatus for providing improved HMM POS tagger for multi-word entries and factoids
US8112529B2 (en) 2001-08-20 2012-02-07 Masterobjects, Inc. System and method for asynchronous client server session communication
US20020156779A1 (en) 2001-09-28 2002-10-24 Elliott Margaret E. Internet search engine
US7353247B2 (en) 2001-10-19 2008-04-01 Microsoft Corporation Querying applications using online messenger service
US7283992B2 (en) 2001-11-30 2007-10-16 Microsoft Corporation Media agent to suggest contextually related media content
US7111248B2 (en) 2002-01-15 2006-09-19 Openwave Systems Inc. Alphanumeric information input method
US20030160830A1 (en) 2002-02-22 2003-08-28 Degross Lee M. Pop-up edictionary
US20030179229A1 (en) 2002-03-25 2003-09-25 Julian Van Erlach Biometrically-determined device interface and content
US20030220917A1 (en) 2002-04-03 2003-11-27 Max Copperman Contextual search
US7174344B2 (en) 2002-05-10 2007-02-06 Oracle International Corporation Orthogonal partitioning clustering
US7194538B1 (en) 2002-06-04 2007-03-20 Veritas Operating Corporation Storage area network (SAN) management system for discovering SAN components using a SAN management server
US20040128138A1 (en) * 2002-06-28 2004-07-01 Andrews Donna B. Universal type-in line
CN100350356C (zh) 2002-07-01 2007-11-21 索尼爱立信移动通讯股份有限公司 输入文本的方法及使用该方法的电子装置
US7236923B1 (en) 2002-08-07 2007-06-26 Itt Manufacturing Enterprises, Inc. Acronym extraction system and method of identifying acronyms and extracting corresponding expansions from text
US7047193B1 (en) 2002-09-13 2006-05-16 Apple Computer, Inc. Unsupervised data-driven pronunciation modeling
US7293015B2 (en) 2002-09-19 2007-11-06 Microsoft Corporation Method and system for detecting user intentions in retrieval of hint sentences
US7552051B2 (en) 2002-12-13 2009-06-23 Xerox Corporation Method and apparatus for mapping multiword expressions to identifiers using finite-state networks
US7181450B2 (en) 2002-12-18 2007-02-20 International Business Machines Corporation Method, system, and program for use of metadata to create multidimensional cubes in a relational database
US7418663B2 (en) * 2002-12-19 2008-08-26 Microsoft Corporation Contact picker interface
US7313760B2 (en) * 2002-12-19 2007-12-25 Microsoft Corporation Contact picker
US7941762B1 (en) * 2003-02-14 2011-05-10 Shoretel, Inc. Display of real time information for selected possibilities
US7360151B1 (en) 2003-05-27 2008-04-15 Walt Froloff System and method for creating custom specific text and emotive content message response templates for textual communications
US7089266B2 (en) 2003-06-02 2006-08-08 The Board Of Trustees Of The Leland Stanford Jr. University Computer systems and methods for the query and visualization of multidimensional databases
US20040243415A1 (en) 2003-06-02 2004-12-02 International Business Machines Corporation Architecture for a speech input method editor for handheld portable devices
US7409336B2 (en) 2003-06-19 2008-08-05 Siebel Systems, Inc. Method and system for searching data based on identified subset of categories and relevance-scored text representation-category combinations
JP4502114B2 (ja) 2003-06-24 2010-07-14 セイコーインスツル株式会社 データベース検索装置
US7395203B2 (en) 2003-07-30 2008-07-01 Tegic Communications, Inc. System and method for disambiguating phonetic input
US7302445B2 (en) 2003-08-29 2007-11-27 International Business Machines Corporation Method, system, and storage medium for providing a dynamic, multi-dimensional commodity modeling process
US7881934B2 (en) 2003-09-12 2011-02-01 Toyota Infotechnology Center Co., Ltd. Method and system for adjusting the voice prompt of an interactive system based upon the user's state
US7389223B2 (en) 2003-09-18 2008-06-17 International Business Machines Corporation Method and apparatus for testing a software program using mock translation input method editor
US7617205B2 (en) 2005-03-30 2009-11-10 Google Inc. Estimating confidence for query revision models
US7447627B2 (en) 2003-10-23 2008-11-04 Microsoft Corporation Compound word breaker and spell checker
US7412385B2 (en) 2003-11-12 2008-08-12 Microsoft Corporation System for identifying paraphrases using machine translation
US7689412B2 (en) 2003-12-05 2010-03-30 Microsoft Corporation Synonymous collocation extraction using translation information
US7349981B2 (en) 2003-12-18 2008-03-25 Intel Corporation System, apparatus, and method for string matching
US20050144064A1 (en) 2003-12-19 2005-06-30 Palo Alto Research Center Incorporated Keyword advertisement management
CN1898958A (zh) 2003-12-22 2007-01-17 皇家飞利浦电子股份有限公司 用于监视收视者情绪的内容处理系统、方法和计算机程序产品
CN100495392C (zh) 2003-12-29 2009-06-03 西安迪戈科技有限责任公司 一种智能搜索方法
US7590533B2 (en) 2004-03-10 2009-09-15 Microsoft Corporation New-word pronunciation learning using a pronunciation graph
US20050216253A1 (en) 2004-03-25 2005-09-29 Microsoft Corporation System and method for reverse transliteration using statistical alignment
US7225200B2 (en) 2004-04-14 2007-05-29 Microsoft Corporation Automatic data perspective generation for a target variable
WO2005101192A2 (en) 2004-04-19 2005-10-27 Exbiblio B.V. Processing techniques for visual capture data from a rendered document
US7836044B2 (en) 2004-06-22 2010-11-16 Google Inc. Anticipated query generation and processing in a search engine
US7562069B1 (en) 2004-07-01 2009-07-14 Aol Llc Query disambiguation
US7451152B2 (en) 2004-07-29 2008-11-11 Yahoo! Inc. Systems and methods for contextual transaction proposals
WO2006011819A1 (en) 2004-07-30 2006-02-02 Eurekster, Inc. Adaptive search engine
US7725318B2 (en) 2004-07-30 2010-05-25 Nice Systems Inc. System and method for improving the accuracy of audio searching
US7505954B2 (en) 2004-08-18 2009-03-17 International Business Machines Corporation Search bar with intelligent parametric search statement generation
US7386542B2 (en) 2004-08-30 2008-06-10 The Mitre Corporation Personalized broadcast news navigator
US20060085392A1 (en) 2004-09-30 2006-04-20 Microsoft Corporation System and method for automatic generation of search results based on local intention
US7478081B2 (en) 2004-11-05 2009-01-13 International Business Machines Corporation Selection of a set of optimal n-grams for indexing string data in a DBMS system under space constraints introduced by the system
US7549119B2 (en) 2004-11-18 2009-06-16 Neopets, Inc. Method and system for filtering website content
US7466859B2 (en) * 2004-12-30 2008-12-16 Motorola, Inc. Candidate list enhancement for predictive text input in electronic devices
US7490033B2 (en) 2005-01-13 2009-02-10 International Business Machines Corporation System for compiling word usage frequencies
US7599915B2 (en) 2005-01-24 2009-10-06 At&T Intellectual Property I, L.P. Portal linking tool
US8694317B2 (en) 2005-02-05 2014-04-08 Aurix Limited Methods and apparatus relating to searching of spoken audio data
US7555713B2 (en) 2005-02-22 2009-06-30 George Liang Yang Writing and reading aid system
US9165280B2 (en) 2005-02-22 2015-10-20 International Business Machines Corporation Predictive user modeling in user interface design
US7505985B2 (en) 2005-02-25 2009-03-17 International Business Machines Corporation System and method of generating string-based search expressions using templates
US7788248B2 (en) 2005-03-08 2010-08-31 Apple Inc. Immediate search feedback
GB2424091A (en) 2005-03-11 2006-09-13 Alamy Ltd Ranking of images in the results of a search
US7970812B2 (en) * 2005-03-17 2011-06-28 Microsoft Corporation Redistribution of space between text segments
US7512904B2 (en) 2005-03-22 2009-03-31 Microsoft Corporation Operating system launch menu program listing
US20060224046A1 (en) 2005-04-01 2006-10-05 Motorola, Inc. Method and system for enhancing a user experience using a user's physiological state
EP1875336A2 (en) 2005-04-11 2008-01-09 Textdigger, Inc. System and method for searching for a query
CN1851617A (zh) * 2005-04-22 2006-10-25 英华达(上海)电子有限公司 移动设备上便于ocr并输入到现有编辑器的转换装置及其方法
US7401073B2 (en) 2005-04-28 2008-07-15 International Business Machines Corporation Term-statistics modification for category-based search
US7277029B2 (en) 2005-06-23 2007-10-02 Microsoft Corporation Using language models to expand wildcards
JP2007024960A (ja) 2005-07-12 2007-02-01 Internatl Business Mach Corp <Ibm> システム、プログラムおよび制御方法
WO2007016370A2 (en) 2005-07-29 2007-02-08 Eazypaper Inc. Computer method and apparatus using embedded message window for displaying messages in a functional bar
CN1908863A (zh) 2005-08-07 2007-02-07 黄金富 双语混合输入方法及具有字典功能的手机
US7844599B2 (en) 2005-08-24 2010-11-30 Yahoo! Inc. Biasing queries to determine suggested queries
US7516124B2 (en) 2005-12-20 2009-04-07 Yahoo! Inc. Interactive search engine
US20070052868A1 (en) 2005-09-02 2007-03-08 Charisma Communications, Inc. Multimedia accessible universal input device
US20070185859A1 (en) 2005-10-12 2007-08-09 John Flowers Novel systems and methods for performing contextual information retrieval
US7676517B2 (en) 2005-10-14 2010-03-09 Microsoft Corporation Search results injected into client applications
US7565157B1 (en) 2005-11-18 2009-07-21 A9.Com, Inc. System and method for providing search results based on location
GB0524354D0 (en) 2005-11-30 2006-01-04 Ibm Method, system and computer program product for composing a reply to a text message received in a messaging application
US7580926B2 (en) 2005-12-01 2009-08-25 Adchemy, Inc. Method and apparatus for representing text using search engine, document collection, and hierarchal taxonomy
GB2433675B (en) 2005-12-22 2008-05-07 Cramer Systems Ltd Communications circuit design
US20070150279A1 (en) 2005-12-27 2007-06-28 Oracle International Corporation Word matching with context sensitive character to sound correlating
US8694530B2 (en) 2006-01-03 2014-04-08 Textdigger, Inc. Search system with query refinement and search method
JP4816409B2 (ja) 2006-01-10 2011-11-16 日産自動車株式会社 認識辞書システムおよびその更新方法
US20070164782A1 (en) 2006-01-17 2007-07-19 Microsoft Corporation Multi-word word wheeling
US7769804B2 (en) 2006-01-17 2010-08-03 Microsoft Corporation Server side search with multi-word word wheeling and wildcard expansion
US20070192710A1 (en) 2006-02-15 2007-08-16 Frank Platz Lean context driven user interface
US7953730B1 (en) 2006-03-02 2011-05-31 A9.Com, Inc. System and method for presenting a search history
US7983910B2 (en) 2006-03-03 2011-07-19 International Business Machines Corporation Communicating across voice and text channels with emotion preservation
US7676460B2 (en) 2006-03-03 2010-03-09 International Business Machines Corporation Techniques for providing suggestions for creating a search query
US7831911B2 (en) 2006-03-08 2010-11-09 Microsoft Corporation Spell checking system including a phonetic speller
US7593927B2 (en) 2006-03-10 2009-09-22 Microsoft Corporation Unstructured data in a mining model language
US20070233651A1 (en) 2006-03-31 2007-10-04 International Business Machines Corporation Online analytic processing in the presence of uncertainties
US8725729B2 (en) 2006-04-03 2014-05-13 Steven G. Lisa System, methods and applications for embedded internet searching and result display
US20070255567A1 (en) 2006-04-27 2007-11-01 At&T Corp. System and method for generating a pronunciation dictionary
US7778837B2 (en) 2006-05-01 2010-08-17 Microsoft Corporation Demographic based classification for local word wheeling/web search
US7849115B2 (en) 2006-06-05 2010-12-07 Bruce Reiner Method and apparatus for adapting computer-based systems to end-user profiles
US7818332B2 (en) 2006-08-16 2010-10-19 Microsoft Corporation Query speller
US7831472B2 (en) 2006-08-22 2010-11-09 Yufik Yan M Methods and system for search engine revenue maximization in internet advertising
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US7647351B2 (en) 2006-09-14 2010-01-12 Stragent, Llc Web scrape template generation
US7552112B2 (en) 2006-09-18 2009-06-23 Yahoo! Inc. Discovering associative intent queries from search web logs
WO2008040585A1 (en) 2006-10-02 2008-04-10 International Business Machines Corporation Method and system of automatically adapting a user interface
US8511565B2 (en) 2006-10-17 2013-08-20 Silverbrook Research Pty Ltd Method of providing information via context searching of a printed graphic image
US20080104101A1 (en) 2006-10-27 2008-05-01 Kirshenbaum Evan R Producing a feature in response to a received expression
EP1931099A1 (en) 2006-12-04 2008-06-11 Alcatel Lucent Method for managing a communication between a server device and a customer device
US20080140519A1 (en) 2006-12-08 2008-06-12 Microsoft Corporation Advertising based on simplified input expansion
JP4277903B2 (ja) 2006-12-27 2009-06-10 カシオ計算機株式会社 辞書機能を備えた電子機器及びプログラム
US7957955B2 (en) 2007-01-05 2011-06-07 Apple Inc. Method and system for providing word recommendations for text input
US7742774B2 (en) 2007-01-11 2010-06-22 Virgin Mobile Usa, L.P. Location-based text messaging
US8677281B2 (en) 2007-02-09 2014-03-18 Intel-Ge Care Innovations Llc System, apparatus and method for emotional experience time sampling via a mobile graphical user interface
WO2008103682A1 (en) 2007-02-19 2008-08-28 Viewzi Inc. Multi-view internet search mashup
US7991609B2 (en) 2007-02-28 2011-08-02 Microsoft Corporation Web-based proofing and usage guidance
US8285745B2 (en) 2007-03-01 2012-10-09 Microsoft Corporation User query mining for advertising matching
EP2135231A4 (en) 2007-03-01 2014-10-15 Adapx Inc SYSTEM AND METHOD FOR DYNAMIC LEARNING
WO2008111081A2 (en) * 2007-03-14 2008-09-18 New Act Ltd. System and method for propagating personal identification information to communication devices
CN101286154B (zh) 2007-04-09 2016-08-10 谷歌股份有限公司 输入法编辑器用户档案
CN101286094A (zh) 2007-04-10 2008-10-15 谷歌股份有限公司 多模式输入法编辑器
CN105204617B (zh) 2007-04-11 2018-12-14 谷歌有限责任公司 用于输入法编辑器集成的方法和系统
CN101286092A (zh) 2007-04-11 2008-10-15 谷歌股份有限公司 具有第二语言模式的输入法编辑器
US7930676B1 (en) 2007-04-27 2011-04-19 Intuit Inc. System and method for adapting software elements based on mood state profiling
US8799307B2 (en) 2007-05-16 2014-08-05 Google Inc. Cross-language information retrieval
US20080294982A1 (en) 2007-05-21 2008-11-27 Microsoft Corporation Providing relevant text auto-completions
CN101815996A (zh) 2007-06-01 2010-08-25 谷歌股份有限公司 检测名称实体和新词
KR100968864B1 (ko) * 2007-06-01 2010-07-09 엔에이치엔(주) 전자메일에 대한 부가 정보 서비스 제공방법 및 그 시스템
WO2008151466A1 (en) 2007-06-14 2008-12-18 Google Inc. Dictionary word and phrase determination
JP5241828B2 (ja) 2007-06-14 2013-07-17 グーグル・インコーポレーテッド 辞書の単語及び熟語の判定
US20090002178A1 (en) 2007-06-29 2009-01-01 Microsoft Corporation Dynamic mood sensing
US20090043584A1 (en) 2007-08-06 2009-02-12 Lawrence Brooke Frank Philips System and method for phonetic representation
US20090043741A1 (en) 2007-08-09 2009-02-12 Dohyung Kim Autocompletion and Automatic Input Method Correction for Partially Entered Search Query
EP2183876A4 (en) 2007-08-17 2011-04-20 Google Inc DYNAMIC COMMUNITIES IN ONLINE SOCIAL NETWORKS
US7917355B2 (en) 2007-08-23 2011-03-29 Google Inc. Word detection
US20090055386A1 (en) 2007-08-24 2009-02-26 Boss Gregory J System and Method for Enhanced In-Document Searching for Text Applications in a Data Processing System
US8661340B2 (en) 2007-09-13 2014-02-25 Apple Inc. Input methods for device having multi-language environment
US8694483B2 (en) 2007-10-19 2014-04-08 Xerox Corporation Real-time query suggestion in a troubleshooting context
US20090128567A1 (en) 2007-11-15 2009-05-21 Brian Mark Shuster Multi-instance, multi-user animation with coordinated chat
US7728735B2 (en) 2007-12-04 2010-06-01 At&T Intellectual Property I, L.P. Methods, apparatus, and computer program products for estimating a mood of a user, using a mood of a user for network/service control, and presenting suggestions for interacting with a user based on the user's mood
JP5379155B2 (ja) 2007-12-06 2013-12-25 グーグル・インコーポレーテッド Cjk名前検出
US8165406B2 (en) 2007-12-12 2012-04-24 Microsoft Corp. Interactive concept learning in image search
CN101472321B (zh) 2007-12-27 2010-11-10 华为技术有限公司 制式和频点的搜索方法以及装置
US20090177976A1 (en) 2008-01-09 2009-07-09 Bokor Brian R Managing and presenting avatar mood effects in a virtual world
US7984004B2 (en) 2008-01-17 2011-07-19 Microsoft Corporation Query suggestion generation
US8196042B2 (en) * 2008-01-21 2012-06-05 Microsoft Corporation Self-revelation aids for interfaces
US8473276B2 (en) 2008-02-19 2013-06-25 Google Inc. Universal language input
US8010465B2 (en) * 2008-02-26 2011-08-30 Microsoft Corporation Predicting candidates using input scopes
US7917488B2 (en) 2008-03-03 2011-03-29 Microsoft Corporation Cross-lingual search re-ranking
US7472061B1 (en) 2008-03-31 2008-12-30 International Business Machines Corporation Systems and methods for building a native language phoneme lexicon having native pronunciations of non-native words derived from non-native pronunciations
US20090249198A1 (en) 2008-04-01 2009-10-01 Yahoo! Inc. Techniques for input recogniton and completion
CN101276245B (zh) 2008-04-16 2010-07-07 北京搜狗科技发展有限公司 一种输入过程中编码纠错的提示方法和系统
CN101587471A (zh) 2008-05-19 2009-11-25 黄晓凤 一种多语言混合输入的方法
US8677251B2 (en) * 2008-05-30 2014-03-18 Microsoft Corporation Creation and suggestion of contact distribution lists
US20090313239A1 (en) 2008-06-16 2009-12-17 Microsoft Corporation Adaptive Visual Similarity for Text-Based Image Search Results Re-ranking
WO2010014633A1 (en) 2008-07-28 2010-02-04 Breakthrough Performancetech, Llc Systems and methods for computerized interactive skill training
CN101661477A (zh) 2008-08-26 2010-03-03 华为技术有限公司 一种搜索方法和系统
US20100057733A1 (en) * 2008-09-02 2010-03-04 Suresh Ravinarayanan Purisai Method, computer program product, and apparatus for enabling access to enterprise information
US20110107265A1 (en) 2008-10-16 2011-05-05 Bank Of America Corporation Customizable graphical user interface
US8296125B2 (en) 2008-10-17 2012-10-23 International Business Machines Corporation Translating source locale input string to target locale output string
US20100110105A1 (en) * 2008-10-31 2010-05-06 Nokia Corporation Method, apparatus and computer program product for providing synchronized navigation
US8584031B2 (en) 2008-11-19 2013-11-12 Apple Inc. Portable touch screen device, method, and graphical user interface for using emoji characters
US8494835B2 (en) 2008-12-02 2013-07-23 Electronics And Telecommunications Research Institute Post-editing apparatus and method for correcting translation errors
CN102292722B (zh) 2009-01-21 2014-09-03 瑞典爱立信有限公司 基于多模元数据和结构化语义描述符来产生注释标签
WO2010088701A1 (en) * 2009-02-02 2010-08-05 Asurion Corporation Method for integrating applications in an electronic address book
US8539359B2 (en) 2009-02-11 2013-09-17 Jeffrey A. Rapaport Social network driven indexing system for instantly clustering people with concurrent focus on same topic into on-topic chat rooms and/or for generating on-topic search results tailored to user preferences regarding topic
US8564541B2 (en) 2009-03-16 2013-10-22 Apple Inc. Zhuyin input interface on a device
CN101848272B (zh) 2009-03-25 2013-08-28 鸿富锦精密工业(深圳)有限公司 手机的输入法切换方法
US8631070B2 (en) * 2009-03-27 2014-01-14 T-Mobile Usa, Inc. Providing event data to a group of contacts
US11076189B2 (en) 2009-03-30 2021-07-27 Time Warner Cable Enterprises Llc Personal media channel apparatus and methods
US8230336B2 (en) 2009-04-22 2012-07-24 Microsoft Corporation Efficient discovery, display, and autocompletion of links to wiki resources
CN101901235B (zh) 2009-05-27 2013-03-27 国际商业机器公司 文档处理方法和系统
CA2763668A1 (en) * 2009-05-27 2010-12-02 Google Inc. Computer application data in search results
US9104244B2 (en) 2009-06-05 2015-08-11 Yahoo! Inc. All-in-one Chinese character input method
US20110014952A1 (en) 2009-07-15 2011-01-20 Sony Ericsson Mobile Communications Ab Audio recognition during voice sessions to provide enhanced user interface functionality
US8479094B2 (en) 2009-09-08 2013-07-02 Kenneth Peyton Fouts Interactive writing aid to assist a user in finding information and incorporating information correctly into a written work
US20110066431A1 (en) 2009-09-15 2011-03-17 Mediatek Inc. Hand-held input apparatus and input method for inputting data to a remote receiving device
TW201113870A (en) 2009-10-09 2011-04-16 Inst Information Industry Method for analyzing sentence emotion, sentence emotion analyzing system, computer readable and writable recording medium and multimedia device
CN102056335B (zh) 2009-11-06 2014-02-19 华为技术有限公司 移动搜索方法、装置和系统
CN102834819B (zh) 2009-11-27 2016-08-03 谷歌公司 客户端-服务器输入法编辑器体系结构
US8612206B2 (en) 2009-12-08 2013-12-17 Microsoft Corporation Transliterating semitic languages including diacritics
EP3091535B1 (en) * 2009-12-23 2023-10-11 Google LLC Multi-modal input on an electronic device
US8631004B2 (en) 2009-12-28 2014-01-14 Yahoo! Inc. Search suggestion clustering and presentation
WO2011080615A1 (en) * 2009-12-31 2011-07-07 Nokia Corporation Method, device and computer program product for automatic provisioning of content at the device
US20110178981A1 (en) 2010-01-21 2011-07-21 International Business Machines Corporation Collecting community feedback for collaborative document development
US20110184723A1 (en) 2010-01-25 2011-07-28 Microsoft Corporation Phonetic suggestion engine
US20110191321A1 (en) 2010-02-01 2011-08-04 Microsoft Corporation Contextual display advertisements for a webpage
KR101220709B1 (ko) 2010-02-03 2013-01-10 삼성전자주식회사 한글 및 한자가 혼용된 문서에 대한 전자 사전 검색 장치 및 방법
US8782556B2 (en) 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
EP2534557A1 (en) * 2010-02-12 2012-12-19 Xelion B.V. Type and select data input field
US20110219299A1 (en) 2010-03-07 2011-09-08 DSNR Labs Ltd. Method and system of providing completion suggestion to a partial linguistic element
CN102193643B (zh) 2010-03-15 2014-07-02 北京搜狗科技发展有限公司 一种文字输入方法和具有翻译功能的输入法系统
US20110258535A1 (en) 2010-04-20 2011-10-20 Scribd, Inc. Integrated document viewer with automatic sharing of reading-related activities across external social networks
US8161073B2 (en) 2010-05-05 2012-04-17 Holovisions, LLC Context-driven search
US20110289105A1 (en) 2010-05-18 2011-11-24 Tabulaw, Inc. Framework for conducting legal research and writing based on accumulated legal knowledge
US8694899B2 (en) 2010-06-01 2014-04-08 Apple Inc. Avatars reflecting user states
US8359311B2 (en) * 2010-06-01 2013-01-22 Microsoft Corporation Federated implicit search
JP5455232B2 (ja) 2010-06-25 2014-03-26 Kddi株式会社 画像選定装置、方法及びプログラム
US9507880B2 (en) 2010-06-30 2016-11-29 Oracle International Corporation Regular expression optimizer
CN102314441A (zh) 2010-06-30 2012-01-11 百度在线网络技术(北京)有限公司 用于供用户进行个性化素材输入的方法、设备和系统
CN102314461B (zh) 2010-06-30 2015-03-11 北京搜狗科技发展有限公司 一种导航提示方法及系统
US8463592B2 (en) 2010-07-27 2013-06-11 International Business Machines Corporation Mode supporting multiple language input for entering text
US20120036468A1 (en) 2010-08-03 2012-02-09 Nokia Corporation User input remapping
US8473289B2 (en) 2010-08-06 2013-06-25 Google Inc. Disambiguating input based on context
US20120060113A1 (en) 2010-09-08 2012-03-08 Nuance Communications, Inc. Methods and apparatus for displaying content
US8594997B2 (en) 2010-09-27 2013-11-26 Sap Ag Context-aware conversational user interface
US8754860B2 (en) 2010-11-05 2014-06-17 Apple Inc. Device, method, and graphical user interface for manipulating soft keyboards
US8538978B2 (en) * 2010-11-22 2013-09-17 International Business Machines Corporation Presenting a search suggestion with a social comments icon
CN102012748B (zh) 2010-11-30 2012-06-27 哈尔滨工业大学 语句级中英文混合输入方法
US8712989B2 (en) 2010-12-03 2014-04-29 Microsoft Corporation Wild card auto completion
EP2661705A4 (en) 2011-01-05 2016-06-01 Google Inc METHOD AND SYSTEM FOR FACILITATING TEXT INPUT
US9501785B2 (en) * 2011-04-28 2016-11-22 Google Inc. Using feedback reports to determine performance of an application in a geographic location
US20120297294A1 (en) 2011-05-17 2012-11-22 Microsoft Corporation Network search for writing assistance
WO2012159249A1 (en) 2011-05-20 2012-11-29 Microsoft Corporation Advaced prediction
US8446432B2 (en) 2011-07-12 2013-05-21 Sony Corporation Context aware user interface system
US8762356B1 (en) 2011-07-15 2014-06-24 Google Inc. Detecting change in rate of input reception
US8564684B2 (en) 2011-08-17 2013-10-22 Digimarc Corporation Emotional illumination, and related arrangements
US20130054617A1 (en) 2011-08-30 2013-02-28 Alison Williams Colman Linking Browser Content to Social Network Data
US9489458B1 (en) * 2011-09-30 2016-11-08 Google Inc. Suggesting interaction among members of a social network
US20130091409A1 (en) 2011-10-07 2013-04-11 Agile Insights, Llc Method and system for dynamic assembly of multimedia presentation threads
US10264102B2 (en) 2011-11-03 2019-04-16 Aaron Nahumi System, methods and computer readable medium for augmented personalized social network
US8612414B2 (en) 2011-11-21 2013-12-17 Google Inc. Grouped search query refinements
US20150370833A1 (en) 2011-11-28 2015-12-24 Google Inc. Visual refinements in image search
US9378290B2 (en) 2011-12-20 2016-06-28 Microsoft Technology Licensing, Llc Scenario-adaptive input method editor
US8671392B2 (en) * 2012-01-23 2014-03-11 Sap Ag Integrating software applications
US8996356B1 (en) 2012-04-10 2015-03-31 Google Inc. Techniques for predictive input method editors
US20150127748A1 (en) 2012-04-13 2015-05-07 Google Inc. Recommendations for enhanced content in social posts
EP2842090A4 (en) * 2012-04-27 2015-12-09 Blackberry Ltd SYSTEMS AND METHODS FOR PROVIDING FILES IN RELATION TO A CALENDAR EVENT
EP2842088A4 (en) * 2012-04-27 2016-01-20 Blackberry Ltd SYSTEMS AND METHOD FOR MANUFACTURE AND USE OF A PERSONAL LINKAGE GRAPH
CN104428734A (zh) 2012-06-25 2015-03-18 微软公司 输入法编辑器应用平台
EP2867756A4 (en) 2012-06-29 2015-06-17 Microsoft Technology Licensing Llc INPUT METHOD EDITOR
EP2867749A4 (en) 2012-06-29 2015-12-16 Microsoft Technology Licensing Llc INTERLINGUISTIC INPUT METHOD EDITOR
US8959109B2 (en) 2012-08-06 2015-02-17 Microsoft Corporation Business intelligent in-document suggestions
EP2891078A4 (en) 2012-08-30 2016-03-23 Microsoft Technology Licensing Llc CHOICE OF CANDIDATE BASED ON CHARACTERISTICS
US8498864B1 (en) 2012-09-27 2013-07-30 Google Inc. Methods and systems for predicting a text
US10656957B2 (en) 2013-08-09 2020-05-19 Microsoft Technology Licensing, Llc Input method editor providing language assistance
US10183679B2 (en) 2016-06-28 2019-01-22 Volkswagen Aktiengesellschaft Apparatus, system and method for personalized settings for driver assistance systems

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6564254B1 (en) * 1998-11-04 2003-05-13 Dream Technologies Corporation System and a process for specifying a location on a network
CN1609764A (zh) * 2003-10-24 2005-04-27 微软公司 向输入法提供上下文的系统和方法
CN101183360A (zh) * 2006-11-15 2008-05-21 富士通株式会社 程序、字符输入编辑方法及设备
CN101183355A (zh) * 2006-11-15 2008-05-21 富士通株式会社 程序、复制和粘贴处理方法、装置以及存储介质
CN101286093A (zh) * 2007-04-09 2008-10-15 谷歌股份有限公司 客户端输入方法
US20120060147A1 (en) * 2007-04-09 2012-03-08 Google Inc. Client input method
CN102144228A (zh) * 2008-07-03 2011-08-03 谷歌股份有限公司 根据输入字符序列的资源定位符建议
US20120019446A1 (en) * 2009-03-20 2012-01-26 Google Inc. Interaction with ime computing device
TW201205352A (en) * 2010-04-12 2012-02-01 Google Inc Extension framework for input method editor
US20120041752A1 (en) * 2010-04-12 2012-02-16 Yong-Gang Wang Extension framework for input method editor

Also Published As

Publication number Publication date
WO2014000143A1 (en) 2014-01-03
US9921665B2 (en) 2018-03-20
US10867131B2 (en) 2020-12-15
EP2864856A1 (en) 2015-04-29
US20130346872A1 (en) 2013-12-26
US20170177562A1 (en) 2017-06-22
EP2864856A4 (en) 2015-10-14
CN104428734A (zh) 2015-03-18

Similar Documents

Publication Publication Date Title
CN110488991A (zh) 输入法编辑器应用平台
US10055113B2 (en) System and method for modifying user interface elements
US9514470B2 (en) Enhanced search suggestion for personal information services
US7493592B2 (en) Programming interface for a computer platform
US8196039B2 (en) Relevant term extraction and classification for Wiki content
US8775930B2 (en) Generic frequency weighted visualization component
Sanderson Pro Asp. net MVC 2 Framework
US20180203833A1 (en) Data collection for a new conversational dialogue system
CN104428764A (zh) 用于处理、呈现和推荐引用的系统、方法和软件
DE102016125509A1 (de) Einbindung von auswählbaren Anwendungsverknüpfungen in Nachrichtenaustausch-Threads
CN108958731B (zh) 一种应用程序界面生成方法、装置、设备和存储介质
Bolin End-user programming for the web
US20090234913A1 (en) Data structure for initiating multiple web sites
US8413062B1 (en) Method and system for accessing interface design elements via a wireframe mock-up
Bernard et al. Hibernate search in action
US20090234807A1 (en) Simultaneous searching using multiple search engines
CN110244948A (zh) 基于编程语言对按钮状态进行切换的方法以及电子设备
US11880644B1 (en) Inferred event detection and text processing using transparent windows
CN116975437A (zh) 信息处理方法、装置、设备、存储介质及程序产品
Rahmel Introduction to Joomla!
CN115004175A (zh) 用于文档查询的系统、设备和方法
Powers Foundation PHP for Dreamweaver 8
Aimonetti MacRuby: The Definitive Guide: Ruby and Cocoa on OS X
App Create your own Operating System Big Data Vis-a-Vis Hadoop and Storm DB2 Federated systems
Boketoft Web Content ManagementSystem Powered by Ajax

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