CN116194925A - 从非字符子标记信号中自动检测语言 - Google Patents
从非字符子标记信号中自动检测语言 Download PDFInfo
- Publication number
- CN116194925A CN116194925A CN202180063398.1A CN202180063398A CN116194925A CN 116194925 A CN116194925 A CN 116194925A CN 202180063398 A CN202180063398 A CN 202180063398A CN 116194925 A CN116194925 A CN 116194925A
- Authority
- CN
- China
- Prior art keywords
- language
- score
- corpus
- prefix
- word
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/263—Language identification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Character Discrimination (AREA)
Abstract
在本公开的非限制性示例中,呈现了用于确定文本字符串的语言的系统、方法和设备。可以维护语言检测模型。语言检测模型可以包括针对词首辅音和词尾辅音的身份和权重,针对前缀和后缀的身份和权重,以及针对元音序列的身份和权重,其中每个身份都是从训练语料库中导出的。权重可以对应于文本单元在语料库中的频率。可以接收文本字符串,并且可以确定文本字符串与语言检测模型的语言之间的匹配分数。匹配分数可以基于针对文本字符串中每个单词的词首辅音分数和词尾辅音分数、前缀分数和后缀分数和/或元音序列分数。如果匹配分数满足阈值,则可以执行与该语言相关联的后续动作。
Description
背景技术
计算设备上的文本输入越来越依赖于特定语言的处理来提炼和响应用户意图。这种处理依赖于一个核心假设,即被输入的文本的语言是已知的。当假设的语言与输入的文本不匹配时,这些系统运行很差。为了解决这个问题,系统可以使用预处理步骤来标识传入的文本字符串的语言。
本文公开的本技术的各方面是针对该一般技术环境而已经被考虑的。此外,尽管已经讨论了一般环境,但是应当理解,本文描述的示例不应当限于背景中所标识的一般环境。
发明内容
提供本公开内容是为了以简化的形式介绍一些概念,这些概念将在下文的具体实施方式部分中进一步描述。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。示例的附加方面、特征和/或优点将在下面的描述中部分地阐述,并且部分地将从描述中变得显而易见,或者可以通过本公开的实践来了解。
本公开的非限制性示例描述了用于确定输入至计算设备的文本字符串的语言的系统、方法和设备。语言检测应用或服务可以维护针对一种或多种语言的语言检测模型。语言检测模型可以包括:多个前缀的身份(identity),以及与这些前缀相关联的权重(weight),如在语言的语料库中所标识的那样;多个后缀的身份,以及与这些后缀相关联的权重,如在语言的语料库中所标识的那样;多个词首辅音(initial consonant)的身份,以及与这些词首辅音相关联的权重,如在语言的语料库中所标识的那样;多个词尾辅音(final consonant)的身份,以及与这些词尾辅音相关联的权重,如在语言的语料库中所标识的那样;以及元音序列的身份,以及与这些元音序列相关联的权重,如在语言的语料库中所标识的那样。与那些部分单词(例如,“标记(token)”)中的每个单词相关联的权重可以对应于部分单词在语料库中的频率(例如,频率越高,权重越高)。
当接收到文本字符串输入时,可以将一个或多个语言检测模型应用于文本字符串。可以基于被包括在文本字符串的单词中的前缀和后缀、被包括在文本字符串的单词中的音节(syllable)来确定文本字符串和与所应用的语言检测模型相对应的每种语言之间的匹配分数,其中,音节被定义为如模型中定义的可选合法的词首辅音序列,后面是由模型定义的强制合法元音序列,后面是如模型中定义的可选合法的词尾辅音序列。合法的单词或词干是仅由连续的合法音节序列组成的。在一些示例中,如果语言检测模型的匹配分数满足阈值,则可以确定文本字符串是对应的语言。在另外的示例中,文本字符串可以被确定为相关于与最高得分的语言检测模型的匹配分数相关联的语言。
附图说明
参考以下附图描述了非限制性和非穷举性示例:
图1是示出用于确定文本字符串的语言以及基于该确定执行一个或多个后续动作的示例分布式计算环境的示意图。
图2是示出语言检测模型的训练的计算环境的示意图。
图3示出了用于由被包含在语言检测训练引擎中的多个处理引擎处理来自语料库的示例性单词的计算环境。
图4示出了语言检测模型的各种组件。
图5A是用于使用基于音节的语言检测模型确定文本字符串是否与语言匹配以及基于该确定执行后续动作的方法。
图5B是用于使用基于词缀的模型确定文本字符串是否与语言匹配以及基于该确定执行后续动作的方法。
图5C是用于使用基于词缀和基于音节的语言检测模型两者确定文本字符串是否与语言匹配以及基于该确定执行后续动作的方法。
图5D是用于使用语言检测模型在多种语言中选择最佳语言以及基于该确定执行后续动作的方法。
图6和图7是可以实践本公开各方面的移动计算设备的简图。
图8是可以实践本公开各方面的计算设备的示例物理组件的框图。
图9是可以实践本公开各方面的分布式计算系统的简化框图。
具体实施方式
将参照附图对各种实施例进行详细描述,其中遍及多个视图中相同的引用编号代表相同的部件和组件。对各种实施例的引用在此并不限制所附权利要求的范围。此外,本说明书中阐述的任何示例并不旨在进行限制,而仅阐述了针对所附权利要求的许多可能实施例中的一些实施例。
本公开的非限制性示例描述了用于确定输入到计算设备构造中的文本字符串的语言的系统、方法和设备。文本字符串输入到的构造可以包括操作系统外壳构造(shellconstruct)、应用构造或应用服务(例如,基于云的服务)构造。语言检测服务可以接收利用本文中描述的语言检测模型来分析文本的指示。语言检测服务可以被并入本地计算设备和/或云中,并在其上执行。该指示可以包括确定文本输入之前还没有被当前正在接收文本字符串输入的构造中的用户账户所接收,和/或用户账户还没有为计算设备、应用或服务设置偏好语言。在一些示例中,本文描述的语言检测服务可以简单地周期性地或每当在一个或多个计算构造中接收到文本输入时应用语言检测模型。
语言检测服务可以包括针对多种语言中的每一种语言的单独的语言检测模型(例如,一个模型针对英语,一个模型针对德语,一个模型针对西班牙语)。每个模型可以包括相同或相似的处理引擎,但是不同的语言学分量(例如,前缀、后缀、元音序列、词首辅音序列、词尾辅音序列、常见单词)的加权列表,有时在本文被称为“标记”。可以训练这些单独的语言模型,使得每个标记的权重与它们在语言中的相对频率相对应,或者更具体地,与它们在模型在语料库上被训练的一个或多个语料库中的相对频率相对应。
在运行时,当接收到文本字符串输入时,语言检测服务可以将一个或多个语言检测模型应用于文本字符串,以及计算针对字符串中每个单词与所应用的模型所对应的每种语言的匹配分数。可以针对每个单词的分数进行求和或其他功能性处理,以生成针对文本字符串和语言的总匹配分数。在一些示例中,如果确定文本字符串与语言之间的匹配分数满足或超过阈值,则可以确定该文本字符串肯定是该语言、可能/大概是该语言、或者肯定不是该语言。在其他示例中,语言检测服务可以确定与来自多个语言检测模型的多个分数中的最高排名匹配分数相关联的语言是该文本字符串的语言。
基于文本字符串大概为特定语言的确定,可以执行各种后续动作。例如,可以将特定语言的语言处理模型(例如,意图确定处理模型、拼写检查处理模型、语法检查处理模型等)应用于文本字符串。应用于特定语言的语言处理模型的类型可以基于接收文本字符串的应用或计算外壳构造来确定。在一些示例中,后续动作可以包括将特定语言的一个或多个语言学库或模型从云数据库下载到接收文本字符串的本地计算设备。
本文所描述的系统、方法和设备为标识输入文本的语言提供了技术优势。与依赖于长度为N的字符的字符串的频率的传统语言检测模型(诸如n-gram模型)相关联的存储器成本经由应用本文中描述的机制而大大降低,因为可以维护由词首辅音和词尾辅音、元音序列、常见单词以及前缀和后缀组成的相对较小的模型来处理文本输入。本文所描述的语言检测模型及其对应的库可以完全在本地计算设备上维护,并且较大的处理模型和相关联的语言库(例如,供数字助理使用,供生产力应用使用)可以仅在确定用户的主要输入语言时被下载到那些本地计算设备。此外,本公开各方面结合了标记结构的语言学意识和频率分析。这种方法避免了字符n-gram模型自然出现的噪声,而该模型不能调节词素(morpheme)和音节的边界。
图1是示出用于确定文本字符串的语言以及基于该确定执行一个或多个后续动作的示例分布式计算环境100的示意图。计算环境100包括计算设备102、网络和处理子环境108、语言检测子环境116,语言检测子环境116包含语言检测模块124、可以被包括在语言模型数据存储库120中的多个语言检测模型以及后续动作模块126。常见的后续动作可能是下载或以其他方式部署全套语言资产114。
网络和处理子环境108包括网络110和服务器计算设备112。本文描述的任何计算设备可以经由网络(诸如网络110)彼此通信。服务器计算设备112示出了可以托管一个或多个应用服务的一个或多个服务器。一个或多个应用服务可以经由互联网从诸如计算设备102的一个或多个本地计算设备被访问,并且那些应用服务可以在云中被执行。
一般在语言检测模型子环境116中示出的语言检测服务可以在云中(例如,由服务器计算设备112)被托管和被执行,和/或语言检测服务可以由本地计算设备(例如,计算设备102)托管和执行。事实上,本文中所描述的语言检测模型的一个技术优点是它们足够小(例如,从存储器需求和存储装置占用空间(footprint)来看),使得它们可以容易地驻留在由本地计算设备提供的有限存储装置上,并且因此它们不一定需要在云中被执行。
语言检测服务可以执行与以下操作相关联的操作:在本地计算设备上输入的计算外壳构造(例如,桌面搜索栏、数字助理输入)或应用构造(例如,网络浏览器应用中的网络搜索、文字处理应用中的文档画布)中接收文本字符串;用不同的语言模型处理那些文本字符串;以及确定输入文本的语言。在一些示例中,语言检测服务可以使对输入文本或者与输入文本的确定语言相关联地采取一个或多个后续动作。
语言检测模型子环境116包括语言检测模块124和后续动作模块126。关于语言检测模型子环境116描述的元素可以被包含在语言检测服务中。
如图2所示,语言检测训练引擎可以针对一种或多种语言生成前缀、后缀、词首辅音、元音序列和/或词尾辅音的加权列表。列表可以根据针对语言检测服务为其维护模型的每种语言的一个或多个语料库而被生成。这些语料库可以被包含在训练数据存储库中。
语言数据集的训练可以产生标记的加权列表(例如,加权元音序列、加权前缀、加权后缀、加权词首辅音、加权词尾辅音)。分配给标记的权重可以与标记在用于训练针对语言的模型的一个或多个语料库中的频率相对应。针对每种语言的多个最终加权列表(例如,图2中的最终加权个体语言模型250)可以被包含在与语言检测服务相关联的数据存储库中,诸如语言模型数据存储库120。下面结合图2和图3描述关于语言检测模型的训练的附加细节。
在一些示例中,可以优化语言检测模型,以区分密切相关的语言(例如,丹麦语和挪威语)。例如,可以修改词缀清单以确保每个第一语言(例如,挪威语)后缀都有其第二语言(例如,丹麦语)的对应物,并且每个第二语言后缀都有其第一语言的对应物。然后,可以修改训练数据,使得第一语言训练数据和第二语言训练数据具有高度的相似性,从而随后分配给词缀的权重也被对齐。
语言检测模块124可以包括一个或多个处理引擎,其应用于与语言模型数据(例如,来自语言模型数据存储库120)相关联的输入文本字符串,以确定输入文本字符串的语言。关于将语言模型应用于文本字符串的其他细节将在下面结合图4来描述。
一旦确定输入文本对应于特定语言,后续动作模块126可以使对输入文本采取一个或多个动作,和/或执行与所确定的语言相关联的一个或多个动作。在一些示例中,动作可以包括将所确定的语言的语言处理模型应用于输入文本字符串。例如,如果确定输入文本字符串是英语,并且该输入文本字符串由数字助理服务构造接收到,则可以利用英语语言意图标识处理模型来处理该文本字符串。在另一特定示例中,如果确定输入文本字符串是德语,并且该输入文本字符串是在单词处理文档中接收的,则德语语言拼写或语法检查处理模型可以被应用于该文本字符串。
因此,后续动作模块126可以基于接收输入文本字符串的构造以及所确定的文本字符串的特定语言,标识适当的语言处理模型和/或采取的行动。在附加的示例中,在确定文本字符串对应于特定语言时,后续动作模块126可以标识要下载到接收文本的设备的一个或多个语言库和/或语言模型。例如,如果确定由计算设备102接收的输入文本字符串是语言X,则后续动作模块126可以使来自全套语言资产114的一个或多个(语言X的)语言库或语言模型将被从云中下载到计算设备102。这样,本地计算设备只需要下载和存储可能被本地计算设备的用户所利用的语言库和语言模型。
在此示例中,计算设备102显示应用103,其示出了可以由本地计算设备访问和/或执行的任何应用。例如,应用103可以包括文字处理应用、电子表格应用、演示应用、任务完成应用、消息应用、网络浏览器应用或游戏应用。应用103可以在计算设备102上或云中执行。用户已经在应用103的画布104上输入了文本字符串106。
语言检测服务可以从由从本地计算设备执行的应用或外壳构造中接收和处理文本,该接收和处理基于初次输入到特定构造中的文本和/或基于接收先前输入的文本可能已经用与输入文本语言不匹配的语言模型处理的指示。当语言检测服务接收到文本字符串106时,其可以对文本字符串106应用一个或多个语言检测模型。
在将语言检测模型应用于文本字符串106时,可以提取和分析来自字符串中每个单词的标记。例如,可以确定文本字符串106中的每个单词是否具有被包括在语言模型中的前缀或后缀(例如,用于该语言模型的加权前缀或加权后缀的列表)。可以基于语言模型中前缀/后缀的相应权重对所标识的每个前缀或后缀进行评分。可以使用特定顺序的词首辅音连缀(cluster)列表、元音列表和词尾辅音连缀列表,将完整的单词或词干(拆除所标识词缀后剩余的部分)迭代地分析成音节。根据一些示例,还可以为文本字符串106中的单词确定标记间(inter-token)分数。针对语言检测模型的最终语言匹配分数可以根据一个或多个上述标记分数来计算。最高得分语言检测模型可以被确定为与文本字符串所在的语言相对应。
为便于说明,下文提供了将语言检测模型应用于文本字符串的单词的示例。
对于单词“ANTIDISESTABLISHMENTARY”,根据本文所描述示例的语言检测模型的应用可以包括以下操作/处理步骤。
查找匹配ANTIESTABLISH-MENTARY的词尾的最长后缀序列。
检查剩余部分是否至少为N个字符(N=2,3,取决于语言),如果不是,用更短的后缀重试。
检查剩余部分是否有元音,如果没有,用更短的后缀重试。
检查前面辅音序列与词尾辅音序列列表的兼容性(算法根据后缀是否以元音开头而变化)。如果没有,用更短的后缀重试。
一旦已经选择了后缀,拆除该后缀并检查剩余词干的开头,以获得最长的匹配前缀序列ANTI-DIS-ESTABLISH。
检查剩余部分(词干)是否至少为N个字符(N=1,2,3,取决于语言),如果不是,用更短的前缀重试。
检查剩余部分是否有元音。如果没有,用更短的前缀重试。
检查随后辅音序列与词首辅音序列列表的兼容性(算法根据前缀是否以元音结尾而变化)。如果没有,用更短的前缀重试。
将词干分析成音节(迭代)(#-E-S)(T-A-B)(L-I-SH)。
拆除词首辅音连缀#-ESTABLISH。
标识辅音连缀E-STABLISH之后的元音连缀的最佳序列。
标识最佳的词尾辅音/词首辅音连缀组合S-T-ABLISH。
标识辅音连缀A-BLISH之后的元音连缀的最佳序列。
标识最佳的词尾辅音/词首辅音连缀组合B-L-ISH。
标识辅音连缀I-SH之后的元音连缀的最佳序列。
标识最佳的词尾辅音/词首辅音连缀组合SH。
将这些分量的对数概率相加,以确定音节分数。
针对音节/前缀/后缀内插对数概率。
返回图1的示例,语言检测服务确定文本字符串106对应于语言A,如语言检测元件128所示。这样,语言检测服务可以使一个或多个动作被执行,如后续动作元件130所示。
图2是示出语言检测模型的训练的计算环境200的示意图。计算环境200包括语料库202、词缀检测训练引擎204、音节划分符标记检测训练引擎212、最终加权引擎234和最终加权个体语言模型250。
训练可以分三个阶段进行:首先,可以标识标记的初步列表(例如,后缀候选218、前缀候选220、单词-词首辅音222、元音和元音序列224、单词-词尾辅音226),然后,可以经由多个过程(例如,后缀审查228、前缀审查230、辅音和元音序列审查232)人工审查和最终确定该初步列表,最后,一旦建立了标记清单,可以通过将来自语料库(例如,语料库202)的权重应用于最终确定的列表(例如,后缀候选218、前缀候选220、单词-词首辅音222,元音和元音序列224、单词-词尾辅音226)来对审查的列表进行加权。在模型包括1)后缀和前缀的加权列表(例如,后缀候选218、前缀候选220),以及2)对拆除前缀和后缀后剩余的词干进行音节分析所需的加权列表(例如,单词-词首辅音222、元音和元音序列224、单词-词尾辅音226)两者的情况下,后缀候选218和前缀候选220的标识和加权可以先于音节分析所需的标记(例如,单词-词首辅音222、元音和元音序列224、单词-词尾辅音226)的标识和加权。音节分析所需的标记的标识可能需要在训练之前人工标识被训练的语言的元音。
词缀检测训练引擎204包括后缀训练引擎208、前缀训练引擎210和从语料库202提取的初步词缀列表的人工审查。音节划分符标记检测训练引擎212包括单词-词首辅音222、元音和元音序列224以及单词-词尾辅音226。词干-词首辅音连缀或单词-词首辅音连缀以及词干-词尾辅音连缀或单词-词尾辅音连缀可以用于确定该语言的音节-词首辅音连缀和音节-词尾辅音连缀,因为单词内部的音节很少以辅音连缀结尾,而该辅音连缀可能不结束单词。在词缀检测引擎以及音节检测引擎两者都被训练的情况下,词缀检测引擎将可能在音节检测之前被应用。音节检测训练还可以包括人工审查单词-词首辅音222、元音和元音序列224以及单词-词尾辅音226。词缀检测训练引擎204和音节划分符标记检测训练引擎212以及最终加权引擎234是可以用于训练语言检测模型的训练过程的示例。给定语言的最终模型可以由最终加权个体语言模型250中的一个或多个最终加权列表组成。对于各种语言的多个加权列表可以被包括在图1中的语言模型数据存储库120中。
词缀检测训练引擎204可以从语料库202接收多个单词。从语料库202接收的单词是所得到的语言检测模型将被训练来检测的语言。例如,如果语言检测训练引擎被实现来训练英语语言检测模型,则语料库202将包括多个英语单词。或者,如果语言检测训练引擎被实现来训练德语语言检测模型,则语料库202将包括多个德语单词。
后缀训练引擎208可以从语料库202中标识和提取单词中的后缀。在标识和提取后缀时,后缀训练引擎208可以在语料库202中搜索单词的结尾以寻找长度为1-N的n-gram,其中N取决于语料库202的语言。例如,对于第一语言,可以人工确定后缀序列仅可能有五个字符(例如,字母)或更少,这样,从一个字符到五个字符(1-N=1-5)的后缀将被标识和提取。后缀训练引擎208可以标识在语料库202中以阈值频率出现的长度为1-N的单词结尾处的字符序列,并将它们标为可能是后缀。
前缀训练引擎210可以从语料库202中标识和提取单词中的前缀。在标识和提取前缀时,前缀训练引擎210可以在语料库202中搜索单词的开头以寻找长度为1-N的n-gram,其中N取决于语料库202的语言。例如,对于第一语言,可以人工确定前缀序列仅可能有六个字符(例如,字母)或更少,这样,从一个字符到六个字符(1-N=1-6)的前缀将被标识和提取。前缀训练引擎210可以标识在语料库202中以阈值频率出现的长度为1-N的单词开头的字符序列,并将它们标为可能是前缀。
根据将后缀训练引擎208和/或前缀训练引擎210应用于语料库202中的单词的一些示例,所得到的单词词干(例如,字符减去标识/提取的前缀和/或后缀)必须至少为阈值数量的字符长,并包括至少一个元音。如果确定所得到的单词词干不是至少阈值数量的字符长,并且包括至少一个元音,则该单词和/或已经为该特定单词标识的前缀或后缀可以从训练过程中被拒绝,并且更短的前缀/后缀被测试。
在一些示例中,可以对标识的前缀和后缀进行人工审查。也就是说,熟悉该语言的人可以人工审查前缀候选(例如,前缀候选220)的列表,并丢弃不是为其构建/训练模型的语言的真实前缀的任何前缀。这由前缀审查230示出。类似地,熟悉该语言的人可以人工审查后缀候选(例如,后缀候选218)的列表,并丢弃不是为其构建/训练模型的语言的真实后缀的任何后缀。这由后缀审查228示出。
音节划分符标记检测训练引擎212可以拆除与前缀候选220和后缀候选218相关联的列表中包括的前缀和后缀,以及标识和提取剩余子字符串(例如词干)中的词首辅音序列和词尾辅音序列。音节划分符标记检测训练引擎212可以另外收集和计数紧跟在开头辅音序列之后或紧跟在词尾辅音序列之前的元音序列。在示例中,长度为零或更大的任何词首或词尾非元音字符串可以被视为辅音序列。
根据一些示例,辅音序列候选和元音序列候选(例如,单词-词首辅音222、元音和元音序列224、单词-词尾辅音226)可以被人工审查,如辅音和元音序列审查232所示。也就是说,熟悉该语言的人可以人工审查独特的辅音序列和元音序列,并丢弃不常见的和任何由训练数据(例如,专有名词、外来名词)中的噪声产生的序列。在一些示例中,单音节元音序列可以被跨音节拆分(例如,“mayor”中的“ayo”可以拆分为“ay”和“o”)。
一旦建立了最终标记清单(例如,后缀候选218、前缀候选220、单词-词首辅音222、元音和元音序列224、单词-词尾辅音226)和最终常见单词列表236,每个标记的最终权重可以通过最终加权引擎234对语料库202重新训练整个标记列表来分配。最常见的单词在语言中通常具有相当独特的结构,因此当建立其他标记的权重时,在语料库202中可以忽略非常常见的单词(如最终常见单词列表236中所定义的)。
在训练模型时,标记列表中的前缀和后缀(例如,前缀候选220和后缀候选218)可以按长度降序排序。如果单词以前缀开始或以后缀结束,则可以确定剩余子字符串的开头或结尾是以合法的辅音序列开始或结束(包括空序列,如果在语言中允许的话)。如果确定辅音序列不合法,或者如果单词的剩余部分不包含元音,则可以在列表中标识与该单词匹配的下一个最短前缀或后缀。例如,在单词“render”中,训练可能确定“re-”是前缀,但随后将其丢弃,因为“nd”不在可以合法地开始一个英语单词的辅音序列列表中。这个步骤也可以用来避免错误地将后缀计为“-ion”,如在“lion”中。
在一些示例中,在处理后缀时,可以执行附加步骤。如果后缀以元音开始,并且前一个辅音序列不能结束单词,则可以确定是否存在合法的词尾/词首辅音组合。例如,后缀“-ation”(如在“amalgamation”中)是在解析单词“filtration”时找到的。拆除“-ation”后,剩余子字符串是“filtr”。因为字符序列“tr”不能合法地结束英语音节,所以后缀可能被拒绝,但是因为后缀以元音开始,并且因为可以创建包括元音、词尾辅音连缀、词首辅音连缀组合(例如,i/l/tr)的合法序列,所以在“filtration”的情况下,“-ation”可以被计为后缀。
当执行该训练时,最终加权引擎234可以在处理前缀之前处理后缀。
一旦已经从单词中拆除前缀和后缀,最终加权引擎234可以将剩余内容划分成音节。例如,对于单词“fungicide”,由模型训练引擎234执行的先前步骤将标识后缀“-cide”,留下“fungi”。最终加权引擎234可以向词首连缀“f”以及元音序列“u”和“i”添加权重(例如,加1)。这留下了序列“ng”。英语单词不能合法地以序列“ng”开始,但是仍然有两个合法的选项。这些选项是将字符串拆分成“n-g”或“ng-#”。最终加权引擎234可以选择具有最高组合权重的选项。例如,如果“ng-#”的权重是180,而“n-g”的权重是250,则最终加权引擎234可以选择“n-g”,并将权重加到“n”作为词尾连缀,将权重加到“g”作为词首连缀。
如果最终加权引擎234无法利用上述步骤构建合法单词(例如,该单词不含任何元音,或以非法英语连缀开始,如“kjenne”),则出于训练目的,该单词可以被忽略。
由最终加权引擎234执行的训练可以通过对这些最终计数的概率取对数来完成。
图3示出了用于通过被包含在用于单一语言的语言检测训练引擎中的多个处理引擎来处理来自该语言的语料库的示例性单词的计算环境300。尽管关于图3描述的处理被示出为由多个处理引擎执行,但是应该理解,每个示出的引擎可以包含在单个处理引擎中,并且经由语言检测模型的应用来应用于文本字符串。应当理解,单个处理引擎可以用于所有语言,语言之间的差异仅包含在它们的模型中(例如,在最终加权个体语言模型250中)。示例性单词是“antidisestablishmentary”,其前缀是“anti”和“dis”,其后缀是“ment”、“ar”和“y”。其词干是“establish”。
后缀序列标识引擎308应用于示例性单词302B,从而标识出后缀316(“y”,后面的是“ar”,然后是“ment”),该后缀316被从剩余字符318(“antidisestablish”)(例如,示例性子单词302D)中拆除。
前缀序列标识引擎310应用于示例性子单词302D,“antidisestablish”,从而标识出前缀311(“anti”和“dis”),该前缀311被从剩余字符312中拆除,剩余字符312是词干302F(“establish”)。
音节训练引擎320被应用于词干302F“establish”,从而标识出空的词首辅音序列322A(“#”),因为“establish”以元音开始。
元音序列分析器321确定“i”形成单个音节,因此是对“i”的最佳(也是唯一可能的)分析。最佳音节间(intersyllable)辅音序列分析器323确定三种可能的音节间辅音序列分析中哪一种是最佳的。序列是“st”,三种可能的分析是“st-”、“s-t”和“-st”。其选择“s-t”,因为音节-词尾“s”的概率加上音节-词首“t”的概率大于其他选项的组合概率。音节训练迭代进行以分析序列302H中的两个剩余音节,并以词尾音节302I“lish”结尾,因为其后面没有元音。
可以将由图3所示的引擎标识的每个标记添加到语言模型中(例如,在最终加权个体语言模型250中)的标记列表,并且一旦引擎已经被应用于语料库202中的剩余单词,对这些标记的权重进行归一化。
图4示出了语言检测模型402的各种组件,其与图2中的最终加权个体语言模型250相同或相似。语言检测模型402包括加权前缀和前缀序列404、加权后缀和后缀序列406、加权合法词首辅音连缀408、加权合法词尾辅音连缀410、加权合法元音序列412、合法字符、代码点、标点符号414和常见单词416,它们也可以被加权。
加权前缀和前缀序列404包括经由前缀训练引擎210标识的字符的字符串,并且其权重可以经由与前缀审查230相关联的一个或多个操作的应用进行调整。
加权后缀和后缀序列406包括经由后缀训练引擎208标识的字符的字符串,并且这些字符的字符串的权重可以经由与后缀审查228相关联的一个或多个操作的应用进行调整。
加权合法词首辅音连缀408包括经由音节划分符标记检测训练引擎212标识词首辅音连缀字符串,并且这些词首辅音连缀字符串的权重可以经由与辅音和元音序列审查232相关联的一个或多个操作的应用进行调整。
加权合法词尾辅音连缀410包括经由音节划分符标记检测训练引擎212标识的词尾辅音连缀字符串,这些词尾辅音连缀字符串的权重可以经由与辅音和元音序列审查232相关联的一个或多个操作的应用进行调整。
加权合法元音序列412包括元音和元音序列,该元音和元音序列经由音节划分符标记检测训练引擎212标识,并且其权重可以经由与辅音和元音序列审查232相关联的一个或多个操作的应用进行调整。
合法字符、代码点、标点符号414可以包括高度指示特定语言的合法字符、代码点和/或标点符号的列表(例如,颠倒的问号可以对应于字符串是西班牙语的99%可能性)。
常见单词416可以包括高度指示特定语言的单词列表。
在运行时(例如,当接收到文本字符串输入时),接收到确定与包括一个或多个单词的文本字符串相关联的语言的指示,可以将用于一种或多种语言的一个或多个语言检测模型(诸如语言检测模型402)应用于文本字符串。候选语言的字符串的分数可以基于字符串与前缀、后缀和音节在语言检测模型402中的频率的匹配度来获得。模型中没有出现的音节的存在强烈指示该字符串与模型的语言不匹配。可以针对多个候选语言模型来测试字符串,并且可以比较每个模型的分数以获得该字符串的语言的置信度分数。
图5A是基于单个基于音节的语言检测模型的应用来确定文本字符串的语言以及基于该确定执行后续动作的方法500A。方法500A开始于开始操作,并且流程移至操作502A。
在操作502A,维护针对第一语言的语言检测模型。该语言检测模型可以包括:第一列表,包括来自第一语言的语料库的多个音节-词首辅音的身份、以及针对该多个音节-词首辅音中的每个音节-词首辅音的权重;第二列表,包括来自第一语言的语料库的多个元音序列的身份、以及针对该多个元音序列中的每个元音序列的权重;以及第三列表,包括来自语料库的多个音节-词尾辅音的身份、以及针对该多个音节-词尾辅音中的每个音节-词尾辅音的权重。权重可以对应于词首辅音和词尾辅音在语料库中的频率。
根据一些示例,预处理步骤(未显示)可以快速接受单词,因为该单词在常见单词列表中,或者可以拒绝该单词,因为该单词不包含元音。
流程从操作502A继续至操作504A,在操作504A中,从词干或单词的开头开始,将基于音节的语言检测模型迭代地应用于文本字符串的单词或单词的词干中的连续的每个音节。如下文所讨论的那样,初始音节被标识,然后处理移至第一个被识别的音节之后的位置,并且持续到单词或词干的最后字符。
将基于音节的语言检测模型应用于单词可以包括:确定剩余(未处理的)单词或词干中的第一辅音连缀的音节-词首辅音连缀分数,其中词首辅音连缀分数对应于词首辅音连缀在语料库(例如,语料库202)中的频率。将语言检测模型应用于单词或词干还可以包括:确定单词或词干的剩余未处理部分中第一辅音连缀之后的第一元音连缀的元音连缀分数。将语言检测模型应用于单词或词干还可以包括:确定随后的音节间辅音连缀的哪种分析是最好的(进入前面音节的音节-词尾连缀和随后音节的音节-词首连缀)。将语言检测模型应用于单词还可以包括:确定包括在单词(或单词中的每个音节)中的词尾辅音连缀的词尾辅音连缀分数,其中词尾辅音连缀分数对应于词尾辅音连缀在语料库中的频率。然后,音节检测模型的应用可以重复这个过程,直到单词或词干中的所有音节都被标识和评分,或者直到确定不可能有与模型一致的这种分析。
流程从操作504A继续至操作506A,在操作506A中,根据所有组合的音节分数计算文本字符串与第一语言之间的语言匹配分数。
流程从操作506A继续至操作508A,在操作508A中,确定语言匹配分数满足阈值。
流程从操作508A继续至操作510A,在操作510A中,基于语言匹配分数满足阈值的确定,执行后续动作。在示例中,后续动作可以包括将专用于第一语言的语言处理引擎应用于文本字符串。在其他示例中,执行后续动作可以包括将第一语言的语言包库下载到文本字符串最初被输入到的计算设备。第一语言的语言包库可以包括嵌入库(例如,BERT库、ELMo库)。
流程从操作510A移至结束操作,方法500A结束。
图5B是另一种基于词缀的方法500B,用于基于单个语言检测模型的应用确定文本字符串的语言,以及基于该确定执行后续动作。方法500B开始于开始操作,并且流程移至操作502B。
在操作502B,维护针对第一语言的语言检测模型。语言检测模型可以包括第一列表,该第一列表包括来自第一语言语料库的多个前缀的身份、以及该多个前缀中的每个前缀的权重。语言检测模型还可以包括第二列表,该第二列表包括来自语料库的多个后缀的身份、以及该多个后缀中的每个后缀的权重。权重可以对应于前缀和后缀在语料库中的频率。
流程可以从操作502B继续至预处理步骤(未显示),该步骤可以快速接受单词(例如,将该单词分类为对应于语言),因为该单词在常见单词列表中,或可以拒绝该单词(例如,不通过语言检测模型的应用向前移动),因为该单词不包含元音。
根据示例,语言检测模型可以另外包括列表,该列表包括来自语料库的多个词首辅音的身份、以及该多个词首辅音中的每个词首辅音的权重。语言检测模型可以另外包括列表,该列表包括来自语料库的多个词尾辅音的身份、以及该多个词尾辅音中的每个词尾辅音的权重。在一些示例中,语言检测模型可以另外包括来自语料库的多个元音序列的列表、以及该多个序列中的每个序列的权重。
流程从操作502B继续至操作504B,在504B中,将语言检测模型应用于文本字符串中的单词。将语言检测模型应用于单词可以包括确定包括在单词中的前缀的前缀分数,其中前缀分数对应于前缀在语料库中的频率。将语言检测模型应用于单词还可以包括确定包括在单词中的后缀的后缀分数,其中后缀分数对应于后缀在语料库中的频率。在示例中,语言检测模型可以应用于文本字符串中的每个单词。
在应用模型的运行时,标记列表中的前缀和后缀(例如,加权前缀和前缀序列404以及加权后缀和后缀序列406)可以按长度降序排序。如果单词以前缀开始或以后缀结束,则可以确定剩余子字符串的开头或结尾是以合法的辅音序列开始或结束(包括空序列,如果在语言中允许的话)。如果确定辅音序列不合法,或者如果单词的剩余部分不包含元音,则可以在列表中标识与该单词匹配的下一个最短前缀或后缀。例如,在单词“render”中,训练可能确定“re-”是前缀,但随后将其丢弃,因为“nd”不在可以合法地开始英语单词的辅音序列列表中。该步骤也可以用于避免错误地将“lion”中的“-ion”计为后缀。
流程从操作504B继续至操作506B,在操作506B中,至少根据前缀分数和后缀分数计算文本字符串与第一语言之间的语言匹配分数。
流程从操作506B继续至操作508B,在操作508B中,确定语言匹配分数满足阈值。
流程从操作508B继续至操作510B,在操作510B中,基于语言匹配分数满足阈值的确定,执行后续动作。在示例中,后续动作可以包括将专用于第一语言的语言处理引擎应用于文本字符串。在其他示例中,执行后续动作可以包括将第一语言的语言包库下载到文本字符串最初被输入到的计算设备。第一语言的语言包库可以包括嵌入库(例如,BERT库、ELMo库)。
流程从操作510B移至结束操作,方法500B结束。
图5C是基于单个语言检测模型的应用确定文本字符串的语言以及基于该确定执行后续动作的另一方法500C。方法500C将图5B中描述的基于词缀的方法与图5A中描述的基于音节的方法相结合。方法500C开始于开始操作,并且流程移至操作502C。
流程从操作502C继续至操作504C,在操作504C中,预处理步骤可以快速接受单词,因为该单词在常见单词列表中,或者可以拒绝该单词,因为该单词不包含元音。
流程从操作504C继续至操作506C,在操作506C中,将与图5B有关描述的基于词缀的语言标识过程应用于文本字符串。
流程从操作506C继续至操作508C,在操作508C中,将与图5A有关描述的基于音节的语言检测过程应用于文本字符串。
流程从操作508C继续至操作510C,在操作510C中,确定语言匹配分数满足阈值。
流程从操作510C继续至操作512C,在操作512C中,基于语言匹配分数满足阈值的确定执行后续动作。在示例中,后续动作可以包括将专用于第一语言的语言处理引擎应用于文本字符串。在其他示例中,执行后续动作可以包括将第一语言的语言包库下载到文本字符串最初被输入到的计算设备。第一语言的语言包库可以包括嵌入库(例如,BERT库、ELMo库)。
流程从操作512C移至结束操作,方法500C结束。
图5D是基于多个语言检测模型的应用确定文本字符串的语言以及基于该确定执行后续动作的方法500D。方法500D开始于开始操作,并且流程移至操作502D。
在操作502D,维护针对第一语言的第一语言检测模型。第一语言检测模型可以包括第一列表,该第一列表包括来自第一语言语料库的第一多个词首辅音的身份、以及该第一多个词首辅音中的每个词首辅音的权重。第一语言检测模型可以还包括第二列表,该第二列表包括来自第一语言语料库的第一多个元音序列的身份、以及该第一多个词尾辅音中的每个词尾辅音的权重。第一语言检测模型可以还包括第三列表,该第三列表包括来自第一语言语料库的第一多个词尾辅音的身份、以及该第一多个词尾辅音中的每个词尾辅音的权重。在一些示例中,第一语言检测模型可以还包括来自第一语言语料库的前缀和后缀的列表以及这些前缀和后缀中的每一个的权重。在一些示例中,第一语言检测模型可以还包括来自第一语言语料库的常见单词的列表以及这些常见单词中的每个常见单词的权重。权重可以对应于每个文本单元(标记)在第一语言语料库中的频率。
流程从操作502D继续至操作504D,在操作504D中,维护针对第二语言的第二语言检测模型。第二语言检测模型可以包括第四列表,该第四列表包括来自第二语言语料库的第二多个词首辅音的身份、以及该第二多个词首辅音中的每个词首辅音的权重。第二语言检测模型可以还包括第五列表,该第五列表包括来自第二语言语料库的第二多个元音序列的身份、以及该第二多个词尾辅音中的每个词尾辅音的权重。第二语言检测模型可以还包括第六列表,该第六列表包括来自第二语言语料库的第二多个词尾辅音的身份、以及该第二多个词尾辅音中的每个词尾辅音的权重。在一些示例中,第二语言检测模型可以还包括来自第二语言语料库的前缀和后缀的列表,以及这些前缀和后缀中的每一个的权重。在一些示例中,第一语言检测模型可以还包括来自第一语言语料库的常见单词的列表,以及这些常见单词中的每个常见单词的权重。权重可以对应于每个文本单元(标记)在第二语言语料库中的频率。
流程从操作504D继续至操作506D,在操作506D中,将第一语言检测模型应用于文本字符串中的单词。在示例中,第一语言检测模型可以应用于文本字符串中的每个单词。
流程从操作506D继续至操作508D,在操作508D中,基于将第一语言检测模型应用于文本字符串,计算文本字符串与第一语言之间的第一语言匹配分数。第一语言匹配分数可以至少部分地基于针对被包括在单词中的词首辅音连缀所确定的第一语言的词首辅音分数和针对被包括在单词中的词尾辅音连缀所确定的第一语言的词尾辅音分数来计算。
流程从操作508D继续至操作510D,在操作510D中,将第二语言检测模型应用于文本字符串。在示例中,第二语言检测模型可以应用于文本字符串中的每个单词。
流程从操作510D继续至操作512D,在操作512D中,基于将第二语言检测模型应用于文本字符串,计算第二字符串与第二语言之间的第二语言匹配分数。第二语言匹配分数可以至少部分地基于针对被包括在单词中的词首辅音连缀所确定的第二语言的词首辅音分数和针对被包括在单词中的词尾辅音连缀所确定的第二语言的词尾辅音分数来计算。
流程从操作512D继续至操作514D,在操作514D中,确定第一语言匹配分数大于第二语言匹配分数。
流程从操作514D继续至操作516D,在操作516D中,基于第一语言匹配分数大于第二语言匹配分数,执行与第一语言相关联的后续动作。在示例中,后续动作可以包括将专用于第一语言的语言处理引擎应用于文本字符串。在其他示例中,执行后续动作可以包括将第一语言的语言包库下载到文本字符串最初被输入到的计算设备。第一语言的语言包库可以包括嵌入库(例如,BERT库、ELMo库)。
流程从操作516D移至结束操作,方法500D结束。
图6和图7示出了移动计算设备600,例如,移动电话、智能电话、可穿戴计算机、平板计算机、电子阅读器、膝上型计算机、AR兼容计算设备或VR计算设备,可以利用该设备来实践本公开的实施例。参照图6,示出了用于实现这些方面的移动计算设备600的一个方面。在基本配置中,移动计算设备600是具有输入元件和输出元件的手持计算机。移动计算设备600通常包括显示器605和一个或多个输入按钮610,输入按钮610允许用户向移动计算设备600输入信息。移动计算设备600的显示器605也可以用作输入设备(例如,触摸屏显示器)。可选的侧面输入元件615(如果包括的话)允许进一步的用户输入。侧面输入元件615可以是旋转开关、按钮或任何其他类型的人工输入元件。在备选方面,移动计算设备600可以包含更多或更少的输入元件。例如,在一些实施例中,显示器605可以不是触摸屏。在又一备选实施例中,移动计算设备600是便携式电话系统,诸如蜂窝电话。移动计算设备600还可以包括可选的小键盘635。可选的小键盘635可以是物理小键盘或在触摸屏显示器上生成的“软”小键盘。在各种实施例中,输出元件包括用于显示图形用户界面(Graphical UserInterface,GUI)的显示器605、视觉指示器620(例如,发光二极管)和/或音频换能器625(例如,扬声器)。在一些方面,移动计算设备600结合了用于向用户提供触觉反馈的振动换能器。在又一方面,移动计算设备600包括输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,HDMI端口),用于向外部设备发送信号或从外部设备接收信号。
图7是示出移动计算设备的一个方面的架构的框图。也就是说,移动计算设备700可以结合系统(例如,架构)702来实现一些方面。在一个实施例中,系统702被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息客户端、游戏和媒体客户端/播放器)的“智能电话”。在一些方面,系统702被集成为计算设备,诸如集成的个人数字助理(Personal Digital Assistant,PDA)和无线电话。
一个或多个应用程序766可以被加载到存储器762中,并在操作系统764上运行或与操作系统764关联运行。应用程序的示例包括电话拨号器程序、电子邮件程序、个人信息管理(Personal Information Management,PIM)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息程序等等。系统702还包括存储器762内的非易失性存储区域768。非易失性存储区域768可以用于存储永久信息,如果系统702断电,该永久信息不应丢失。应用程序766可以使用信息并将其存储在非易失性存储区域768中,信息诸如为电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)也驻留在系统702上,并被编程为与驻留在主机计算机上的相应同步应用交互,以保持存储在非易失性存储区域768中的信息与存储在主机计算机上的相应信息同步。应当理解,其他应用可以被加载到存储器762中并在移动计算设备700上运行,包括用于提供和操作数字助理计算平台的指令。
系统702具有电源770,其可以被实现为一个或多个电池。电源770还可以包括外部电源,诸如AC适配器或对电池进行补充或充电的电动对接支架。
系统702还可以包括无线电接口层772,其执行发射和接收射频通信的功能。无线电接口层772经由通信运营商或服务提供商促进系统702与“外部世界”之间的无线连接。来往于无线电接口层772的传输是在操作系统764的控制下进行的。换句话说,由无线电接口层772接收的通信可以经由操作系统764传播到应用程序766,反之亦然。
视觉指示器620可以用于提供视觉通知,和/或音频接口774可以用于经由音频换能器625产生听觉通知。在所示的实施例中,视觉指示器620是发光二极管(Light EmittingDiode,LED),而音频换能器625是扬声器。这些设备可以直接耦合到电源770,使得当被激活时,即使处理器760和其他组件可能关闭以节省电池电力,这些设备也在由通知机制指示的持续时间内保持开启。LED可以被编程为无限期地保持开启,直到用户采取行动来指示设备的通电状态。音频接口774用于向用户提供听觉信号并从用户接收听觉信号。例如,除了被耦合到音频换能器625之外,音频接口774还可以被耦合到麦克风以接收听觉输入,诸如便于电话交谈。根据本公开的实施例,麦克风还可以用作音频传感器,以便于控制通知,如下面将描述的。系统702还可以包括视频接口776,其使得机载摄像机630能够记录静止图像、视频流等。
实现系统702的移动计算设备700可以具有附加特征或功能。例如,移动计算设备700还可以包括附加的数据存储设备(可移动和/或不可移动),诸如磁盘、光盘或磁带。这种附加的存储装置在图7中由非易失性存储区域768示出。
由移动计算设备700生成或捕获并经由系统702存储的数据/信息可以本地存储在移动计算设备700上,如上所述,或者数据可以存储在可以由设备经由无线电接口层772或经由移动计算设备700和与移动计算设备700相关联的独立计算设备之间的有线连接访问的任何数量的存储介质上,例如,分布式计算网络(如互联网)中的服务器计算机。应当理解,这种数据/信息可以经由移动计算设备700经由无线电接口层772或者经由分布式计算网络来访问。类似地,根据众所周知的数据/信息传送和存储手段,包括电子邮件和协作数据/信息共享系统,这种数据/信息可以容易地在计算设备之间传送以供存储和使用。
图8是可以用来实践本公开各方面的计算设备800的物理组件(例如,硬件)的框图。以下描述的计算设备组件可以具有用于训练或执行一个或多个语言检测模型的计算机可执行指令。在基本配置中,计算设备800可以包括至少一个处理单元802和系统存储器804。取决于计算设备的配置和类型,系统存储器804可以包括但不限于易失性存储器(例如,随机存取存储器)、非易失性存储器(例如,只读存储器)、闪存或这些存储器的任意组合。系统存储器804可以包括适于运行一个或多个语言学和/或自然语言处理程序的操作系统805。例如,操作系统805可以适用于控制计算设备800的操作。此外,本公开的实施例可以结合图形库、其他操作系统或任何其他应用程序来实践,并且不限于任何特定的应用或系统。该基本配置在图8中由虚线808内的那些组件示出。计算设备800可以具有附加的特征或功能。例如,计算设备800还可以包括附加的数据存储设备(可移动和/或不可移动),诸如磁盘、光盘或磁带。这种附加的存储装置在图8中由可移动存储设备809和不可移动存储设备810示出。
如上所述,多个程序模块和数据文件可以存储在系统存储器804中。当在处理单元802上执行时,程序模块806(例如,语言检测应用820)可以执行包括但不限于如本文所描述的方面的过程。语言检测应用820可以包括语言检测模块124/500C,其可以读取被描述为最终加权个体语言模型250或402的任何或所有语言模型。语言模型数据120可以包括一个或多个这样的模型,这些模型可以如图2和图3中所描述的那样被训练,并且可以如图5A、图5B、图5C和/或图5D中所描述的那样被部署。
此外,本公开的实施例可以在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路中实践,或在包含电子元件或微处理器的单个芯片上实践。例如,本公开的实施例可以经由片上系统(System-on-a-Chip,SOC)来实践,其中图8中所示的每个或许多组件可以集成到单个集成电路上。这种SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,所有这些都作为单个集成电路集成(或“烧录”)到芯片衬底上。当经由SOC操作时,本文描述的关于客户端切换协议的能力的功能可以经由在单个集成电路(芯片)上与计算设备800的其他组件集成的专用逻辑来操作。本公开的实施例也可以使用能够执行逻辑运算(诸如AND、OR和NOT)的其他技术来实践,包括但不限于机械、光学、流体和量子技术。此外,本公开的实施例可以在通用计算机或任何其他电路或系统中实践。
计算设备800还可以具有一个或多个输入设备812,诸如键盘、鼠标、笔、声音或语音输入设备、触摸或滑动输入设备等。(多个)输出设备814诸如显示器、扬声器、打印机等,也可以包括在诸如显示器、扬声器、打印机等之内。上述设备是示例,也可以使用其他设备。计算设备800可以包括允许与其他计算设备850通信的一个或多个通信连接816。合适的通信连接816的示例包括但不限于射频(Radio Frequency,RF)发射器、接收器和/或收发器电路;通用串行总线(Universal Serial Bus,USB)、并行和/或串行端口。
本文所用术语“计算机可读介质”可以包括计算机存储介质。计算机存储介质可以包括以用于存储信息(诸如计算机可读指令、数据结构或程序模块)的任何方法或技术所实现的易失性和非易失性、可移动和不可移动介质。系统存储器804、可移动存储设备809和不可移动存储设备810都是计算机存储介质示例(例如,存储器存储)。计算机存储介质可以包括RAM、ROM、电可擦除只读存储器(Electrically Erasable Read-Only Memory,EEPROM)、闪存或其他存储技术、CD-ROM、数字多功能盘(Digital Versatile Disk,DVD)或其他光存储、盒式磁带、磁带、磁盘存储或其他磁存储设备,或可以用于存储信息并可以由计算设备800访问的任何其他制造品。任何这样的计算机存储介质都可以是计算设备800的一部分。计算机存储介质不包括载波或其他传播或调制的数据信号。计算机可读存储设备不包括载波或其他传播或调制的数据信号。
通信介质可以由计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据体现,诸如载波或其他传输机制,并包括任何信息递送介质。术语“调制数据信号”可以描述具有以在信号中编码信息的方式设置或改变的一个或多个特性的信号。作为示例而非限制,通信介质可以包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、射频(RF)、红外和其他无线介质。
图9示出了用于处理计算系统从远程源接收的数据的系统架构的一个方面,远程源例如为如上所述的个人/通用计算机904、平板计算设备906或移动计算设备908。在服务器设备902处显示的内容可以存储在不同的通信信道或其他存储装置类型中。例如,可以使用目录服务922、网络门户924、邮箱服务926、即时消息存储库928或社交联网网站930来存储各种文档。程序模块806可以由与服务器设备902通信的客户端使用,和/或程序模块806可以由服务器设备902使用。服务器设备902可以通过网络915向和从诸如个人/通用计算机904、平板计算设备906和/或移动计算设备908(例如,智能电话)之类的客户端计算设备提供数据。举例来说,以上参考图6-图8描述的计算机系统可以在个人/通用计算机904、平板计算设备906和/或移动计算设备908(例如,智能电话)中体现。除了接收可以用于在图形始发系统处预处理或在接收计算系统处后处理的图形数据之外,计算设备的这些实施例中的任何一个都可以从存储库916获得内容。
例如,上文参照根据本公开各方面的方法、系统和计算机程序产品的框图和/或操作图,描述了本公开各方面。方框中标注的功能/动作可以不按照任何流程图中所示的顺序发生。例如,连续示出的两个方框实际上可以基本上同时执行,或者这些方框有时可以以相反的顺序执行,这取决于所涉及的功能/动作。
本申请中提供的一个或多个方面的描述和图示无意以任何方式限制或限定本公开的范围。本申请中提供的方面、示例和细节被认为足以传达所有权并使他人能够做出和使用所要求保护的公开的最佳模式。所要求保护的公开不应被解释为限于本申请中提供的任何方面、示例或细节。不管是组合还是单独地示出和描述,(结构的和方法的)各种特征都旨在被选择性地包括或省略,以产生具有一组特定特征的实施例。已经提供了本公开的描述和图示,本领域技术人员可以设想落入本申请中体现的总体发明构思的更宽方面的精神内的变化、修改和备选方面,而不脱离所要求保护的公开的更宽范围。
上述各种实施例仅用于说明,不应解释为对所附权利要求的限制。本领域的技术人员将容易认识到,在不遵循本文所示和所描述的示例性实施例和应用的情况下,并且在不脱离所附权利要求的真实精神和范围的情况下,可以做出各种修改和变化。
Claims (15)
1.一种用于确定文本字符串的语言的计算机实现的方法,所述计算机实现的方法包括:
维护针对第一语言的音节的语言检测模型,所述语言检测模型包括:
第一列表,包括来自所述第一语言的语料库的多个词首辅音的身份、以及针对所述多个词首辅音中的每个词首辅音的权重,以及
第二列表,包括来自所述第一语言的所述语料库的多个元音序列的身份、以及针对所述多个元音序列中的每个元音序列的权重,以及
第三列表,包括来自所述语料库的多个词尾辅音的身份、以及针对所述多个词尾辅音中的每个词尾辅音的权重;
将所述语言检测模型应用于所述文本字符串中的单词,其中所述应用包括:
迭代地标识所述单词内所有连续的音节;
确定被包括在所述单词的所标识的音节中的词首辅音连缀的词首辅音连缀分数,其中所述词首辅音连缀分数对应于所述词首辅音连缀在所述语料库中的频率,
确定被包括在所述单词的所标识的所述音节中的元音序列的元音序列分数,其中所述元音序列分数对应于所述元音序列在所述语料库中的频率,以及
确定被包括在所述单词的所标识的所述音节中的词尾辅音连缀的词尾辅音连缀分数,其中所述词尾辅音连缀分数对应于所述词尾辅音连缀在所述语料库中的频率;
至少根据所述词首辅音连缀分数和所述词尾辅音连缀分数,计算所述文本字符串与所述第一语言之间的语言匹配分数;
确定所述语言匹配分数满足阈值;以及
基于所述语言匹配分数满足所述阈值的所述确定,执行后续动作。
2.根据权利要求1所述的计算机实现的方法,其中所述语言检测模型还包括:
第四列表,包括来自所述语料库的多个前缀的身份、以及针对所述多个前缀中的每个前缀的权重。
3.根据权利要求2所述的计算机实现的方法,还包括:
确定被包括在所述单词中的前缀的前缀分数,其中所述前缀分数对应于所述前缀在所述语料库中的频率;以及
其中所述文本字符串与所述第一语言之间的所述语言匹配分数根据所述前缀分数被进一步计算。
4.根据权利要求1所述的计算机实现的方法,其中所述语言检测模型还包括:
第三列表,包括来自所述语料库的多个后缀的身份、以及针对所述多个后缀中的每个后缀的权重。
5.根据权利要求4所述的计算机实现的方法,还包括:
确定被包括在所述单词中的后缀的后缀分数,其中所述后缀分数对应于所述后缀在所述语料库中的频率;以及
其中所述文本字符串与所述第一语言之间的所述语言匹配分数根据所述后缀分数被进一步计算。
6.根据权利要求2所述的计算机实现的方法,还包括:
确定被包括在所述单词中的前缀序列的前缀分数,其中所述前缀分数对应于所述前缀序列在所述语料库中的频率;以及
其中所述文本字符串与所述第一语言之间的所述语言匹配分数根据所述前缀分数被进一步计算。
7.根据权利要求4所述的计算机实现的方法,还包括:
确定被包括在所述单词中的后缀序列的后缀分数,其中所述后缀分数对应于所述后缀序列在所述语料库中的频率;以及
其中所述文本字符串与所述第一语言之间的所述语言匹配分数根据所述后缀分数被进一步计算。
8.根据权利要求1所述的计算机实现的方法,其中执行所述后续动作包括:将特定于所述第一语言的语言处理引擎应用于所述文本字符串。
9.根据权利要求1所述的计算机实现的方法,其中执行所述后续动作包括:将针对所述第一语言的语言包库下载到所述文本字符串最初被输入到的计算设备。
10.根据权利要求1所述的计算机实现的方法,其中针对所述第一语言的所述语言包库包括语言嵌入库。
11.根据权利要求1所述的计算机实现的方法,还包括:
确定所述单词的后缀与所述单词的前缀之间的交叉标记分数;并且其中
所述文本字符串与所述第一语言之间的所述语言匹配分数根据所述交叉标记分数被进一步计算。
12.一种用于确定文本字符串的语言的系统,包括:
存储器,用于存储可执行程序代码;以及
处理器,功能性地耦合到所述存储器,所述处理器响应于被包含在所述程序代码中的计算机可执行指令,并且能够操作以:
维护针对第一语言的第一语言检测模型,所述第一语言检测模型包括:
第一列表,包括来自所述第一语言的语料库的第一多个音节-词首辅音的身份、以及针对所述第一多个音节-词首辅音中的每个音节-词首辅音的权重,
第二列表,包括来自所述第一语言的语料库的第一多个元音序列的身份、以及针对所述第一多个元音序列中的每个元音序列的权重,以及
第三列表,包括来自所述第一语言的所述语料库的第一多个音节-词尾辅音的身份、以及针对所述第一多个音节-词尾辅音中的每个音节-词尾辅音的权重;
维护针对第二语言的第二语言检测模型,所述第二语言检测模型包括:
第四列表,包括来自所述第二语言的语料库的第二多个音节-词首辅音的身份、以及针对所述第二多个音节-词首辅音中每个音节-词首辅音的权重,以及
第五列表,包括来自所述第二语言的语料库的第二多个元音序列的身份、以及针对所述第二多个元音序列中的每个元音序列的权重,以及
第六列表,包括来自所述第二语言的所述语料库的第二多个音节-词尾辅音的身份、以及针对所述第二多个音节-词尾辅音中每个音节-词尾辅音的权重;
将所述第一语言检测模型迭代地应用于所述文本字符串中的单词;
基于将所述第一语言检测模型应用于所述文本字符串,计算所述文本字符串与所述第一语言之间的第一语言匹配分数;
将所述第二语言检测模型迭代地应用于所述文本字符串中的所述单词;
基于将所述第二语言检测模型应用于所述文本字符串,计算所述文本字符串与所述第二语言之间的第二语言匹配分数;
确定所述第一语言匹配分数大于所述第二语言匹配分数并且大于阈值内;以及
基于所述第一语言匹配分数大于所述第二语言匹配分数并且大于所述阈值内,执行与所述第一语言相关联的后续动作。
13.根据权利要求12所述的系统,其中所述第一语言检测模型还包括:
第七列表,包括来自所述第一语言的所述语料库的多个前缀的身份、以及针对所述多个前缀中的每个前缀的权重;以及
第八列表,包括来自所述第一语言的所述语料库的多个后缀的身份、以及针对所述多个后缀中的每个后缀的权重。
14.根据权利要求13所述的系统,其中所述第二语言检测模型还包括:
第九列表,包括来自所述第二语言的所述语料库的第二多个前缀的身份、以及针对所述第二多个前缀中的每个前缀的权重;以及
第十列表,包括来自所述第二语言的所述语料库的第二多个后缀的身份、以及针对所述第二多个后缀中的每个后缀的权重。
15.一种包括可执行指令的计算机可读存储设备,所述可执行指令在由处理器执行时帮助确定文本字符串的语言,所述计算机可读存储设备包括由所述处理器能够执行的指令,用于:
维护针对第一语言的语言检测模型,所述语言检测模型包括:
第一列表,包括来自所述第一语言的语料库的多个前缀的身份、以及针对所述多个前缀中的每个前缀的权重,以及
第二列表,包括来自所述语料库的多个后缀的身份、以及针对所述多个后缀中的每个后缀的权重;
将所述语言检测模型应用于所述文本字符串中的单词,其中所述应用包括:
确定被包括在所述单词中的前缀的前缀分数,其中所述前缀分数对应于所述前缀在所述语料库中的频率,以及
确定被包括在所述单词中的后缀的后缀分数,其中所述后缀分数对应于所述后缀在所述语料库中的频率;
至少根据所述前缀分数和/或所述后缀分数,计算所述文本字符串与所述第一语言之间的语言匹配分数;
确定所述语言匹配分数满足阈值;以及
基于所述语言匹配分数满足所述阈值的所述确定,执行后续动作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/024,428 US11361158B2 (en) | 2020-09-17 | 2020-09-17 | Language autodetection from non-character sub-token signals |
US17/024,428 | 2020-09-17 | ||
PCT/US2021/035563 WO2022060439A1 (en) | 2020-09-17 | 2021-06-03 | Language autodetection from non-character sub-token signals |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116194925A true CN116194925A (zh) | 2023-05-30 |
Family
ID=76695832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180063398.1A Pending CN116194925A (zh) | 2020-09-17 | 2021-06-03 | 从非字符子标记信号中自动检测语言 |
Country Status (3)
Country | Link |
---|---|
US (3) | US11361158B2 (zh) |
CN (1) | CN116194925A (zh) |
WO (1) | WO2022060439A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115099832B (zh) * | 2022-06-29 | 2024-07-05 | 广州华多网络科技有限公司 | 异常用户检测方法及其装置、设备、介质、产品 |
CN117556817B (zh) * | 2024-01-10 | 2024-05-24 | 国开启科量子技术(安徽)有限公司 | 基于量子电路的大模型生成文本检测方法、装置、设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0507036D0 (en) | 2005-04-07 | 2005-05-11 | Ibm | Method and system for language identification |
US8073680B2 (en) | 2008-06-26 | 2011-12-06 | Microsoft Corporation | Language detection service |
US10366424B2 (en) * | 2014-06-04 | 2019-07-30 | Nuance Communications, Inc. | Medical coding system with integrated codebook interface |
US11438683B2 (en) * | 2020-07-21 | 2022-09-06 | Apple Inc. | User identification using headphones |
-
2020
- 2020-09-17 US US17/024,428 patent/US11361158B2/en active Active
-
2021
- 2021-06-03 WO PCT/US2021/035563 patent/WO2022060439A1/en active Application Filing
- 2021-06-03 CN CN202180063398.1A patent/CN116194925A/zh active Pending
-
2022
- 2022-06-13 US US17/839,330 patent/US11630951B2/en active Active
-
2023
- 2023-04-17 US US18/301,341 patent/US11947909B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11361158B2 (en) | 2022-06-14 |
US20230252235A1 (en) | 2023-08-10 |
US20220309242A1 (en) | 2022-09-29 |
US11947909B2 (en) | 2024-04-02 |
US20220083734A1 (en) | 2022-03-17 |
US11630951B2 (en) | 2023-04-18 |
WO2022060439A1 (en) | 2022-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10192545B2 (en) | Language modeling based on spoken and unspeakable corpuses | |
CN108287858B (zh) | 自然语言的语义提取方法及装置 | |
US9947317B2 (en) | Pronunciation learning through correction logs | |
US10997226B2 (en) | Crafting a response based on sentiment identification | |
US10290299B2 (en) | Speech recognition using a foreign word grammar | |
CN101815996A (zh) | 检测名称实体和新词 | |
CN110276023B (zh) | Poi变迁事件发现方法、装置、计算设备和介质 | |
US11947909B2 (en) | Training a language detection model for language autodetection from non-character sub-token signals | |
CN112270167B (zh) | 角色标注方法、装置、电子设备和存储介质 | |
US20100094614A1 (en) | Machine Learning for Transliteration | |
KR20160008480A (ko) | 명칭을 강인하게 태깅하는 방법 및 시스템 | |
TW200900967A (en) | Multi-mode input method editor | |
KR102364401B1 (ko) | 문맥형 음성-구동 딥 북마킹 | |
US20230054726A1 (en) | Query-focused extractive text summarization of textual data | |
CN110020429B (zh) | 语义识别方法及设备 | |
CN109635125B (zh) | 一种词汇图谱搭建方法及电子设备 | |
Lee et al. | Impact of out-of-vocabulary words on the twitter experience of blind users | |
CN112149403A (zh) | 一种确定涉密文本的方法和装置 | |
CN115577712B (zh) | 一种文本纠错方法及装置 | |
CN116522905A (zh) | 文本纠错方法、装置、设备、可读存储介质及程序产品 | |
CN114528851B (zh) | 回复语句确定方法、装置、电子设备和存储介质 | |
CN112087473A (zh) | 文档下载方法、装置、计算机可读存储介质和计算机设备 | |
CN108733757B (zh) | 文本搜索方法及系统 | |
US20160110360A1 (en) | Providing numerical answers to queries | |
Celikkaya et al. | A mobile assistant for Turkish |
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 |