CN110023931A - 用于语言检测的系统和方法 - Google Patents
用于语言检测的系统和方法 Download PDFInfo
- Publication number
- CN110023931A CN110023931A CN201780074219.8A CN201780074219A CN110023931A CN 110023931 A CN110023931 A CN 110023931A CN 201780074219 A CN201780074219 A CN 201780074219A CN 110023931 A CN110023931 A CN 110023931A
- Authority
- CN
- China
- Prior art keywords
- language
- components
- text message
- message
- cleaning
- 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
- 238000000034 method Methods 0.000 title claims abstract description 208
- 238000001514 detection method Methods 0.000 title claims abstract description 206
- 238000012360 testing method Methods 0.000 claims abstract description 55
- 238000004140 cleaning Methods 0.000 claims abstract description 50
- 238000003860 storage Methods 0.000 abstract description 13
- 238000004590 computer program Methods 0.000 abstract description 11
- 238000012706 support-vector machine Methods 0.000 description 22
- 238000012549 training Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000011895 specific detection Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000481 breast Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000002620 method output Methods 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
Abstract
本公开的实施方式涉及用于识别消息中的语言的方法、系统和计算机程序存储设备。从文本消息中去除非语言字符以生成清理的文本消息。通过执行下述中的至少一个来检测清理的文本消息中的字母和/或文字系统:(i)基于字母的语言检测测试以确定第一组分数和(ii)基于文字系统的语言检测测试以确定第二组分数。第一组分数中的每个分数表示清理的文本消息包括多种不同的语言之一的字母的可能性。第二组分数中的每个分数表示清理的文本消息包括多种不同的语言之一的文字系统的可能性。基于第一组分数、第二组分数以及第一和第二组分数的组合中的至少一个来识别清理的文本消息中的语言。
Description
相关申请的交叉引用
本申请要求2016年10月3日提交的美国专利申请No.15/283,646的优先权和权益,并且通过引用将其全部内容并入本文。
技术领域
本公开涉及语言检测,尤其涉及用于检测短文本消息中的语言的系统和方法。
背景技术
通常,语言检测或识别是基于文本的内容自动检测文本主体中存在的语言的过程。语言检测在自动语言翻译的环境中是有用的,其中在将消息准确地翻译成不同语言之前,通常必须知道文本消息的语言。
虽然传统语言检测通常在许多单词和句子的集合上(即,在文档级别上)执行,但是特别具有挑战性的领域是聊天文本领域,其中消息通常仅包括几个单词(例如,四个或更少),其部分或全部可能是非正式的和/或拼写错误的。在聊天文本领域,由于缺乏信息和此类消息中存在的非正式性,现有的语言检测方法已被证明是不准确和/或缓慢的。
发明内容
本文描述的系统和方法的实施例用于基于例如消息的内容、关于用于生成消息的键盘的信息和/或关于生成消息的用户的语言偏好的信息来检测文本消息中的语言。与先前的语言检测技术相比,本文描述的系统和方法通常更快且更准确,特别是对于短文本消息(例如,四个单词或更少)。
在各种示例中,系统和方法使用多个语言检测测试和分类器来确定与文本消息中的可能语言相关联的概率。每种语言检测测试可以输出与可能的语言相关联的概率集合或向量。分类器可以组合来自语言检测测试的输出,以确定消息的最可能语言。为消息选择的特定语言检测测试和分类器可以取决于消息的预测准确性、置信度分数和/或语言学域。
本文描述的系统和方法的某些示例执行对文本消息中的语言的初始分类,使得可以执行更专注的语言检测技术以最终确定语言。例如,系统和方法可以对文本消息执行初始语言检测测试,以识别文本消息中的语言的组或类别(例如,西里尔语言或拉丁语言)。一旦识别出语言类别,就可以使用为该语言类别设计的语言检测技术来识别消息中的特定语言。在优选示例中,在语言检测之前从文本消息中去除无关元素(例如,表情符号或数字或数字字符),从而导致更快和更准确的语言检测。本文描述的系统和方法通常比现有语言检测方法更准确和高效。系统和方法可以被配置为使用本文描述的任何一种或多种语言检测方法。
在一个方面,本公开的主题涉及一种识别消息中的语言的计算机实现的方法。该方法包括:获得文本消息;从文本消息中去除非语言字符以生成清理的文本消息;检测清理的文本消息中存在的字母和文字系统中的至少一个,其中检测包括以下中的至少一个:(i)执行基于字母的语言检测测试以确定第一组分数,其中第一组分数中的每个分数表示清理的文本消息包括多种不同的语言之一的字母的可能性;和(ii)执行基于文字系统的语言检测测试以确定第二组分数,其中第二组分数中的每个分数表示清理的文本消息包括所述多种不同的语言之一的文字系统的可能性。该方法还包括基于第一组分数、第二组分数以及第一和第二组分数的组合中的至少一个来识别清理的文本消息中的语言。
在某些实施方式中,非语言字符包括表情符号和/或数字字符。该组合可以包括第一和第二组分数之间的内插。在一些示例中,识别清理的文本消息中的语言包括对清理的文本消息执行语言检测测试以生成第三组分数,其中第三组分数中的每个分数表示清理的文本消息包括多种不同的语言之一的可能性。可以基于第一组分数、第二组分数以及第一和第二组分数的组合中的至少一个,从多个语言检测测试中选择语言检测测试。
在某些情况下,语言检测测试包括语言检测方法和一个或多个分类器。语言检测方法可以包括,例如,基于词典的语言检测测试、n元语法(n-gram)语言检测测试、基于字母的语言检测测试、基于文字系统的语言检测测试、用户语言简档语言检测测试或其任何组合。一个或多个分类器可以包括例如监督学习模型、部分监督学习模型、无监督学习模型、内插或其任何组合。在各种实施方式中,该方法包括使用一个或多个分类器处理第三组分数以识别清理的文本消息中的语言。该方法可以包括从一个或多个分类器输出清理的文本消息是所识别语言的指示。该指示可包括置信度分数。
在另一方面,本公开的主题涉及一种用于识别消息中的语言的计算机实现的系统。该系统包括清理器模块、分组器模块和语言检测器模块。清理器模块获得文本消息并从文本消息中去除非语言字符以生成清理的文本消息。分组器模块检测清理的文本消息中存在的字母和文字系统中的至少一个,并且可操作成执行包括以下中的至少一个的操作:执行基于字母的语言检测测试以确定第一组分数,其中第一组分数中的每个分数表示清理的文本消息包括多种不同的语言之一的字母的可能性;并执行基于文字系统的语言检测测试以确定第二组分数,其中第二组分数中的每个分数表示清理的文本消息包括所述多种不同的语言之一的文字系统的可能性。语言检测器模块基于第一组分数、第二组分数以及第一和第二组分数的组合中的至少一个来识别清理的文本消息中的语言。
在各种示例中,非语言字符包括表情符号和/或数字字符。该组合可以包括第一和第二组分数之间的内插。分组器模块可操作成执行包括下述的操作:基于第一组分数、第二组分数以及第一组和第二组分数的组合中的至少一个从多个语言检测器模块中选择语言检测器模块。语言检测器模块可以包括语言检测方法模块。语言检测方法模块可操作成执行包括下述的操作:对清理的文本消息执行语言检测测试以生成第三组分数,其中第三组分数中的每个分数表示清理的文本消息包括多种不同的语言之一的可能性。语言检测测试可以包括,例如,基于词典的语言检测测试、n元语法语言检测测试、基于字母的语言检测测试、基于文字系统的语言检测测试、用户语言简档语言检测测试或其任何组合。
在一些实施方式中,语言检测器模块包括分类器模块,其可操作成执行包括下述的操作:使用一个或多个分类器处理第三组分数以识别清理的文本消息中的语言。一个或多个分类器可以包括例如监督学习模型、部分监督学习模型、无监督学习模型、内插或其任何组合。分类器模块可操作成执行包括下述的操作:输出清理的文本消息是所识别语言的指示。该指示可包括置信度分数。
在另一方面,本公开的主题涉及一种物品。该物品包括:非暂时性计算机可读介质,其上存储有指令,指令在由一个或多个计算机执行时,使计算机执行包括以下操作的操作:获得文本消息;从文本消息中去除非语言字符以生成清理的文本消息;检测清理的文本消息中存在的字母和文字系统中的至少一个,其中检测包括以下中的至少一个:(i)执行基于字母的语言检测测试以确定第一组分数,其中所述第一组分数中的每个分数表示清理的文本消息包括多种不同的语言之一的字母的可能性;和(ii)执行基于文字系统的语言检测测试以确定第二组分数,其中第二组分数中的每个分数表示清理的文本消息包括所述多种不同的语言之一的文字系统的可能性。该操作还包括基于第一组分数、第二组分数以及第一和第二组分数的组合中的至少一个来识别清理的文本消息中的语言。
关于该主题的给定方面描述的示例的元素可以用于本主题的另一方面的各种示例中。例如,可以预期,从属于一个独立权利要求的从属权利要求的特征可以用在任何其他独立权利要求的装置、系统和/或方法中。
附图说明
图1A是用于执行语言检测的示例系统的图。
图1B是检测文本消息中的语言的示例方法的流程图。
图2是检测文本消息中的语言的示例n元语法方法的流程图。
图3是检测文本消息中的语言的示例基于词典的方法的流程图。
图4是检测文本消息中的语言的示例基于字母的方法的流程图。
图5是检测文本消息中的语言的示例基于文字系统的方法的流程图。
图6是检测文本消息中的语言的示例用户语言简档方法的流程图。
图7是示例语言检测模块的示意图。
图8是示例分类器模块的示意图。
图9是使用图7的语言检测模块和图8的分类器模块检测文本消息中的语言的示例方法的流程图。
图10是检测文本消息中的语言的示例方法的流程图。
图11是检测文本消息中的语言的示例方法的流程图。
图12是检测文本消息中的语言的示例方法的流程图。
图13是用于检测文本消息中的语言的示例系统的示意图。
图14是检测文本消息中的语言的示例方法的流程图。
图15是检测文本消息中的语言的示例方法的流程图。
具体实施方式
通常,本文描述的语言检测系统和方法可用于当消息的语言信息(例如,来自客户端设备的键盘信息)不存在、格式错误或不可靠时识别文本消息中的语言。该系统和方法提高了用于将文本消息从一种语言翻译成另一种语言的语言翻译方法的准确性。语言翻译通常要求准确识别源语言,否则产生的翻译可能不准确。
图1A示出了用于检测消息(例如文本消息或音频消息)中的语言的示例系统10。服务器系统12提供消息分析和语言检测功能。例如,服务器系统12包括可以部署在一个或多个地理位置中的一个或多个数据中心14的软件组件和数据库。服务器系统12软件组件可以包括检测模块16、分类器模块18和管理器模块20。软件组件可以包括可以在相同或不同的单独数据处理装置上执行的子组件。服务器系统12数据库可以包括训练数据22、词典24、字母26、文字系统(script)28和用户简档信息30。数据库可以驻存在一个或多个物理存储系统中。软件组件和数据将在下面进一步描述。
诸如基于web的应用的应用可以作为终端用户应用而提供,以允许用户向服务器系统12提供消息。终端用户应用可以由客户端设备的用户通过网络32访问,客户端设备例如个人计算机34、智能电话36,平板计算机38和膝上型计算机40。其他客户端设备也是可能的。用户消息可以伴随有关用于创建消息的设备的信息,例如关于用于创建消息的键盘、客户端设备和/或操作系统的信息。
尽管图1A将分类器模块18和管理器模块20描绘为连接到数据库(即,训练数据22、词典24、字母26、文字系统28和用户简档信息30),但是分类器模块18和/或管理器模块20不一定连接到这些数据库中的一些或全部。通常,分类器模块18可以从检测模块16接收输入,并且管理器模块20可以从分类器模块18接收输入。分类器模块18和/或管理器模块20不需要接收其他输入。
图1B示出了使用系统10来检测消息中的语言的示例方法100。方法100以接收或获得(步骤102)用户生成的文本消息开始。使用一种或多种语言检测方法(例如,通过检测模块16)分析文本消息(步骤104),每种语言检测方法提供消息中存在的一种或多种语言的指示。然后使用一个或多个分类器(例如,通过分类器模块18)组合来自语言检测方法的输出(步骤106),该分类器提供消息中存在的语言的进一步指示。一个或多个分类器可以包括例如监督学习模型、部分监督学习模型、无监督学习模型和/或内插。其他分类器也是可能的。然后,使用来自一个或多个分类器的输出来确定(步骤108)消息中的语言(例如,使用管理器模块20)。
在一些实施方式中,管理器模块20可以根据计算的置信度分数和/或语言学域来选择来自一个或多个分类器的语言指示。例如,分类器可以计算指示与语言预测相关联的置信度的置信度分数。附加地或替代地,可以根据与用户或消息相关联的语言学域来选择某些分类器输出。例如,如果消息源于计算机游戏环境,则可以选择特定分类器输出以提供最准确的语言预测。同样地,如果消息源于体育的上下文(例如,关于体育赛事),则可以选择不同的分类器输出作为更适合于体育语言学域。其他可能的语言学域包括例如新闻、议会议事、政治、健康、旅行、网页、报纸文章、微博消息等。通常,当与其他语言学域相比时,某些语言检测方法或语言检测方法的组合(例如,来自分类器)对于某些语言学域可能更准确。在一些实施方式中,可以基于在消息中存在来自域词汇表的单词来确定域。例如,用于计算机游戏的域词汇表可以包括游戏者使用的常见俚语词。
检测模块16使用的语言检测方法可以包括,例如,n元语法(n-gram)方法(例如,字节n元语法方法)、基于词典的方法、基于字母的方法,基于文字系统的方法和用户语言简档方法。其他语言检测方法也是可能的。这些语言检测方法中的每一种都可用于检测消息中存在的语言。来自每种方法的输出可以是例如与消息中的每种可能语言相关联的概率的集合或向量。在一些情况下,可以使用并行计算同时执行两种或更多种语言检测方法,这可以显著减少计算时间。
在一个实施方式中,字节n元语法方法使用字节n元语法而不是单词或字符n元语法来检测语言。优选地,使用具有多项式事件模型的朴素贝叶斯分类器,在字节n元语法(例如,1≤n≤4)的混合上训练字节n元语法方法。该模型优选推广到来自不同语言学域的数据,使得模型的默认配置在多样的一组域中是准确的,包括报纸文章、在线游戏、网页和微博消息。有关语言识别任务的信息可以从各种域中整个。
对于传统文本分类设置中的语言识别,获得高准确性的任务可以相对容易,对于该传统文本分类设置,域内训练数据是可用的。当尝试使用一个语言学域的经学习模型参数来对来自单独的语言学域的数据进行分类或归类时,该任务可能更加困难。通过关注与语言识别任务相关的重要特征,可以解决这个问题。这可以基于例如称为信息增益的概念,其最初作为分裂标准被引入决策树,并且随后被发现对于在文本分类中选择特征是有用的。在某些实施方式中,可以计算检测分数,其表示相对于域和语言的信息增益的差异。具有高检测分数的特征可以提供关于语言的信息而不提供关于域的信息。为简单起见,可以在计算信息增益之前通过基于词频率的特征选择来删减候选特征集。
参考图2,示例字节n元语法方法200开始于使用训练数据22训练该方法。例如,可以使用具有多项式事件模型的朴素贝叶斯分类器在字节n元语法的混合上训练该方法。优选地,针对大量和多种语言收集训练数据22(步骤202),并且调整训练数据22以使得每种语言可用数据量均匀。将一小部分训练数据22留出(步骤204)作为测试集。一旦选择了训练数据22,就利用适当的平滑和退避技术在训练数据22上训练字节n元语法模型(步骤206)。模型的输入特征是来自每个输入句子的字节流,并且由于源语言标签对于这些句子是已知的,因此模型调整其参数以学习给定语言的典型字节序列。然后使用在开始时隔离的测试集来基于已经被训练的模型来预测(步骤208)语言标签。预测的准确性给出该字节n元语法语言识别系统的性能。在某些情况下,难以通过跨所述域的多种语言收集数据,为每个语言学域训练这样的字节n元语法系统。困难源于缺乏每个域的足够数据。因此,这些字节n元语法系统通常被训练以满足通用域而不是任何特定域。可以将训练的模型与中间机器参数一起编译(步骤210)到程序中。该程序可以用作通用语言识别系统。
通常,基于词典的语言检测方法通过在词典中或与语言相关联的其他单词列表中查找单词来计数属于每种语言的标记或单词的数量。消息中具有最多单词的语言被选为最佳语言。在多种最佳语言的情况下,可以选择最佳语言中更频繁或最常用的。语言词典可以存储在词典数据库24中。
图3是示例基于词典的语言检测方法300的流程图。提供文本消息(步骤302),并且使用例如检测模块16识别文本消息的一组可能语言(步骤304)。然后从该组中选择第一可能的语言(步骤306)。计数文本消息中存在于可能语言的词典中的单词(步骤308)。如果尚未考虑来自该组的其他可能语言(步骤310),则选择新的可能语言(步骤312),并重复步骤308。一旦考虑了来自该组的所有可能语言,就可以将文本消息中具有最多单词的语言识别(步骤314)为消息中的语言。替代地或另外地,该方法可以用于针对该组中的每种语言计算语言在消息中的可能性。例如,基于词典的方法的输出可以是该组中每种语言的概率向量。
为了确保基于词典的语言检测方法的准确性,特别是对于短句,优选使用除了正式单词之外还包括非正式单词或聊天单词(例如,缩写、首字母缩略词、俚语和脏话)的词典。非正式单词通常用于短文本通信和聊天室中。随着新的非正式词语的形成和使用,词典优选地被增加以持续地包括非正式单词。
基于字母的方法通常基于每种语言的字母的字符计数,并且依赖于许多语言具有独特的字母或不同的字符集的观察。例如,俄语、英语、韩语和日语都使用不同的字母。尽管基于字母的方法可能无法精确地区分某些语言(例如,使用类似字母的语言,例如拉丁语言),但基于字母的方法通常可以快速地检测某些语言。在一些情况下,优选地将基于字母的方法与一种或多种其他语言检测方法(例如,使用分类器)结合使用,如本文所讨论。语言字母可以存储在字母数据库26中。
图4是示例基于字母的语言检测方法400的流程图。提供文本消息(步骤402),并且使用例如检测模块16识别文本消息的一组可能的语言(步骤404)。然后从该组中选择第一可能的语言(步骤406)。计数文本消息中存在于可能的语言的字母中的字符(步骤408)。如果尚未考虑来自该组的其他可能的语言(步骤410),则选择新的可能的语言(步骤412),并重复步骤408。一旦考虑了来自该组的所有可能的语言,就可以将文本消息中具有最多字符的语言(步骤414)识别为消息中的语言。替代地或另外地,基于字母的方法可以用于针对组中的每种语言计算语言在消息中的可能性。例如,基于字母的方法的输出可以是组中每种语言的概率向量。
通常,基于文字系统的语言检测方法确定消息中存在的每个可能的文字系统(例如拉丁文文字系统、CJK文字系统等)的字符计数。基于文字系统的方法依赖于不同语言可以使用不同的文字系统(例如中文和英文)的观察。该方法优选地使用将文字系统映射到使用该文字系统的语言列表的映射。例如,映射可以考虑消息中存在的字符或符号的UNICODE值,并且这些UNICODE值可以映射到消息的对应语言或一组可能的语言。语言文字系统和UNICODE值或范围可以存储在文字系统数据库28中。
参考图5,在示例基于文字系统的方法500中,提供文本消息(步骤502),并且使用例如检测模块16来识别消息中存在的文字系统(步骤504)。然后对落入每个文字系统的字符数量进行计数(步骤506)。具有最高字符数量的文字系统被认为是最佳文字系统(步骤508),并且识别对应于最佳文字系统的语言(步骤510)。当最佳文字系统仅对应一种语言时,该语言可被视为最佳语言。否则,当最佳文字系统对应多于一种语言时,可以使用其他语言检测方法进行进一步检测。在一些实施方式中,来自基于文字系统的方法的输出是消息中的每种可能语言的一组概率(例如,以矢量形式)。
基于用户语言简档的方法使用用户简档信息数据库30,其存储由各种用户发送的历史消息。使用例如本文描述的一种或多种其他语言检测方法(例如,字节n元语法方法)来检测这些存储的消息的语言,以识别每个用户使用的语言。例如,如果用户的所有先前消息都是西班牙语,则该用户的语言简档可以指示用户的首选语言是西班牙语。同样,如果用户的先前消息是不同语言的混合,则用户的语言简档可以指示与不同语言相关联的概率(例如,80%英语、15%法语和5%西班牙语)。通常,基于用户语言简档的方法解决与非常短的消息相关联的语言检测问题,这些消息通常在其中没有足够的信息来进行准确的语言确定。在这种情况下,通过假设用户将继续使用他或她先前使用过的语言,可以使用用户的语言偏好来预测用户消息中的语言。
参考图6,示例用户语言简档检测方法600开始于存储(步骤602)用户的先前消息并检测(步骤604)存储的消息中存在的语言。确定(步骤606)不同语言在用户消息中出现的频率,并输出(步骤608)这样的语言的使用概率。
参考图7,可以将各种语言检测方法并入到检测模块16中。可以将文本消息输入到检测模块16中,并且一种或多种语言检测方法可以识别消息中的语言。例如,每种语言检测方法可以提供概率向量,其中向量中的每个概率与消息中的可能语言相关联,并表示消息在给定语言中的可能性。归因于采用的方法不同以及消息中可用的信息,来自每种语言检测方法的概率可能不一致。检测模块16可以包括或利用例如用于执行n元语法检测方法(例如,字节n元语法检测方法200)的n元语法模块702,用于执行基于词典的方法300的基于词典的模块704,用于执行基于字母的方法400的基于字母的模块706,用于执行基于文字系统的方法500的基于文字系统的模块708,以及用于执行用户语言简档方法600的用户语言简档模块710。根据需要,可以将附加或替代语言检测方法并入到检测模块16中。一些已知方法包括使用例如单词级n元语法、马尔可夫模型和预测建模技术。
可以使用分类器模块18来组合来自检测模块16中的各种语言检测方法的输出。参考图8,分类器模块18可以包括内插模块802、支持向量机(SVM)模块804和线性SVM模块806。
内插模块802用于执行来自两种或更多种语言检测方法的结果的线性内插。出于说明的目的,可以通过在来自字节n元语法方法和基于词典的方法的结果之间进行内插来确定文本消息的语言。对于聊天消息“lol gtg”,字节n元语法方法可以确定英语的可能性为0.3,法语的可能性为0.4,波兰语的可能性为0.3(例如,来自字节n元语法方法的输出可以是{en:0.3,fr:0.4,pl:0.3})。基于词典的方法可以确定英语的可能性是0.1,法语的可能性是0.2,波兰语的可能性是0.7(例如,输出可以是{en:0.1,fr:0.2,pl:0.7})。为了在这两种方法的结果之间进行内插,将来自字节n元语法方法的输出乘以第一权重,并将来自基于词典的方法的输出乘以第二权重,使得第一和第二权重加和为1。然后将来自两种方法的加权输出相加。例如,如果字节n元语法结果被赋予的权重为0.6,则基于词典的结果被赋予的权重为0.4,并且两种方法之间的内插为:{en:0.3,fr:0.4,pl:0.3}*0.6+{en:0.1,fr:0.2,pl:0.7}*0.4={en:0.22,fr:0.32,pl:0.46}。其他权重也是可能的。
通常,用于在两个或更多个值之间进行内插的最佳权重可以通过试错法来数值地确定。可以尝试不同的权重来识别给定一组消息的一组最佳权重。在某些情况下,权重可以是消息中单词或字符数量的函数。可选地或另外地,权重可以取决于消息的语言学域。例如,游戏环境的最佳权重可以不同于体育环境的最佳权重。对于字节n元语法方法和基于词典的方法的组合,可以使用字节n元语法方法的权重为0.1和基于词典的方法的权重为0.9来获得良好的结果。
SVM模块804可以是或包括监督学习模型,其分析语言数据并识别语言模式。例如,SVM模块804可以是多类SVM分类器。对于英语SVM分类器,特征向量可以是上述两个分布的串联(即,{en:0.3,fr:0.4,pl:0.3,en:0.1,fr:0.2,pl:0.7})。SVM分类器优选地在标记的训练数据上训练。训练的模型充当输入的预测器。在语言检测的情况下选择的特征可以是例如字节、单词或短语的序列。输入训练向量可以映射到多维空间。然后,SVM算法可以使用内核来识别这些维度之间的最佳分离超平面,这将为算法提供预测语言的区分能力(在这种情况下)。内核可以是例如线性内核、多项式内核或径向基函数(RBF)内核,但是其他合适的内核也是可能的。SVM分类器的首选内核是RBF内核。在使用训练数据训练SVM分类器之后,分类器可用于输出在所有可能的语言中的最佳语言。
训练数据可以是或包括例如来自不同语言检测方法的输出向量和对于具有例如不同消息长度、语言学域和/或语言的大量消息的正确语言的指示。训练数据可以包括大量消息,每个消息中的语言都是已知的。
线性SVM模块806可以是或包括大规模线性分类器。具有线性内核的SVM分类器可以比其他线性分类器(例如线性回归)表现更好。线性SVM模块806和SVM模块804在内核级不同。在某些情况下,多项式模型比线性模型表现更好,反之亦然。最佳内核可以取决于消息数据的语言学域和/或数据的性质。
本文描述的系统和方法使用的其他可能的分类器包括例如决策树学习、关联规则学习、人工神经网络、归纳逻辑编程、随机森林、聚类、贝叶斯网络、强化学习、表示学习、相似性和度量学习以及稀疏词典学习。这些分类器或其他分类器中的一个或多个可以并入到分类器模块18中和/或形成分类器模块18的一部分。
参考图9,示例方法900使用检测模块16、分类器模块18和管理器模块20来检测消息中的语言。该消息被提供或递送(步骤902)到检测模块16。该消息可以伴随关于该消息和/或生成该消息的用户的信息。该信息可以包括,例如,用户的识别号、关于用户生成消息所使用的键盘的信息和/或关于控制用户用来生成消息的软件的操作系统的信息。例如,该消息可以伴随有指示用户使用法语键盘来生成消息并且该用户的操作系统是英语操作系统的数据。
在检测模块16中,使用(步骤904)一种或多种语言检测方法来检测消息中的语言。检测模块16使用的每个方法可以输出关于消息中存在的语言的预测。预测可以是向量的形式,其包括可能在消息中的每种可能的语言的概率。
然后,将来自检测模块16的输出递送到分类器模块18,在分类器模块18处可以组合来自两种或更多种语言检测方法的结果(步骤906)。可以获得来自语言检测方法的结果的各种组合。在一个示例中,来自字节n元语法方法和基于词典的方法的结果通过内插在分类器模块18中组合。在另一示例中,对来自字节n元语法方法、基于词典的方法、字母方法和用户简档方法的结果执行SVM组合或分类。替代地或另外地,该组合可以包括或考虑来自基于文字系统的方法的结果。另一示例包括字节n元语法方法、语言简档方法和词典方法的大线性组合。然而,通常,可以在分类器模块18中组合来自任何两种或更多种语言检测方法的结果。
方法900使用管理器模块20选择来自特定分类器的输出(步骤908)。可以基于例如由分类器计算的置信度分数、预期语言检测准确性和/或消息的语言学域来选择输出。然后从所选分类器输出中选择(步骤910)最佳语言。
在一些情况中,本文描述的系统和方法根据消息的长度选择语言检测方法。例如,参考图10,方法1000包括接收或提供消息(步骤1002),该消息可以包括关于用于生成消息的键盘语言的信息。如果消息大于阈值长度(例如,25个字节或25个字符,但是可能有任何合适的阈值长度)(步骤1004),则可以使用字节n元语法方法(或其他方法或方法的组合)检测语言(步骤1006)。然后,可以基于来自字节n元语法方法的结果来选择消息的语言(步骤1008)。否则,如果消息小于或等于阈值长度,则系统可以确定键盘语言是否可用(步骤1010)。如果键盘语言可用,则可以选择(步骤1012)消息的语言以与键盘语言相同。替代地,如果键盘语言不可用,则方法1000可以再次考虑消息的长度。例如,如果消息长度小于第二阈值(例如,4个字节或4个字符,但是任何合适的第二阈值是可能的)(步骤1014),则可以使用基于词典的方法检测(步骤1016)并选择语言。否则,如果消息长度大于第二阈值,则可以使用(步骤1018)字节n元语法方法(或其他方法或方法的组合)来检测消息中的语言。可以组合来自字节n元语法方法和基于词典的方法的结果(例如,使用内插器或其他分类器),并且可以基于该组合来确定消息的语言(步骤1020)。
图11是识别文本消息中的语言的示例方法1100。接收或提供在用户的客户端设备上生成的文本消息(步骤1102)。基于字母的方法和/或基于文字系统的方法用于确定(步骤1104)与文本消息相关联的字母和/或文字系统。识别与字母和/或文字系统相关联的候选语言。如果候选语言是具有独特字母和/或文字系统的语言(例如,俄语,阿拉伯语,希伯来语,希腊语,中文,台语,日语,韩语等)(步骤1106),则将候选语言确定(步骤1108)为文本消息的语言。
否则,如果候选语言不是具有独特字母和/或文字系统的语言,则评估文本消息的长度。如果消息长度小于阈值长度(例如,4个字节或4个字符,但是可能有任何合适的阈值长度)并且文本消息包括或伴随有客户端设备使用的键盘语言(步骤1110),则将消息的语言选择(步骤1112)为键盘语言。
替代地,如果消息长度大于阈值长度或键盘语言不可用,则使用n元语法方法(例如,字节n元语法方法)处理消息以识别(步骤1114)文本消息的第一组可能的语言。然后,还利用基于词典的方法处理该消息,以识别(步骤1116)文本消息的第二组可能的语言。如果存在用户的用户语言简档(步骤1118),则获得用户语言简档(步骤1120)并将其与第一组可能的语言和第二组可能的语言组合(例如,使用SVM分类器或大线性分类器)以获得可能语言的第一组合(步骤1122)。然后,基于可能的语言的第一组合,选择文本消息的语言(步骤1124)。否则,如果用户语言简档不可用,则组合第一组可能的语言和第二组可能的语言(例如,使用线性内插器或其他分类器)以获得可能的语言的第二组合(步骤1126)。最后,基于可能的语言的第二组合,选择文本消息的语言(步骤1128)。
在一些实例中,通过在两个或更多个步骤中组合来自多种语言检测方法的输出来执行语言检测。例如,第一步骤可以使用基于字母-文字系统的方法来检测使用其自己的独特字母或文字系统的特殊语言,例如,中文(cn),日语(ja),韩语(ko),俄语(ru),希伯来语(he),希腊语(el)和阿拉伯语(ar)。基于字母-文字系统的方法是指,例如,使用基于字母的方法和基于文字系统的方法中的一个或两个。如果必要,则第二步骤可以使用多种检测方法(例如,字节n元语法方法、基于用户语言简档的方法和基于词典的方法)的组合(例如,来自分类器)来检测消息中的其他语言(例如拉丁语言)。
在某些示例中,为语言检测而提供或接收的消息包括某些数字、字符或图像(例如,表情图标或表情符号),其不是特定于任何特定语言和/或对于任何用户都是可识别的,而不管语言偏好如何。本文描述的系统和方法在执行语言检测时可以忽略这些字符或图像,并且可以忽略仅包括这些字符或图像的消息。可选地或另外地,系统和方法可以在执行语言检测之前从消息中去除这些字符或图像。从消息中去除无关字符或图像的过程在本文中可称为清理消息。清理过程可以导致更快的检测时间和/或提高的语言检测准确性。
图12是用于检测消息中的语言的示例方法1200的流程图。该方法使用检测模块16、分类器模块18和管理器模块20来识别给定输入消息1204的最可能或最佳语言1202。输入消息1204可以伴随有关用户或用于生成消息的系统的信息。例如,输入消息1204可以伴随有用户识别号(或其他用户标识符)、关于用于生成消息的键盘的信息(例如,键盘语言)和/或关于用于生成消息的操作系统的信息(例如,操作系统语言)。
在所描绘的示例方法1200中,检测模块16包括十种不同的语言检测方法。检测模块16中的三种语言检测方法是字节n元语法A 1206,字节n元语法B 1208和字节n元语法C1210,它们都是字节n元语法方法并且可以被配置为检测不同组或数量的语言。例如,字节n元语法A 1206可以被配置为检测97种语言,字节n元语法B 1208可以被配置为检测27种语言,并且字节n元语法C 1210可以被配置为检测20种语言。检测模块16中的两种语言检测方法是词典A 1212和词典B 1214,它们都是基于词典的方法,并且可以被配置为检测不同组或数量的语言。例如,词典A 1212可以配置为检测9种语言,并且词典B 1214可以配置为检测10种语言。检测模块16中的两种语言检测方法是语言简档A 1216和语言简档B 1218,它们是用户语言简档方法,并且可以被配置为检测不同组或数量的语言。例如,语言简档A1216可以被配置为检测20种语言,并且语言简档B 1218可以被配置为检测27种语言。检测模块16中的两种语言检测方法是字母A 1220和字母B 1222,它们是基于字母的方法,并且可以被配置为检测不同组或数量的语言。例如,字母A 1220可以配置为检测20种语言,字母B 1222可以配置为检测27种语言。检测模块16还包括基于文字系统的语言检测方法1224。
来自检测模块16中的不同语言检测方法的输出由分类器模块18组合和处理。例如,内插分类器1226组合来自字节n元语法B 1208和词典B 1214的输出。用于内插的权重例如,对于字节n元语法B 1208可以是0.1,对于词典B 1214可以是0.9。分类器模块18还可以使用SVM分类器1228,其组合来自字节n元语法C 1210、词典B 1214、语言简档B 1218和字母B 1222的输出。分类器模块18还可以使用基于文字系统的方法1224与字节n元语法C 1210、词典A 1212、语言简档A 1216和字母A 1220的SVM分类器组合的第一组合1230。另外,分类器模块18可以使用基于文字系统的方法1224与字节n元语法C 1210、词典A 1212和语言简档A 1216的线性SVM分类器组合的第二组合1232。尽管图12示出了在分类器模块18中使用的特定语言检测测试、分类器和检测测试输出的组合,但是可以使用其他语言检测测试、分类器和/或组合。
对于第一组合1230和第二组合1232两者,基于文字系统的方法1224和分类器可以用于分层方法中。例如,基于文字系统的方法1224可用于快速识别具有独特文字系统的语言。当在消息1204中识别出这种语言时,可能不需要使用第一组合1230中的SVM分类器或第二组合的线性SVM分类器。
通常,管理器模块20可以选择特定语言检测方法、分类器和/或检测方法输出的组合以识别消息1204中的语言。管理器模块20可以根据语言学域或者根据消息的预期语言进行选择。管理器模块20可以根据由分类器确定的置信度分数来选择特定分类器。例如,管理器模块20可以从分类器选择对其预测置信度最大的输出。
在某些实施方式中,本文描述的系统和方法适合于使语言检测可用为对于多个用户的服务。通过系统和方法识别语言的速度,以及通过系统和方法基于来自不同客户端的服务请求在运行时处理多种识别技术的能力,使得这种服务成为可能和/或得到增强。
参考图13,在某些示例中,语言检测系统1300获得或接收文本消息1302并使用清理器模块1304、分组器模块1306和一个或多个语言检测器模块来识别存在于文本消息1302中的语言。通常,清理器模块1304通过从文本消息1302中删除某些字符或其他无关元素来准备用于语言检测的文本消息1302。清理器模块1304可以去除例如一个或多个数字字符(例如,“1”,“3”,“15”,“249”等),一个或多个表情符号(例如,以图像和/或字符组合的形式,例如“:-D”或“:-<”),和/或可能对语言检测无用的一个或多个其他非语言字符或元素,例如某些标点符号(例如句号或逗号),额外空格和/或回车。在替代示例中,不从文本消息1302中去除无关元素,而是简单地在后续语言检测期间忽略或避开无关元素。清理器模块1304可用于在这种情况下标记或识别无关元素。在随后的段落中对“文本消息1302”的引用旨在覆盖例如删除或忽略无关元素的文本消息。在各种示例中,无关元素在本文中称为“非语言字符”。
通常,分组器模块1306用于执行对文本消息1302中的语言的初始分类,并且基于初始分类,选择一个或多个后续语言检测方法以最终确定文本消息1302中的语言。在优选示例中,分组器模块1306通过检测文本消息1302中存在的字母和/或文字系统来执行初始分类。可以使用例如本文描述的基于字母的方法和/或基于文字系统的方法来检测字母和/或文字系统。在一些情况下,基于字母的方法可以确定文本消息1302的第一组分数,其中每个分数表示字母用于多种不同语言之一的概率或可能性。分组器模块1306可以基于来自第一组分数的最高分数来检测文本消息1302中的字母。同样地,基于文字系统的方法可以确定文本消息1302的第二组分数,其中每个分数表示文字系统用于多种不同语言之一的概率或可能性。分组器模块1306可以基于来自第二组分数的最高分数来检测文本消息1302中的文字系统。替代地或另外地,分组器模块1306可以组合来自基于字母的方法和基于文字系统的方法的结果或分数(例如,使用内插器或其他分类器)以检测文本消息1302中的字母和/或文字系统。一旦检测到字母和/或文字系统,分组器模块1306就选择语言检测器模块以用于对文本消息1302中的语言进行最终确定,如下文和此处所述。分组器模块1306可以将来自基于字母的方法和/或基于文字系统的方法的结果或其他信息(例如,一个或多个分数)传递到所选择的语言检测器模块。
在所描绘的示例中,语言检测系统1300可以包括或利用以下语言检测器模块:字母可区分语言检测器1308,西里尔语言检测器1310,拉丁语言检测器1312和退避语言检测器1314。然而,可以包括或利用其他附加或替代语言检测器模块。这些语言检测器模块1308,1310,1312和1314中的每一个可以包括检测方法模块和分类器模块。例如,字母可区分语言检测器1308可包括检测方法模块1316和分类器模块1318,西里尔语言检测器1310可包括检测方法模块1320和分类器模块1322,拉丁语言检测器1312可包括检测方法模块1324和分类器模块1326,并且退避语言检测器1314可以包括检测方法模块1328和分类器模块1330。
通常,检测方法模块1316,1320,1324和1328包括或利用一种或多种语言检测方法,其可以是或包括例如n元语法方法(例如,字节n元语法方法),基于词典的方法,基于字母的方法,基于文字系统的方法和/或用户语言简档方法。预期其他语言检测方法。检测方法模块1316,1320,1324和1328可以使用语言检测方法来产生输出,该输出提供文本消息1302中存在的语言的指示。输出可以是或包括例如表示文本消息1302是一种或多种语言的可能性的一个或多个分数。在一些情况下,文本消息1302中的语言从检测方法模块1316,1320,1324或1328之一的输出直接确定。替代地或另外地,可以从分类器模块1318,1322,1326或1330的输出确定文本消息1302中的语言。通常,每个分类器模块1318,1322,1326或1330处理来自对应的检测方法模块1316,1320,1324或1328的输出以提供文本消息中存在的语言的进一步指示。分类器模块1318,1322,1326和1330优选地使用或包括一个或多个分类器,例如监督学习模型、部分监督学习模型、无监督学习模型和/或内插。
例如,当由分组器模块1306检测到的字母和/或文字系统与一个或多个字母可区分语言相关联时,分组器模块1306选择字母可区分语言检测器1308。通常,字母可区分语言是具有独特字母和/或独特文字系统的语言,使得一旦检测到语言的字母和/或文字系统,就可以确定文本消息1302中的语言。字母可区分语言的示例包括例如简体中文(cn),繁体中文(tw),日语(ja),阿拉伯语(ar),希伯来语(he),希腊语(el),韩语(ko)和泰语(th)。在各种情况下,分组器模块1306将来自基于字母的方法和/或基于文字系统的方法的结果(例如,一个或多个分数或概率,检测到的字母和/或检测到的文字系统)传递到字母可区分语言检测器1308。替代地或另外地,如果分组器模块1306不将这样的结果传递给字母可区分语言检测器1308,则检测方法模块1316可以执行基于字母的方法和/或基于文字系统的方法来检测文本消息1302中的字母和/或文字系统。一旦检测到字母和/或文字系统,字母可区分语言检测器1308就可以确定文本消息1302中的语言。在一些情况下,可以使用分类器模块1318来进行这样的确定以处理来自检测方法模块1316的任何输出。
在一些示例中,当由分组器模块1306检测到的字母和/或文字系统与一种或多种西里尔语言相关联时,分组器模块1306选择西里尔语言检测器1310。西里尔语言的示例包括例如保加利亚语(bg),乌克兰语(uk)和俄语(ru)。为了确定文本消息1302中的特定西里尔语,检测方法模块1320可以包括或利用这里描述的一种或多种语言检测方法,例如字节n元语法方法和/或基于词典的方法。在优选示例中,检测方法模块1320利用基于词典的方法,该方法可以使用特定于西里尔语言的一个或多个词典。基于词典的方法可以通过查找一个或多个词典中的单词来计数文本消息1302中属于一种或多种西里尔语的标记或单词的数量。在一些示例中,在文本消息1302中具有最多标记或单词的西里尔语被确定为文本消息1302中的语言。替代地或另外地,检测方法模块1320可以将来自一种或多种语言检测方法(例如,基于词典的方法)的输出提供到分类器模块1322,其可以处理该输出以确定文本消息1302中的语言。例如,分类器模块1322可以从检测方法模块1320接收一组分数并且可以通过识别具有最高分数的语言来确定文本消息1302中的西里尔语。
在某些情况下,当由分组器模块1306检测到的字母和/或文字系统与一种或多种拉丁语言相关联时,分组器模块1306选择拉丁语言检测器1312。拉丁语言的示例包括例如英语(en),法语(fr),西班牙语(es),日语(de),葡萄牙语(pt),荷兰语(nl),波兰语(pl),意大利语(it),土耳其语(tr),加泰罗尼亚语(ca),捷克语(cs),丹麦语(da),芬兰语(fi),匈牙利语(hu),印度尼西亚语(id),挪威语(no),罗马尼亚语(ro),斯洛伐克语(sk),瑞典语(sv),马来语(ms),越南语(vi)。为了确定文本消息1302中的特定拉丁语言,检测方法模块1324可以包括或利用本文描述的一种或多种语言检测方法。在优选示例中,检测方法模块1324包括或利用字节n元语法方法和/或基于词典的方法。可以使用分类器模块1326处理或组合来自这些优选方法中的一个或两个的输出,以确定文本消息1302中的特定拉丁语言。例如,n元语法方法和基于词典的方法可以各自输出一组分数,每个分数表示文本消息1302是多种不同拉丁语言之一的可能性。分类器模块1326可以使用例如本文描述的一个或多个分类器和/或内插技术来处理该组分数,以确定文本消息1302中的拉丁语言。
在一些示例中,分组器模块1306选择退避语言检测器1314以检测文本消息1302中的语言。例如,当分组器模块1306不选择字母可区分语言检测器1308时,退避语言检测器1314可以选择例如西里尔语检测器1310或拉丁语检测器1312。例如,当分组器模块1306未能检测到与字母可区分语言、西里尔语言或拉丁语言相关联的字母和/或文字系统时,可能发生这种情况。当选择退避语言检测器1314时,检测方法模块1328和/或分类器模块1330可用于识别文本消息1302中的语言。检测方法模块1328使用的语言检测方法可以是或包括,例如,n元语法方法(例如,字节n元语法方法),基于词典的方法,基于字母的方法,基于文字系统的方法,用户语言简档方法及其任何组合。分类器模块1330使用的特定分类器可以是或包括例如监督学习模型,部分监督学习模型,无监督学习模型,内插和/或其任何组合。可以使用其他语言检测方法和/或分类器。通常,退避语言检测器1314可以使用本文描述的任何语言检测方法和分类器。退避语言检测器1314优选地是灵活的并且可以被配置为当这样的新方法和/或组合被开发或变得可用时包括或使用新的检测方法和/或检测方法的新组合。在某些情况下,通过依靠退避语言检测器1314,语言检测系统1300能够提供有效输出而不是空值(NULL)输出。
出于说明的目的,图14是用于识别文本消息中的语言的示例方法1400的流程图。方法1400包括接收文本消息(步骤1402)并检测(步骤1404)文本消息中的拉丁字母和拉丁文字系统中的至少一个。执行基于词典的语言检测测试(步骤1406)以确定第一组分数,其中第一组分数中的每个分数表示文本消息是多种不同拉丁语言之一的可能性。执行n元语法语言检测测试(步骤1408)以确定第二组分数,其中第二组分数中的每个分数表示文本消息是多种不同拉丁语言之一的可能性。使用例如一个或多个分类器和/或内插技术来组合第一和第二组分数(步骤1410)。基于该组合识别文本消息中的语言(步骤1412)。
图15是用于识别文本消息中的语言的示例方法1500的流程图。获得文本消息(步骤1502),并从文本消息中去除非语言字符(步骤1504)以生成清理的文本消息。通过执行以下中的至少一个来在清理的文本消息中检测字母和/或文字系统:(i)基于字母的语言检测测试以确定第一组分数(步骤1506)和(ii)基于文字系统的语言检测测试以确定第二组分数(步骤1508)。第一组分数中的每个分数表示清理的文本消息包括多种不同语言之一的字母的可能性。第二组分数中的每个分数表示清理的文本消息包括多种不同语言之一的文字系统的可能性。基于第一组分数、第二组分数和/或第一和第二组分数的组合来识别清理的文本消息中的语言(步骤1510)。
本说明书中描述的主题和操作的实施例可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等同物或者它们的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即计算机程序指令的一个或多个模块,其编码在计算机存储介质上,用于由数据处理装置执行或控制数据处理装置的操作。替代地或另外地,程序指令可以编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息以便传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是以人工生成的传播信号编码的计算机程序指令的源或目的地。计算机存储介质也可以是或包括在一个或多个单独的物理部件或介质(例如,多个CD、盘或其他存储设备)中。
本说明书中描述的操作可以实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机、片上系统或以上的多个或组合。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或其中一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础结构,例如web服务、分布式计算和网格计算基础结构。
计算机程序(也称为程序,软件,软件应用,脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,声明或过程语言,并且可以以任何形式部署,包括作为独立程序或作为模块,组件,子例程,对象或适用于计算环境的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在文件的一部分中,该文件保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件(例如,存储一个或多个模块,子程序或代码部分的文件)中。可以部署计算机程序以在一个计算机上或在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
举例来说,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦接以从一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备,以便存储数据,大容量存储设备例如磁盘、磁光盘、光盘或固态驱动器。但是,计算机不需要这样的设备。此外,计算机可以嵌入在另一个设备中,例如移动电话,个人数字助理(PDA),移动音频或视频播放器,游戏控制台,全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器),仅举几例。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM,EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和CD-ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有显示设备和键盘以及指示设备的计算机上实现,显示设备例如CRT(阴极射线管)或LCD(液晶显示器)监视器用于向用户显示信息,键盘以及指示设备例如、鼠标、轨迹球、触摸板或触控笔,用户可通过该设备向计算机提供输入。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈,听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学,语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求将网页发送到用户的客户端设备上的web浏览器。
本说明书中描述的主题的实施例可以在包括后端组件、或者包括中间件组件或者包括前端组件的计算系统中实现,后端组件例如作为数据服务器,中间件组件例如应用服务器,前端组件例如具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该前端组件与本说明书中描述的主题的实现进行交互,或者包括一个或多个这样的后端组件、中间件或前端组件的任何组合。系统的组件可以通过任何形式的数字数据通信或数字数据通信的介质互连,例如通过通信网络。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),互联网(例如,因特网)和对等网络(例如,随建即连对等网络)。
计算系统可包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,HTML页面)发送到客户端设备(例如,用于向与客户端设备交互的用户显示数据和从其接收用户输入的目的)。可以从服务器处的客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多具体的实现细节,但是这些不应被解释为对任何发明或可以要求保护的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在单独实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此声明,但是在某些情况下可以从组合中剔除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或按顺序执行这样的操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。例如,并行处理可用于同时执行多种语言检测方法。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以集成在单个软件产品中或包装成多个软件产品。
因此,已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。在一些情况下,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或顺序次序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。
Claims (20)
1.一种识别消息中的语言的计算机实现的方法,该方法包括:
获得文本消息;
从文本消息中去除非语言字符以生成清理的文本消息;
检测清理的文本消息中存在的字母和文字系统中的至少一个,其中,检测包括以下中的至少一个:
(i)执行基于字母的语言检测测试以确定第一组分数,其中,第一组分数中的每个分数表示清理的文本消息包括多种不同的语言之一的字母的可能性;和
(ii)执行基于文字系统的语言检测测试以确定第二组分数,其中,第二组分数中的每个分数表示清理的文本消息包括所述多种不同的语言之一的文字系统的可能性;以及
基于第一组分数、第二组分数以及第一组分数和第二组分数的组合中的至少一个来识别清理的文本消息中的语言。
2.根据权利要求1所述的方法,其中,所述非语言字符包括表情符号和数字字符中的至少一种。
3.根据权利要求1所述的方法,其中,所述组合包括在所述第一组分数和第二组分数之间的内插。
4.根据权利要求1所述的方法,其中,识别清理的文本消息中的语言包括:
对清理的文本消息执行语言检测测试以生成第三组分数,其中,第三组分数中的每个分数表示清理的文本消息包括多种不同的语言之一的可能性。
5.根据权利要求4所述的方法,其中,基于第一组分数、第二组分数以及第一组分数和第二组分数的组合中的至少一个,从多个语言检测测试中选择语言检测测试。
6.根据权利要求4所述的方法,其中,所述语言检测测试包括语言检测方法和一个或多个分类器。
7.根据权利要求6所述的方法,其中,所述语言检测方法包括基于词典的语言检测测试、n元语法语言检测测试、基于字母的语言检测测试、基于文字系统的语言检测测试和用户语言简档语言检测测试中的至少一个。
8.根据权利要求6所述的方法,其中,所述一个或多个分类器包括监督学习模型、部分监督学习模型、无监督学习模型和内插中的至少一个。
9.根据权利要求4所述的方法,包括:
使用一个或多个分类器处理第三组分数,以识别清理的文本消息中的语言。
10.根据权利要求9所述的方法,包括:
从所述一个或多个分类器输出清理的文本消息是所识别语言的指示,其中,所述指示包括置信度分数。
11.一种用于识别消息中的语言的计算机实现的系统,包括:
清理器模块,
其中,清理器模块获得文本消息并从文本消息中去除非语言字符,以生成清理的文本消息;
分组器模块,
其中,分组器模块检测清理的文本消息中存在的字母和文字系统中的至少一个,并且其中,所述分组器模块可操作成执行包括以下中的至少一个的操作:
执行基于字母的语言检测测试以确定第一组分数,其中,第一组分数中的每个分数表示清理的文本消息包括多种不同的语言之一的字母的可能性;和
执行基于文字系统的语言检测测试以确定第二组分数,其中,第二组分数中的每个分数表示清理的文本消息包括所述多种不同的语言之一的文字系统的可能性;以及
语言检测器模块,
其中,语言检测器模块基于第一组分数、第二组分数以及第一组分数和第二组分数的组合中的至少一个来识别清理的文本消息中的语言。
12.根据权利要求11所述的系统,其中,所述非语言字符包括表情符号和数字字符中的至少一种。
13.根据权利要求11所述的系统,其中,所述组合包括所述第一组分数和第二组分数之间的内插。
14.根据权利要求11所述的系统,其中,所述分组器模块可操作成执行包括以下操作的操作:
基于第一组分数、第二组分数以及第一组分数和第二组分数的组合中的至少一个,从多个语言检测器模块中选择语言检测器模块。
15.根据权利要求11所述的系统,其中,所述语言检测器模块包括:
语言检测方法模块,所述语言检测方法模块可操作成执行包括以下操作的操作:
对清理的文本消息执行语言检测测试以生成第三组分数,其中,第三组分数中的每个分数表示清理的文本消息包括多种不同的语言之一的可能性。
16.根据权利要求15所述的系统,其中,所述语言检测测试包括基于词典的语言检测测试、n元语法语言检测测试、基于字母的语言检测测试、基于文字系统的语言检测测试和用户语言简档语言检测测试中的至少一个。
17.根据权利要求15所述的系统,其中,所述语言检测器模块包括:
分类器模块,所述分类器模块可操作成执行包括以下操作的操作:
使用一个或多个分类器处理第三组分数,以识别清理的文本消息中的语言。
18.根据权利要求17所述的系统,其中,所述一个或多个分类器包括监督学习模型、部分监督学习模型、无监督学习模型和内插中的至少一个。
19.根据权利要求17所述的系统,其中,所述分类器模块可操作成执行包括以下操作的操作:
输出清理的文本消息是所识别语言的指示,其中,所述指示包括置信度分数。
20.一种物品,包括:
其上存储有指令的非暂时性计算机可读介质,所述指令在由一个或多个计算机执行时,使计算机执行包括以下操作的操作:
获得文本消息;
从文本消息中去除非语言字符以生成清理的文本消息;
检测清理的文本消息中存在的字母和文字系统中的至少一个,其中,检测包括以下中的至少一个:
(i)执行基于字母的语言检测测试以确定第一组分数,其中,第一组分数中的每个分数表示清理的文本消息包括多种不同的语言之一的字母的可能性;和
(ii)执行基于文字系统的语言检测测试以确定第二组分数,其中,第二组分数中的每个分数表示清理的文本消息包括所述多种不同的语言之一的文字系统的可能性;以及
基于第一组分数、第二组分数以及第一组分数和第二组分数的组合中的至少一个来识别清理的文本消息中的语言。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/283,646 US10162811B2 (en) | 2014-10-17 | 2016-10-03 | Systems and methods for language detection |
US15/283,646 | 2016-10-03 | ||
PCT/US2017/054722 WO2018067440A1 (en) | 2016-10-03 | 2017-10-02 | Systems and methods for language detection |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110023931A true CN110023931A (zh) | 2019-07-16 |
Family
ID=60162256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780074219.8A Pending CN110023931A (zh) | 2016-10-03 | 2017-10-02 | 用于语言检测的系统和方法 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP3519984A1 (zh) |
JP (1) | JP2019535082A (zh) |
CN (1) | CN110023931A (zh) |
AU (1) | AU2017339433A1 (zh) |
CA (1) | CA3039085A1 (zh) |
WO (1) | WO2018067440A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11551461B2 (en) * | 2020-04-10 | 2023-01-10 | I.R.I.S. | Text classification |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102483743A (zh) * | 2009-06-05 | 2012-05-30 | 谷歌公司 | 对书写体系和语言的检测 |
WO2016060687A1 (en) * | 2014-10-17 | 2016-04-21 | Machine Zone, Inc. | System and method for language detection |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7552045B2 (en) * | 2006-12-18 | 2009-06-23 | Nokia Corporation | Method, apparatus and computer program product for providing flexible text based language identification |
US8107671B2 (en) * | 2008-06-26 | 2012-01-31 | Microsoft Corporation | Script detection service |
-
2017
- 2017-10-02 WO PCT/US2017/054722 patent/WO2018067440A1/en active Application Filing
- 2017-10-02 JP JP2019517966A patent/JP2019535082A/ja active Pending
- 2017-10-02 CA CA3039085A patent/CA3039085A1/en not_active Abandoned
- 2017-10-02 AU AU2017339433A patent/AU2017339433A1/en not_active Abandoned
- 2017-10-02 CN CN201780074219.8A patent/CN110023931A/zh active Pending
- 2017-10-02 EP EP17788004.4A patent/EP3519984A1/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102483743A (zh) * | 2009-06-05 | 2012-05-30 | 谷歌公司 | 对书写体系和语言的检测 |
WO2016060687A1 (en) * | 2014-10-17 | 2016-04-21 | Machine Zone, Inc. | System and method for language detection |
Non-Patent Citations (1)
Title |
---|
王昊等: "基于N-Gram的文本语种识别研究", 《现代图书情报技术》 * |
Also Published As
Publication number | Publication date |
---|---|
JP2019535082A (ja) | 2019-12-05 |
EP3519984A1 (en) | 2019-08-07 |
AU2017339433A1 (en) | 2019-05-02 |
CA3039085A1 (en) | 2018-04-12 |
WO2018067440A1 (en) | 2018-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9535896B2 (en) | Systems and methods for language detection | |
JP5379138B2 (ja) | 領域辞書の作成 | |
US10699073B2 (en) | Systems and methods for language detection | |
US8386240B2 (en) | Domain dictionary creation by detection of new topic words using divergence value comparison | |
US9971763B2 (en) | Named entity recognition | |
CN109657054B (zh) | 摘要生成方法、装置、服务器及存储介质 | |
US20170185581A1 (en) | Systems and methods for suggesting emoji | |
KR101650112B1 (ko) | 음역을 위한 기계 학습 | |
KR101465770B1 (ko) | 단어 확률 결정 | |
CN108475264B (zh) | 机器翻译方法和装置 | |
JP6553180B2 (ja) | 言語検出を行うためのシステムおよび方法 | |
CN112613324A (zh) | 语义情绪识别方法、装置、设备及存储介质 | |
Jain et al. | “UTTAM” An Efficient Spelling Correction System for Hindi Language Based on Supervised Learning | |
Ozer et al. | Diacritic restoration of Turkish tweets with word2vec | |
Winkelmolen et al. | Statistical Language Identification of Short Texts. | |
CN110023931A (zh) | 用于语言检测的系统和方法 | |
Kamath et al. | Sarcasm detection approaches survey | |
Abd-hood et al. | Hashtag segmentation: A comparative study involving the Viterbi, triangular matrix and word breaker algorithms | |
JP2019215876A (ja) | 言語検出を行うためのシステムおよび方法 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190716 |
|
WD01 | Invention patent application deemed withdrawn after publication |