[go: up one dir, main page]

JP2019535082A - System and method for language detection - Google Patents

System and method for language detection Download PDF

Info

Publication number
JP2019535082A
JP2019535082A JP2019517966A JP2019517966A JP2019535082A JP 2019535082 A JP2019535082 A JP 2019535082A JP 2019517966 A JP2019517966 A JP 2019517966A JP 2019517966 A JP2019517966 A JP 2019517966A JP 2019535082 A JP2019535082 A JP 2019535082A
Authority
JP
Japan
Prior art keywords
language
text message
scores
module
detection test
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
JP2019517966A
Other languages
Japanese (ja)
Inventor
ボッジャ,ニキル
ワン,ピドン
グオ,シマン
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.)
MZ IP Holdings LLC
Original Assignee
MZ IP Holdings 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
Priority claimed from US15/283,646 external-priority patent/US10162811B2/en
Application filed by MZ IP Holdings LLC filed Critical MZ IP Holdings LLC
Publication of JP2019535082A publication Critical patent/JP2019535082A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/263Language identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

本開示の実現例は、メッセージ中の言語を識別するための方法、システムおよびコンピュータプログラムストレージデバイスに関する。サニタイズ済テキストメッセージを生成するよう、テキストメッセージから非言語文字が除去される。(i)スコアの第1のセットを決定するアルファベットベースの言語検出テストと、(ii)スコアの第2のセットを決定するスクリプトベースの言語検出テストとのうちの少なくとも1つを実行することによって、サニタイズ済テキストメッセージにおいて、アルファベットおよび/またはスクリプトが検出される。スコアの第1のセットの各スコアは、サニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語についてのアルファベットを含んでいる尤度を表わす。スコアの第2のセットの各スコアは、サニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語についてのスクリプトを含んでいる尤度を表わす。スコアの第1のセットと、スコアの第2のセットと、スコアの第1および第2のセットの組み合わせとのうちの少なくとも1つに基づき、サニタイズ済テキストメッセージ中の言語が識別される。Implementations of the present disclosure relate to methods, systems, and computer program storage devices for identifying languages in messages. Non-language characters are removed from the text message to generate a sanitized text message. By performing at least one of (i) an alphabet-based language detection test that determines a first set of scores and (ii) a script-based language detection test that determines a second set of scores In the sanitized text message, alphabets and / or scripts are detected. Each score in the first set of scores represents the likelihood that the sanitized text message contains an alphabet for one of a plurality of different languages. Each score in the second set of scores represents the likelihood that the sanitized text message contains a script for one of a plurality of different languages. A language in the sanitized text message is identified based on at least one of the first set of scores, the second set of scores, and the combination of the first and second sets of scores.

Description

関連出願への相互参照
この出願は、2016年10月3日に出願された米国特許出願番号第15/283,646号の優先権および利益を主張し、米国特許出願番号第15/283,646号は本願明細書において全文参照により援用される。
This application claims priority and benefit of US patent application Ser. No. 15 / 283,646 filed Oct. 3, 2016, and is hereby incorporated by reference. No. is incorporated herein by reference in its entirety.

背景
本開示は、言語検出に関し、特に、短いテキストメッセージ中の言語を検出するためのシステムおよび方法に関する。
BACKGROUND This disclosure relates to language detection, and in particular, to a system and method for detecting a language in a short text message.

一般に、言語検出または言語識別は、テキストの本体に存在する言語が当該テキストの内容に基づいて自動的に検出されるプロセスである。言語検出は、自動言語翻訳のコンテキストで有用であり、一般に、テキストメッセージの言語は、当該メッセージが異なる言語に正確に翻訳され得る前に、分かっていなければならない。   In general, language detection or language identification is a process in which the language present in the body of the text is automatically detected based on the content of the text. Language detection is useful in the context of automatic language translation, and in general the language of a text message must be known before the message can be accurately translated into a different language.

従来の言語検出は通常、多くの単語および文章の集合(すなわちドキュメントレベル)に対して実行されるが、特に困難なドメインは、メッセージがしばしば数単語(たとえば4語以下)のみを含み、それらの単語のいくつかまたは全部が非正式であり得、および/または、ミススペルされたものであり得るチャットテキストのドメインである。チャットテキストのドメインでは、情報が欠如していることと、そのようなメッセージに非正式なものが存在することとにより、既存の言語検出アプローチは不正確および/または遅いということが判明している。   Traditional language detection is usually performed on many word and sentence sets (ie document level), but especially difficult domains are those where messages often contain only a few words (eg 4 words or less) A chat text domain where some or all of the words may be informal and / or misspelled. In the chat text domain, the lack of information and the presence of such informal messages have proven that existing language detection approaches are inaccurate and / or slow. .

概要   Overview

本願明細書において記載されるシステムおよび方法の実施形態は、たとえば、メッセージの内容、メッセージを生成するために使用されるキーボードに関する情報、および/または、メッセージを生成したユーザの言語プレファレンスに関する情報に基づきテキストメッセージ中の言語を検出するために使用される。以前の言語検出技術と比較すると、本願明細書において記載されるシステムおよび方法は一般に、特に(たとえば4語以下の)短いテキストメッセージについてより高速かつ正確である。   Embodiments of the systems and methods described herein can include, for example, information about the content of a message, information about the keyboard used to generate the message, and / or information about the language preference of the user who generated the message. Used to detect language in text message based. Compared to previous language detection techniques, the systems and methods described herein are generally faster and more accurate, especially for short text messages (eg, 4 words or less).

さまざまな例において、当該システムおよび方法は、テキストメッセージにおいて可能性のある言語に関連付けられる確率を決定するよう、複数の言語検出テストおよび分類器を使用する。各言語検出テストは、可能性のある言語に関連付けられる確率のセットまたはベクトルを出力し得る。分類器は、言語検出テストからの出力を組み合わせて、当該メッセージについて最も可能性の高い言語を決定し得る。当該メッセージのために選択される特定の言語検出テストおよび分類器は、予測精度、信頼スコア、および/または、当該メッセージについての言語ドメインに依存し得る。   In various examples, the systems and methods use multiple language detection tests and classifiers to determine probabilities associated with possible languages in text messages. Each language detection test may output a set or vector of probabilities associated with a potential language. The classifier may combine the outputs from the language detection test to determine the most likely language for the message. The particular language detection test and classifier selected for the message may depend on the prediction accuracy, confidence score, and / or language domain for the message.

本願明細書において記載されるシステムおよび方法のある例は、言語の最終決定を行うためにより集中した言語検出技術が実行され得るように、テキストメッセージ中の言語の初期分類を実行する。たとえば、システムおよび方法は、テキストメッセージ中の言語についてグループまたはカテゴリ(たとえばキリル言語またはラテン言語)を識別するためにテキストメッセージに対して初期言語検出テストを実行し得る。言語カテゴリがひとたび識別されると、当該言語カテゴリのために設計された言語検出技術が、メッセージ中の特定の言語を識別するために使用され得る。好ましい例では、不要な要素(たとえば絵文字または番号数字または文字)が、言語検出に先立ってテキストメッセージから除去され、これにより言語検出がより高速かつ正確になる。本願明細書において記載されるシステムおよび方法は一般的に、先行する言語検出アプローチよりも正確かつ効率的である。システムおよび方法は、本願明細書において記載される言語検出方法のうちのいずれか1つ以上を使用するように構成され得る。   Certain examples of systems and methods described herein perform initial classification of languages in text messages so that more focused language detection techniques can be performed to make a final language determination. For example, the system and method may perform an initial language detection test on the text message to identify a group or category (eg, Cyrillic or Latin language) for the language in the text message. Once a language category is identified, language detection techniques designed for that language category can be used to identify a particular language in the message. In a preferred example, unwanted elements (eg, pictograms or number digits or letters) are removed from the text message prior to language detection, which makes language detection faster and more accurate. The systems and methods described herein are generally more accurate and efficient than previous language detection approaches. The systems and methods may be configured to use any one or more of the language detection methods described herein.

1つの局面において、この開示の主題は、メッセージ中の言語を識別する、コンピュータによって実現される方法に関する。上記方法は、テキストメッセージを取得することと、サニタイズ済テキストメッセージを生成するよう、テキストメッセージから非言語文字を除去することと、サニタイズ済テキストメッセージ中に存在するアルファベットおよびスクリプトのうちの少なくとも1つを検出することとを含み、検出することは、(i)各々がサニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語についてのアルファベットを含む尤度を表わすスコアの第1のセットを決定するためにアルファベットベースの言語検出テストを行なうことと、(ii)各々がサニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語についてのスクリプトを含む尤度を表わすスコアの第2のセットを決定するためにスクリプトベースの言語検出テストを行なうこととのうちの少なくとも1つを含む。上記方法はさらに、スコアの第1のセットと、スコアの第2のセットと、スコアの第1および第2のセットの組み合わせとのうちの少なくとも1つに基づき、サニタイズ済テキストメッセージ中の言語を識別することを含む。   In one aspect, the subject matter of this disclosure relates to a computer-implemented method for identifying a language in a message. The method includes obtaining a text message, removing non-language characters from the text message to generate a sanitized text message, and at least one of an alphabet and a script present in the sanitized text message. Detecting, determining (i) a first set of scores each representing a likelihood that the sanitized text message includes an alphabet for one of a plurality of different languages. Performing an alphabet-based language detection test to: (ii) a second set of scores each representing a likelihood that the sanitized text message includes a script for one of a plurality of different languages. Script-based language detection to determine Comprising at least one of the performing the strike. The method further includes determining a language in the sanitized text message based on at least one of a first set of scores, a second set of scores, and a combination of the first and second sets of scores. Including identifying.

ある実現例では、非言語文字は絵文字および/または数字を含む。組み合わせは、スコアの第1および第2のセットの間の補間を含み得る。いくつかの例では、サニタイズ済テキストメッセージ中の言語を識別することは、各々がサニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語を含む尤度を表わすスコアの第3のセットを生成するためにサニタイズ済テキストメッセージに対して言語検出テストを行なうことを含む。スコアの第1のセットと、スコアの第2のセットと、スコアの第1および第2のセットの組み合わせとのうちの少なくとも1つに基づき、言語検出テストは複数の言語検出テストから選択され得る。   In some implementations, non-language characters include pictographs and / or numbers. The combination may include interpolation between the first and second sets of scores. In some examples, identifying languages in the sanitized text message generates a third set of scores each representing the likelihood that the sanitized text message includes one of a plurality of different languages. To perform a language detection test on the sanitized text message. The language detection test may be selected from a plurality of language detection tests based on at least one of the first set of scores, the second set of scores, and the combination of the first and second sets of scores. .

ある場合では、言語検出テストは、言語検出方法および1つ以上の分類器を含む。言語検出方法は、たとえば、辞書ベースの言語検出テスト、nグラム言語検出テスト、アルファベットベースの言語検出テスト、スクリプトベースの言語検出テスト、ユーザ言語プロファイル言語検出テスト、または、その任意の組み合わせを含み得る。1つ以上の分類器はたとえば、教師あり学習モデル、部分教師あり学習モデル、教師なし学習モデル、補間、または、その任意の組み合わせを含み得る。さまざまな実現例では、上記方法は、サニタイズ済テキストメッセージ中の言語を識別するために、1つ以上の分類器を使用してスコアの第3のセットを処理することを含む。上記方法は、サニタイズ済テキストメッセージが、識別された言語であるという指示を1つ以上の分類器から出力することを含み得る。当該指示は信頼スコアを含み得る。   In some cases, the language detection test includes a language detection method and one or more classifiers. Language detection methods may include, for example, a dictionary-based language detection test, an n-gram language detection test, an alphabet-based language detection test, a script-based language detection test, a user language profile language detection test, or any combination thereof . The one or more classifiers may include, for example, a supervised learning model, a partially supervised learning model, an unsupervised learning model, interpolation, or any combination thereof. In various implementations, the method includes processing a third set of scores using one or more classifiers to identify languages in the sanitized text message. The method may include outputting an indication from one or more classifiers that the sanitized text message is in the identified language. The indication may include a confidence score.

別の局面において、この開示の主題は、メッセージ中の言語を識別するための、コンピュータによって実現されるシステムに関する。上記システムは、サニタイザモジュールと、グルーパモジュールと、言語検出器モジュールとを含む。サニタイザモジュールは、テキストメッセージを取得するとともに、サニタイズ済テキストメッセージを生成するよう、テキストメッセージから非言語文字を除去する。グルーパモジュールは、サニタイズ済テキストメッセージ中に存在するアルファベットおよびスクリプトのうちの少なくとも1つを検出し、グルーパモジュールは、各々がサニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語についてのアルファベットを含む尤度を表わすスコアの第1のセットを決定するためにアルファベットベースの言語検出テストを行なうことと、各々がサニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語についてのスクリプトを含む尤度を表わすスコアの第2のセットを決定するためにスクリプトベースの言語検出テストを行なうこととのうちの少なくとも1つを含む動作を実行するように動作可能である。言語検出器モジュールは、スコアの第1のセットと、スコアの第2のセットと、スコアの第1および第2のセットの組み合わせとのうちの少なくとも1つに基づき、サニタイズ済テキストメッセージ中の言語を識別する。   In another aspect, the subject matter of this disclosure relates to a computer-implemented system for identifying a language in a message. The system includes a sanitizer module, a grouper module, and a language detector module. The sanitizer module obtains the text message and removes non-language characters from the text message so as to generate a sanitized text message. The grouper module detects at least one of alphabets and scripts that are present in the sanitized text message, and the grouper module detects that each sanitized text message is for one of a plurality of different languages. Performing an alphabet-based language detection test to determine a first set of scores representing likelihoods including alphabets, each of which a sanitized text message is scripted for one of a plurality of different languages. Operable to perform an operation including at least one of performing a script-based language detection test to determine a second set of scores representing the likelihood of including. The language detector module is configured to determine a language in the sanitized text message based on at least one of a first set of scores, a second set of scores, and a combination of the first and second sets of scores. Identify

さまざまな例では、非言語文字は絵文字および/または数字を含む。組み合わせは、スコアの第1および第2のセットの間の補間を含み得る。グルーパモジュールは、スコアの第1のセットと、スコアの第2のセットと、スコアの第1および第2のセットの組み合わせとのうちの少なくとも1つに基づき、複数の言語検出器モジュールから言語検出器モジュールを選択することを含む動作を実行するように動作可能であり得る。言語検出器モジュールは、言語検出方法モジュールを含み得る。言語検出方法モジュールは、各々がサニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語を含む尤度を表わすスコアの第3のセットを生成するためにサニタイズ済テキストメッセージに対して言語検出テストを行なうことを含む動作を実行するように動作可能であり得る。言語検出テストは、たとえば、辞書ベースの言語検出テスト、nグラム言語検出テスト、アルファベットベースの言語検出テスト、スクリプトベースの言語検出テスト、ユーザ言語プロファイル言語検出テスト、または、その任意の組み合わせを含み得る。   In various examples, non-language characters include pictographs and / or numbers. The combination may include interpolation between the first and second sets of scores. The grouper module is configured to generate language from a plurality of language detector modules based on at least one of a first set of scores, a second set of scores, and a combination of the first and second sets of scores. It may be operable to perform an operation that includes selecting a detector module. The language detector module may include a language detection method module. The language detection method module is a language detection test for the sanitized text message to generate a third set of scores each representing a likelihood that the sanitized text message includes one of a plurality of different languages. May be operable to perform operations including performing. The language detection test can include, for example, a dictionary-based language detection test, an n-gram language detection test, an alphabet-based language detection test, a script-based language detection test, a user language profile language detection test, or any combination thereof. .

いくつかの実現例では、言語検出器モジュールは、サニタイズ済テキストメッセージ中の言語を識別するために、1つ以上の分類器を使用してスコアの第3のセットを処理することを含む動作を実行するように動作可能な分類器モジュールを含む。1つ以上の分類器はたとえば、教師あり学習モデル、部分教師あり学習モデル、教師なし学習モデル、補間、または、その任意の組み合わせを含み得る。分類器モジュールは、サニタイズ済テキストメッセージが識別された言語であるという指示を出力することを含む動作を実行するように動作可能であり得る。上記指示は、信頼スコアを含み得る。   In some implementations, the language detector module includes an operation that includes processing a third set of scores using one or more classifiers to identify a language in the sanitized text message. A classifier module operable to execute is included. The one or more classifiers may include, for example, a supervised learning model, a partially supervised learning model, an unsupervised learning model, interpolation, or any combination thereof. The classifier module may be operable to perform operations that include outputting an indication that the sanitized text message is in the identified language. The indication may include a confidence score.

別の局面において、この開示の主題は物品に関する。上記物品は、命令を格納する一時的でないコンピュータ読取可能媒体を含み、命令は、1つ以上のコンピュータによって実行されると、コンピュータに、テキストメッセージを取得することと、サニタイズ済テキストメッセージを生成するよう、テキストメッセージから非言語文字を除去することと、サニタイズ済テキストメッセージ中に存在するアルファベットおよびスクリプトのうちの少なくとも1つを検出することとを含む動作を実行させ、検出することは、(i)各々がサニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語についてのアルファベットを含む尤度を表わすスコアの第1のセットを決定するためにアルファベットベースの言語検出テストを行なうことと、(ii)各々がサニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語についてのスクリプトを含む尤度を表わすスコアの第2のセットを決定するためにスクリプトベースの言語検出テストを行なうこととのうちの少なくとも1つを含む。上記動作はさらに、スコアの第1のセットと、スコアの第2のセットと、スコアの第1および第2のセットの組み合わせとのうちの少なくとも1つに基づき、サニタイズ済テキストメッセージ中の言語を識別することを含む。   In another aspect, the subject matter of this disclosure relates to an article. The article includes a non-transitory computer readable medium storing instructions, wherein the instructions, when executed by one or more computers, obtain a text message and generate a sanitized text message upon the computer. Performing and detecting operations including removing non-linguistic characters from the text message and detecting at least one of alphabets and scripts present in the sanitized text message (i Performing an alphabet-based language detection test to determine a first set of scores each representing a likelihood that the sanitized text message includes an alphabet for one of a plurality of different languages; ii) each sanitized text message At least one of performing a script-based language detection test to determine a second set of scores representing a likelihood that the script includes a script for one of a plurality of different languages. . The operation further determines the language in the sanitized text message based on at least one of a first set of scores, a second set of scores, and a combination of the first and second sets of scores. Including identifying.

この主題の所与の局面に関して記載される例の要素は、主題の別の局面のさまざまな例において使用され得る。たとえば、1つの独立項に従属する従属項の特徴は、他の独立項のいずれかの装置、システムおよび/または方法において使用され得るということが考えられる。   The example elements described with respect to a given aspect of the subject matter may be used in various examples of other aspects of the subject matter. For example, it is contemplated that a dependent claim feature that is dependent on one independent claim may be used in any of the devices, systems, and / or methods of the other independent claim.

言語検出を実行するための例示的なシステムの図である。FIG. 2 is a diagram of an example system for performing language detection. テキストメッセージ中の言語を検出する例示的な方法のフローチャートである。2 is a flowchart of an exemplary method for detecting a language in a text message. テキストメッセージ中の言語を検出する例示的なnグラム方法のフローチャートである。3 is a flowchart of an exemplary n-gram method for detecting a language in a text message. テキストメッセージ中の言語を検出する例示的な辞書ベースの方法のフローチャートである。3 is a flowchart of an exemplary dictionary-based method for detecting a language in a text message. テキストメッセージ中の言語を検出する例示的なアルファベットベースの方法のフローチャートである。3 is a flowchart of an exemplary alphabet-based method for detecting a language in a text message. テキストメッセージ中の言語を検出する例示的なスクリプトベースの方法のフローチャートである。3 is a flowchart of an exemplary script-based method for detecting a language in a text message. テキストメッセージ中の言語を検出する例示的なユーザ言語プロファイル方法のフローチャートである。3 is a flowchart of an exemplary user language profile method for detecting a language in a text message. 例示的な言語検出モジュールの概略図である。FIG. 3 is a schematic diagram of an exemplary language detection module. 例示的な分類器モジュールの概略図である。FIG. 2 is a schematic diagram of an exemplary classifier module. 図7の言語検出モジュールおよび図8の分類器モジュールを使用して、テキストメッセージ中の言語を検出する例示的な方法のフローチャートである。10 is a flowchart of an exemplary method for detecting a language in a text message using the language detection module of FIG. 7 and the classifier module of FIG. テキストメッセージ中の言語を検出する例示的な方法のフローチャートである。2 is a flowchart of an exemplary method for detecting a language in a text message. テキストメッセージ中の言語を検出する例示的な方法のフローチャートである。2 is a flowchart of an exemplary method for detecting a language in a text message. テキストメッセージ中の言語を検出する例示的な方法のフローチャートである。2 is a flowchart of an exemplary method for detecting a language in a text message. テキストメッセージ中の言語を検出するための例示的なシステムの概略図である。1 is a schematic diagram of an exemplary system for detecting a language in a text message. FIG. テキストメッセージ中の言語を検出する例示的な方法のフローチャートである。2 is a flowchart of an exemplary method for detecting a language in a text message. テキストメッセージ中の言語を検出する例示的な方法のフローチャートである。2 is a flowchart of an exemplary method for detecting a language in a text message.

詳細な説明
一般に、本願明細書において記載される言語検出システムおよび言語検出方法は、メッセージについての言語情報(たとえばクライアントデバイスからのキーボード情報)が存在しないか、異常な形式か、または信頼できない場合に、テキストメッセージ中の言語を識別するために使用され得る。当該システムおよび方法は、テキストメッセージをある言語から別の言語に翻訳するために使用される言語翻訳方法の精度を改善する。言語翻訳は一般に、ソース言語が正確に識別されることを必要とする。そうでなければ、結果として得られる翻訳は不正確であり得る。
DETAILED DESCRIPTION Generally, the language detection system and language detection method described herein is used when language information about a message (eg, keyboard information from a client device) does not exist, is in an abnormal format, or is not reliable Can be used to identify the language in the text message. The system and method improves the accuracy of language translation methods used to translate text messages from one language to another. Language translation generally requires that the source language be accurately identified. Otherwise, the resulting translation may be inaccurate.

図1Aは、テキストメッセージまたはオーディオメッセージのようなメッセージ中の言語を検出するための例示的なシステム10を示す。サーバシステム12は、メッセージ分析および言語検出機能を提供する。サーバシステム12は、たとえば、1つ以上の地理的な位置における1つ以上のデータセンタ14にて展開され得るソフトウェアコンポーネントおよびデータベースを含む。サーバシステム12のソフトウェアコンポーネントは、検出モジュール16、分類器モジュール18、および、マネージャモジュール20を含み得る。ソフトウェアコンポーネントは、同じまたは異なる個々のデータ処理装置上で実行され得るサブコンポーネントを含み得る。サーバシステム12のデータベースは、訓練データ22、辞書24、アルファベット26、スクリプト28、および、ユーザプロファイル情報30を含み得る。データベースは、1つ以上の物理的なストレージシステムに存在し得る。ソフトウェアコンポーネントおよびデータはさらに以下で説明される。   FIG. 1A shows an exemplary system 10 for detecting a language in a message, such as a text message or an audio message. Server system 12 provides message analysis and language detection functions. Server system 12 includes, for example, software components and databases that can be deployed at one or more data centers 14 at one or more geographic locations. The software components of the server system 12 may include a detection module 16, a classifier module 18, and a manager module 20. Software components may include subcomponents that may be executed on the same or different individual data processing devices. The database of server system 12 may include training data 22, dictionary 24, alphabet 26, script 28, and user profile information 30. A database may reside in one or more physical storage systems. Software components and data are further described below.

ユーザがサーバシステム12へメッセージを提供することを可能にするよう、ウェブベースのアプリケーションのようなアプリケーションがエンドユーザアプリケーションとして提供され得る。エンドユーザアプリケーションは、パーソナルコンピュータ34、スマートフォン36、タブレットコンピュータ38およびラップトップコンピュータ40のようなクライアントデバイスのユーザによって、ネットワーク32を通じてアクセスされ得る。他のクライアントデバイスも可能である。ユーザメッセージには、メッセージを作成するために使用されるキーボード、クライアントデバイスおよび/またはオペレーティングシステムに関する情報といった、メッセージを作成するために使用されるデバイスに関する情報が伴い得る。   An application, such as a web-based application, can be provided as an end user application to allow a user to provide messages to the server system 12. End user applications may be accessed over the network 32 by users of client devices such as personal computers 34, smartphones 36, tablet computers 38 and laptop computers 40. Other client devices are possible. The user message may be accompanied by information about the device used to create the message, such as information about the keyboard, client device and / or operating system used to create the message.

図1Aは、データベース(すなわち訓練データ22、辞書24、アルファベット26、スクリプト28およびユーザプロファイル情報30)に接続されている分類器モジュール18およびマネージャモジュール20を示すが、分類器モジュール18および/またはマネージャモジュール20は必ずしも、データベースのうちのいくつかまたはすべてに接続されない。一般に、分類器モジュール18は検出モジュール16から入力を受け取り得、マネージャモジュール20は分類器モジュール18から入力を受け取り得る。他の入力は、分類器モジュール18および/またはマネージャモジュール20によって受け取られる必要はない。   FIG. 1A shows classifier module 18 and manager module 20 connected to a database (ie, training data 22, dictionary 24, alphabet 26, script 28 and user profile information 30), but classifier module 18 and / or manager Module 20 is not necessarily connected to some or all of the databases. In general, classifier module 18 may receive input from detection module 16 and manager module 20 may receive input from classifier module 18. Other inputs need not be received by the classifier module 18 and / or the manager module 20.

図1Bは、メッセージ中の言語を検出するためにシステム10を使用する例示的な方法100を示す。方法100は、ユーザによって生成されたテキストメッセージを受け取るまたは取得することにより開始する(ステップ102)。テキストメッセージは、各々がメッセージ中に存在する言語または複数の言語の指示を提供する1つ以上の言語検出方法(たとえば検出モジュール16による)を使用して分析される(ステップ104)。その後、言語検出方法からの出力は、メッセージ中に存在する言語のさらに別の指示を提供する1つ以上の分類器(たとえば分類器モジュール18による)を使用して組み合わされる(ステップ106)。1つ以上の分類器はたとえば、教師あり学習モデル、部分教師あり学習モデル、教師なし学習モデル、および/または、補間を含み得る。他の分類器も可能である。その後、1つ以上の分類器からの出力は、(たとえば、マネージャモジュール20を使用して)メッセージ中の言語を決定する(ステップ108)よう使用される。   FIG. 1B shows an exemplary method 100 for using the system 10 to detect a language in a message. The method 100 begins by receiving or obtaining a text message generated by a user (step 102). The text message is analyzed using one or more language detection methods (eg, by detection module 16) that each provide an indication of the language or languages that are present in the message (step 104). The output from the language detection method is then combined using one or more classifiers (eg, by the classifier module 18) that provide further indications of the languages present in the message (step 106). The one or more classifiers may include, for example, a supervised learning model, a partially supervised learning model, an unsupervised learning model, and / or interpolation. Other classifiers are possible. The output from the one or more classifiers is then used to determine (step 108) the language in the message (eg, using manager module 20).

いくつかの実現例において、上記1つ以上の分類器からの言語指示は、計算された信頼スコアおよび/または言語ドメインに従ってマネージャモジュール20によって選択され得る。たとえば、分類器は、言語予測に関連付けられる信頼度を示す信頼スコアを計算し得る。付加的または代替的には、ある分類器出力は、ユーザまたはメッセージに関連付けられる言語ドメインに従って選択され得る。たとえば、メッセージがコンピュータゲーミング環境から生じた場合、特定の分類器出力が、最も正確な言語予測を提供するものとして選択され得る。同様に、メッセージがスポーツ(たとえばスポーツイベントに関する)のコンテキストから生じた場合、異なる分類器出力が、スポーツ言語ドメインにより適切なものとして選択され得る。他の可能な言語ドメインは、たとえば、ニュース、国会議事録、政治、健康、旅行、ウェブページ、新聞記事、および、マイクロブログメッセージなどを含む。一般に、(たとえば分類器からの)ある言語検出方法または言語検出方法の組み合わせは、他の言語ドメインと比較すると、ある言語ドメインについてはより正確になる。いくつかの実現例では、当該ドメインは、メッセージにおけるドメインボキャブラリからの単語の存在に基づいて決定され得る。たとえば、コンピュータゲーミングについてのドメインボキャブラリは、ゲーマーによって使用される一般的な俗語を含み得る。   In some implementations, language instructions from the one or more classifiers may be selected by the manager module 20 according to the calculated confidence score and / or language domain. For example, the classifier may calculate a confidence score that indicates the confidence associated with the language prediction. Additionally or alternatively, certain classifier outputs may be selected according to the language domain associated with the user or message. For example, if the message originates from a computer gaming environment, a particular classifier output can be selected as providing the most accurate language prediction. Similarly, if the message originates from the context of a sport (eg, related to a sporting event), a different classifier output can be selected as appropriate by the sports language domain. Other possible language domains include, for example, news, parliamentary minutes, politics, health, travel, web pages, newspaper articles, and microblog messages. In general, a language detection method or combination of language detection methods (eg, from a classifier) is more accurate for a language domain when compared to other language domains. In some implementations, the domain can be determined based on the presence of words from the domain vocabulary in the message. For example, a domain vocabulary for computer gaming may include common slang used by gamers.

検出モジュール16によって使用される言語検出方法は、たとえば、nグラム方法(たとえばバイトnグラム方法)、辞書ベースの方法、アルファベットベースの方法、スクリプトベースの方法、および、ユーザ言語プロファイル方法を含み得る。他の言語検出方法も可能である。これらの言語検出方法の各々は、メッセージに存在する言語を検出するために使用され得る。各方法からの出力はたとえば、メッセージ中の可能性のある言語の各々に関連付けられる確率のセットまたはベクトルであり得る。いくつかの場合では、言語検出方法のうちの2つ以上が、パラレルコンピューティングを使用して同時に実行され得、これにより、計算時間を大幅に低減することができる。   Language detection methods used by detection module 16 may include, for example, n-gram methods (eg, byte n-gram methods), dictionary-based methods, alphabet-based methods, script-based methods, and user language profile methods. Other language detection methods are possible. Each of these language detection methods can be used to detect the language present in the message. The output from each method can be, for example, a set or vector of probabilities associated with each of the possible languages in the message. In some cases, two or more of the language detection methods can be performed simultaneously using parallel computing, which can significantly reduce computation time.

1つの実現例では、バイトnグラム方法が、言語を検出するために単語または文字のnグラムの代わりに、バイトnグラムを使用する。バイトnグラム方法は好ましくは、多項イベントモデルを有するナイーブベイズ分類器(naive Bayes classifier)を使用して、バイトnグラムの混合(たとえば1≦n≦4)に対して訓練される。当該モデルは好ましくは、新聞記事、オンラインゲーム、ウェブページおよびマイクロブログメッセージを含むドメインの多様なセットに亘ってモデルのデフォルト構成が正確であるように、異なる言語ドメインからのデータに一般化する。言語識別タスクに関する情報は、さまざまなドメインから統合され得る。   In one implementation, the byte n-gram method uses byte n-grams instead of word or character n-grams to detect language. The byte n-gram method is preferably trained for a mixture of byte n-grams (eg, 1 ≦ n ≦ 4) using a naive Bayes classifier with a multinomial event model. The model preferably generalizes to data from different language domains so that the default configuration of the model is accurate across a diverse set of domains including newspaper articles, online games, web pages and microblog messages. Information about language identification tasks can be integrated from various domains.

高精度を達成するタスクは、インドメイン訓練データ(in-domain training data)が利用可能である従来のテキストカテゴリ分類セッティングにおける言語識別の場合は相対的に容易であり得る。このタスクは、別個の言語ドメインからのデータを分類またはカテゴライズするために1つの言語ドメインのための学習済モデルパラメータを使用することを試みる場合、より困難になり得る。この問題は、言語識別のタスクに関連する重要な特徴に注目することにより対処され得る。これはたとえば、情報ゲイン(information gain)と呼ばれる概念に基づき得る。情報ゲインは、分割基準として決定木のために元々導入され、その後テキストカテゴリ分類において特徴を選択するのに有用であると分かったものである。ある実現例では、ドメインおよび言語に対する情報ゲインにおける差を表わす検出スコアが計算され得る。高い検出スコアを有する特徴は、ドメインに関する情報を提供することなく言語に関する情報を提供し得る。単純さのために、情報ゲインが計算される前に、ターム頻度(term-frequency)に基づく特徴選択によって、候補の特徴セットが枝刈りされ得る。   The task of achieving high accuracy can be relatively easy in the case of language identification in traditional text category classification settings where in-domain training data is available. This task can be more difficult when attempting to use learned model parameters for one language domain to classify or categorize data from separate language domains. This problem can be addressed by noting important features associated with language identification tasks. This can be based, for example, on a concept called information gain. Information gain was originally introduced for decision trees as a splitting criterion and was subsequently found useful for selecting features in text category classification. In one implementation, a detection score representing the difference in information gain for the domain and language may be calculated. A feature with a high detection score can provide information about the language without providing information about the domain. For simplicity, candidate feature sets can be pruned by feature selection based on term-frequency before the information gain is calculated.

図2を参照して、例示的なバイトnグラム方法200は、訓練データ22を使用して当該方法を訓練することにより開始する。たとえば、当該方法は、多項イベントモデルを有するナイーブベイズ分類器を使用して、バイトnグラムの混合に対して訓練され得る。訓練データ22は好ましくは、多くの様々な言語について収集され(ステップ202)、各言語について利用可能なデータ量が均一になるように調節される。訓練データ22の小さい部分が別途テストセットとしてセットされる(ステップ204)。訓練データ22がひとたび選択されると、バイトnグラムモデルは、適切なスムージングおよびバックオフ技術により、訓練データ22上で訓練される(ステップ206)。モデルへの入力特徴は各入力文からのバイトストリームであり、また、当該モデルは、ソース言語ラベルがこれらの文について既知であるので、所与の言語に典型的なバイトシーケンスを学習するためにそのパラメータを調節する。その後、最初は分離されたテストセットが、訓練されたモデルに基づいて言語ラベルを予測する(ステップ208)ために使用される。予測の精度は、このバイトnグラム言語識別システムの性能を与える。いくつかの場合、各言語ドメインのために、上記ドメインについて多数の言語に亘ってデータを収集することによってそのようなバイトnグラムシステムを訓練するのは難しい。この困難さは、ドメイン当たりの十分なデータの欠如から発生する。従って、これらのバイトnグラムシステムは典型的に、任意の特定のドメインではなく一般的なドメインに供するように訓練される。訓練済モデルは、中間マシンパラメータと共にプログラムへとコンパイルされ得る(ステップ210)。当該プログラムは、汎用の言語識別システムとして機能し得る。   With reference to FIG. 2, an exemplary byte n-gram method 200 begins by training the method using training data 22. For example, the method can be trained on a mixture of byte n-grams using a naive Bayes classifier with a multinomial event model. Training data 22 is preferably collected for many different languages (step 202) and adjusted so that the amount of data available for each language is uniform. A small portion of the training data 22 is set as a separate test set (step 204). Once the training data 22 has been selected, the byte n-gram model is trained on the training data 22 with appropriate smoothing and backoff techniques (step 206). The input feature to the model is the byte stream from each input sentence, and the model knows the source language labels for these sentences so that it can learn the typical byte sequence for a given language. Adjust its parameters. The initially isolated test set is then used to predict language labels based on the trained model (step 208). The accuracy of the prediction gives the performance of this byte n-gram language identification system. In some cases, for each language domain, it is difficult to train such a byte n-gram system by collecting data across multiple languages for the domain. This difficulty arises from the lack of sufficient data per domain. Thus, these byte n-gram systems are typically trained to serve the general domain rather than any particular domain. The trained model can be compiled into a program with intermediate machine parameters (step 210). The program can function as a general-purpose language identification system.

一般に、辞書ベースの言語検出方法は、辞書における単語または当該言語に関連付けられる他の単語リストをルックアップすることによって、各言語に属するトークンまたは単語の数をカウントする。メッセージ中に最も多くの単語を有する言語がベストの言語として選択される。複数のベストの言語が存在する場合には、これらのベストの言語のうちより頻繁またはより一般的に使用されているものが選択され得る。言語辞書は辞書データベース24に格納され得る。   In general, dictionary-based language detection methods count the number of tokens or words belonging to each language by looking up words in the dictionary or other word lists associated with the language. The language with the most words in the message is selected as the best language. If there are multiple best languages, one of these best languages that is used more frequently or more commonly can be selected. The language dictionary can be stored in the dictionary database 24.

図3は、例示的な辞書ベースの言語検出方法300のフローチャートである。テキストメッセージが提供され(ステップ302)、当該テキストメッセージについての可能性のある言語のセットがたとえば検出モジュール16を使用して識別される(ステップ304)。その後、第1の可能性のある言語が当該セットから選択される(ステップ306)。可能性のある言語のための辞書に存在するテキストメッセージ中の単語がカウントされる(ステップ308)。当該セットからのさらに別の可能性のある言語がまだ考慮されていない場合(ステップ310)、新しい可能性のある言語が選択され(ステップ312)、ステップ308が繰り返される。当該セットからのすべての可能性のある言語がひとたび考慮されると、テキストメッセージ中に最も多くの単語を有する言語が、メッセージ中の言語であると識別され得る(ステップ314)。代替的または付加的には、当該方法は、上記セットにおける各言語について、言語がメッセージに存在する尤度を計算するために使用され得る。たとえば、辞書ベースの方法からの出力は、セット中の各言語についての確率のベクトルであり得る。   FIG. 3 is a flowchart of an exemplary dictionary-based language detection method 300. A text message is provided (step 302) and a set of possible languages for the text message is identified using, for example, the detection module 16 (step 304). A first possible language is then selected from the set (step 306). The words in the text message that are present in the dictionary for the possible languages are counted (step 308). If yet another possible language from the set has not yet been considered (step 310), a new potential language is selected (step 312) and step 308 is repeated. Once all possible languages from the set are considered, the language with the most words in the text message can be identified as the language in the message (step 314). Alternatively or additionally, the method can be used to calculate the likelihood that a language is present in the message for each language in the set. For example, the output from the dictionary-based method can be a vector of probabilities for each language in the set.

特に短文の場合に辞書ベースの言語検出方法の精度を保証するために、正式な単語に加えて、非正式な単語またはチャット単語(たとえば省略形、頭文字、俗語および不敬語)を含む辞書を使用することが好ましい。非正式な単語は、ショートテキスト通信およびチャットルームで一般的に使用されている。新しい非正式な単語が現れて使用されるので、辞書は非正式な単語を進行ベースで含めるように増補されるのが好ましい。   To ensure the accuracy of dictionary-based language detection methods, especially in the case of short sentences, a dictionary containing informal words or informal words or chat words (eg abbreviations, acronyms, slang and profane words) It is preferable to use it. Informal words are commonly used in short text communication and chat rooms. As new informal words appear and are used, the dictionary is preferably augmented to include informal words on a progressive basis.

アルファベットベースの方法は一般に、各言語のアルファベットについての文字カウントに基づいており、また、多くの言語がユニークなアルファベットまたは文字の異なるセットを有するという観察に依拠する。たとえばロシア語、英語、韓国語、および日本語の各々は、異なるアルファベットを使用する。アルファベットベースの方法は、いくつかの言語(たとえば、ラテン語のような、同様のアルファベットを使用する言語)を正確に識別することが不可能であり得るが、アルファベットベースの方法は概してある言語を迅速に検出し得る。いくつかの場合、本願明細書において議論されるように、アルファベットベースの方法を(たとえば分類器を使用する)1つ以上の他の言語検出方法と組み合わせて使用することが好ましい。言語アルファベットは、アルファベットデータベース26に格納され得る。   Alphabet-based methods are generally based on character counts for each language alphabet and rely on the observation that many languages have different sets of unique alphabets or characters. For example, each of Russian, English, Korean, and Japanese uses a different alphabet. While alphabet-based methods may not be able to accurately identify some languages (for example, languages that use a similar alphabet, such as Latin), alphabet-based methods generally quickly Can be detected. In some cases, as discussed herein, it is preferred to use alphabet-based methods in combination with one or more other language detection methods (eg, using a classifier). The language alphabet may be stored in the alphabet database 26.

図4は、例示的なアルファベットベースの言語検出方法400のフローチャートである。テキストメッセージが提供され(ステップ402)、テキストメッセージについて可能性のある言語のセットがたとえば検出モジュール16を使用して識別される(ステップ404)。その後、第1の可能性のある言語が当該セットから選択される(ステップ406)。当該可能性のある言語についてのアルファベットに存在する、テキストメッセージ中の文字がカウントされる(ステップ408)。当該セットからの付加的な可能性のある言語がまだ考慮されていない場合(ステップ410)、新しい可能性のある言語が選択され(ステップ412)、ステップ408が繰り返される。当該セットからのすべての可能性のある言語がひとたび考慮されると、テキストメッセージ中の最も多い文字を有する言語がメッセージ中の言語として識別され得る(ステップ414)。代替的または付加的には、アルファベットベースの方法は、上記セットにおける各言語について、言語がメッセージに存在する尤度を計算するために使用され得る。たとえば、アルファベットベースの方法からの出力は、上記セットにおける各言語についての確率のベクトルであり得る。   FIG. 4 is a flowchart of an exemplary alphabet-based language detection method 400. A text message is provided (step 402) and a set of possible languages for the text message is identified using, for example, the detection module 16 (step 404). A first possible language is then selected from the set (step 406). The characters in the text message that are present in the alphabet for the possible language are counted (step 408). If additional potential languages from the set have not yet been considered (step 410), a new potential language is selected (step 412) and step 408 is repeated. Once all possible languages from the set are considered, the language with the most characters in the text message can be identified as the language in the message (step 414). Alternatively or additionally, an alphabet-based method can be used for each language in the set to calculate the likelihood that the language is present in the message. For example, the output from the alphabet-based method can be a vector of probabilities for each language in the set.

一般に、スクリプトベースの言語検出方法は、メッセージ中に存在する各可能性のあるスクリプト(たとえばラテンスクリプト、CJKスクリプトなど)についての文字カウントを決定する。スクリプトベースの方法は、たとえば中国語および英語といったように、異なる言語が異なるスクリプトを使用し得るという観察に依拠する。当該方法は好ましくは、スクリプトを使用する言語のリストにスクリプトをマッピングするマッピングを使用する。たとえば、マッピングは、メッセージ中に存在する文字または記号についてのUNICODE値を考慮し得、これらのUNICODE値は、当該メッセージについての対応する言語または可能性のある言語のセットにマッピングされ得る。言語スクリプトおよびUNICODE値または範囲は、スクリプトデータベース28に格納され得る。   In general, script-based language detection methods determine the character count for each possible script (eg, Latin script, CJK script, etc.) present in a message. Script-based methods rely on the observation that different languages can use different scripts, such as Chinese and English. The method preferably uses a mapping that maps the script to a list of languages that use the script. For example, the mapping may consider UNICODE values for characters or symbols present in the message, and these UNICODE values may be mapped to the corresponding language or set of possible languages for the message. Language scripts and UNICODE values or ranges may be stored in the script database 28.

図5を参照して、例示的なスクリプトベースの方法500において、テキストメッセージが提供され(ステップ502)、メッセージ中に存在するスクリプトが、たとえば検出モジュール16を使用して識別される(ステップ504)。その後、各スクリプトに該当する文字の数がカウントされる(ステップ506)。最も多くの数の文字を有するスクリプトが、ベストのスクリプトであると考えられ(ステップ508)、当該ベストのスクリプトに対応する言語が識別される(ステップ510)。当該ベストのスクリプトが1つの言語にのみ対応する場合、その言語がベストの言語であると考えられ得る。別の態様では、ベストのスクリプトが1つより多い言語に対応する場合、さらなる検出を行うよう付加的な言語検出方法が使用され得る。いくつかの実現例では、スクリプトベースの方法からの出力は、メッセージ中の各可能性のある言語についての(たとえばベクトル形式での)確率のセットである。   Referring to FIG. 5, in an example script-based method 500, a text message is provided (step 502), and scripts present in the message are identified using, for example, the detection module 16 (step 504). . Thereafter, the number of characters corresponding to each script is counted (step 506). The script with the largest number of characters is considered the best script (step 508) and the language corresponding to the best script is identified (step 510). If the best script corresponds to only one language, that language may be considered the best language. In another aspect, if the best script corresponds to more than one language, additional language detection methods can be used to perform further detection. In some implementations, the output from the script-based method is a set of probabilities (eg, in vector form) for each possible language in the message.

ユーザ言語プロファイルベースの方法は、さまざまなユーザによって送信された履歴のメッセージを格納するユーザプロファイル情報データベース30を使用する。これらの格納されたメッセージの言語は、各ユーザによって使用される言語を識別するために、たとえば、本願明細書において記載される1つ以上の他の言語検出方法(たとえばバイトnグラム方法)を使用して検出される。たとえば、あるユーザの以前のメッセージのすべてがスペイン語である場合、そのユーザについての言語プロファイルは、当該ユーザの好む言語がスペイン語であることを示し得る。同様に、あるユーザの以前のメッセージが異なる言語の混合である場合、当該ユーザについての言語プロファイルは、異なる言語に関連付けられる確率を示し得る(たとえば英語が80%、フランス語が15%、スペイン語が5%)。一般に、ユーザ言語プロファイルベースの方法は、正確な言語決定を行うための十分な情報がしばしば存在しない非常に短いメッセージに関連付けられる言語検出問題に対応する。そのような場合において、ユーザが以前に使用した言語を使用し続けるだろうと仮定することによって、ユーザの言語プレファレンスがユーザのメッセージ中の言語を予測するために使用され得る。   The user language profile-based method uses a user profile information database 30 that stores historical messages sent by various users. The language of these stored messages uses, for example, one or more other language detection methods (eg, byte n-gram methods) described herein to identify the language used by each user. Is detected. For example, if all of a user's previous messages are in Spanish, the language profile for that user may indicate that the user's preferred language is Spanish. Similarly, if a user's previous message is a mixture of different languages, the language profile for that user may indicate the probability associated with the different languages (eg, 80% for English, 15% for French, Spanish for 5%). In general, user language profile-based methods address language detection problems associated with very short messages that often do not have sufficient information to make accurate language decisions. In such a case, the user's language preference can be used to predict the language in the user's message by assuming that the user will continue to use the previously used language.

図6を参照して、例示的なユーザ言語プロファイル検出方法600は、ユーザの以前のメッセージを格納し(ステップ602)、格納されたメッセージ中に存在する言語を検出する(ステップ604)ことによって開始する。異なる言語がユーザのメッセージに現われる頻度が決定され(ステップ606)、そのような言語についての使用確率が出力される(ステップ608)。   Referring to FIG. 6, an exemplary user language profile detection method 600 starts by storing a user's previous message (step 602) and detecting the language present in the stored message (step 604). To do. The frequency at which different languages appear in the user's message is determined (step 606), and the usage probabilities for such languages are output (step 608).

図7を参照して、さまざまな言語検出方法が検出モジュール16に組み込まれ得る。テキストメッセージが検出モジュール16に入力され得、言語検出方法の1つ以上が、メッセージ中の言語を識別し得る。たとえば、各言語検出方法は、確率のベクトルを提供し得る。当該ベクトル中の各確率は、メッセージ中の可能性のある言語に関連付けられており、メッセージが所与の言語である尤度を表わす。使用される異なる方法およびメッセージにおいて利用可能な情報により、各言語検出方法からの確率は一貫していない場合があり得る。検出モジュール16は、たとえば、nグラム検出方法(たとえばバイトnグラム検出方法200)を実行するためのnグラムモジュール702と、辞書ベースの方法300を実行するための辞書ベースモジュール704と、アルファベットベースの方法400を実行するためのアルファベットベースモジュール706と、スクリプトベースの方法500を実行するためのスクリプトベースモジュール708と、ユーザ言語プロファイル方法600を実行するためのユーザ言語プロファイルモジュール710とを含み得るか、または、利用し得る。付加的または代替的な言語検出方法が、所望のように、検出モジュール16に組み込まれ得る。いくつかの公知の方法はたとえば、単語レベルのnグラム、マルコフモデルおよび予測モデリング技術を使用することを含む。   With reference to FIG. 7, various language detection methods may be incorporated into the detection module 16. A text message may be input to the detection module 16 and one or more of the language detection methods may identify the language in the message. For example, each language detection method may provide a vector of probabilities. Each probability in the vector is associated with a possible language in the message and represents the likelihood that the message is a given language. Due to the different methods used and the information available in the messages, the probability from each language detection method may not be consistent. The detection module 16 includes, for example, an n-gram module 702 for performing an n-gram detection method (eg, byte n-gram detection method 200), a dictionary base module 704 for executing a dictionary-based method 300, and an alphabet-based May include an alphabet-based module 706 for performing the method 400, a script-based module 708 for performing the script-based method 500, and a user language profile module 710 for performing the user language profile method 600; Or it can be used. Additional or alternative language detection methods can be incorporated into the detection module 16 as desired. Some known methods include, for example, using word level n-grams, Markov models and predictive modeling techniques.

検出モジュール16におけるさまざまな言語検出方法からの出力は、分類器モジュール18を使用して組み合わせられ得る。図8を参照して、分類器モジュール18は、補間モジュール802、サポートベクトルマシン(SVM: support vector machines)モジュール804および線形SVMモジュール806を含み得る。   Outputs from various language detection methods in the detection module 16 can be combined using the classifier module 18. With reference to FIG. 8, the classifier module 18 may include an interpolation module 802, a support vector machines (SVM) module 804 and a linear SVM module 806.

補間モジュール802は、2つ以上の言語検出方法からの結果の線形補間を実行するよう使用される。例示目的のために、テキストメッセージの言語は、バイト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}であり得る)。これらの2つの方法の結果同士の間を補間するために、バイトnグラム方法からの出力は第1の重みを乗算され、辞書ベースの方法からの出力は第2の重みを乗算される。第1および第2の重みは足して1になる。その後、2つの方法からの加重された出力が、一緒に加算される。たとえば、バイトnグラムの結果に0.6の重みが与えられる場合、辞書ベースの結果には0.4の重みが与えられ、これら2つの方法同士の間の補間は、{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}となる。他の重み付けも可能である。   Interpolation module 802 is used to perform linear interpolation of results from two or more language detection methods. For illustrative purposes, the language of the text message can be determined by interpolating between the results from the byte n-gram method and the dictionary-based method. For the chat message “lol gtg”, the byte n-gram method has an English likelihood of 0.3, a French likelihood of 0.4, and a Polish likelihood of 0.3. (E.g., the output from the byte n-gram method can be {en: 0.3, fr: 0.4, pl: 0.3})). The dictionary-based method may determine that the likelihood of English is 0.1, the likelihood of French is 0.2, and the likelihood of Polish is 0.7 (eg, the output is {en : 0.1, fr: 0.2, pl: 0.7}). To interpolate between the results of these two methods, the output from the byte n-gram method is multiplied by a first weight and the output from the dictionary-based method is multiplied by a second weight. The first and second weights are added to 1. The weighted outputs from the two methods are then added together. For example, if a byte n-gram result is given a weight of 0.6, the dictionary-based result is given a weight of 0.4, and the interpolation between these two methods is {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}. Other weightings are possible.

一般に、2つ以上の値の間を補間するための最適な重みは、試行錯誤によって数的に決定され得る。メッセージの所与のセットについての重みのベストのセットを識別するために、異なる重みが試みられ得る。いくつかの場合では、重みは、メッセージ中の単語または文字の数の関数であり得る。代替的または付加的には、重みは、メッセージの言語ドメインに依存し得る。たとえば、ゲーミング環境についての最適な重みはスポーツ環境についての最適な重みと異なり得る。バイトnグラム方法および辞書ベースの方法の組み合わせの場合、バイトnグラム方法に対する0.1の重みと、辞書ベースの方法に対する0.9の重みとを用いて、良好な結果が得られ得る。   In general, the optimal weight for interpolating between two or more values can be determined numerically by trial and error. Different weights can be tried to identify the best set of weights for a given set of messages. In some cases, the weight can be a function of the number of words or characters in the message. Alternatively or additionally, the weight may depend on the language domain of the message. For example, the optimal weight for a gaming environment may differ from the optimal weight for a sports environment. For the combination of the byte n-gram method and the dictionary-based method, good results may be obtained with a weight of 0.1 for the byte n-gram method and a weight of 0.9 for the dictionary-based method.

SVMモジュール804は、言語データを分析して言語パターンを認識する教師あり学習モデルであり得るか、または、当該教師あり学習モデルを含み得る。たとえば、SVMモジュール804は、マルチクラスSVM分類器であり得る。英語のSVM分類器の場合、特徴ベクトルは上記の2つの区分(distribution)の連結であり得る(すなわち{en:0.3,fr:0.4,pl:0.3,en:0.1,fr:0.2,pl:0.7})。SVM分類器は好ましくは、ラベル付けされた訓練データで訓練される。訓練済モデルは、入力のための予測器として機能する。言語検出の場合に選択される特徴は、たとえばバイト、単語または句のシーケンスであり得る。入力訓練ベクトルは、多次元空間へマッピングされ得る。次いで、SVMアルゴリズムは、これらの次元間の最適な分離超平面を識別するためにカーネルを使用し得、これにより、(この場合には)言語を予測する判別能力がアルゴリズムに与えられることになる。カーネルはたとえば、線形カーネル、多項式カーネル、または、放射基底関数(RBF:radial basis function)カーネルであり得るが、他の好適なカーネルも可能である。SVM分類器のための好ましいカーネルはRBFカーネルである。訓練データを使用してSVM分類器を訓練した後、分類器はすべての可能性のある言語のうちのベストの言語を出力するよう使用され得る。   The SVM module 804 can be a supervised learning model that analyzes language data and recognizes language patterns, or can include the supervised learning model. For example, the SVM module 804 can be a multi-class SVM classifier. In the case of an English SVM classifier, the feature vector can be a concatenation of the above two distributions (ie {en: 0.3, fr: 0.4, pl: 0.3, en: 0.1 , Fr: 0.2, pl: 0.7}). The SVM classifier is preferably trained with labeled training data. The trained model functions as a predictor for input. The feature selected in the case of language detection can be, for example, a sequence of bytes, words or phrases. The input training vector can be mapped to a multidimensional space. The SVM algorithm may then use the kernel to identify the optimal separation hyperplane between these dimensions, which gives the algorithm the discriminatory ability to predict the language (in this case). . The kernel can be, for example, a linear kernel, a polynomial kernel, or a radial basis function (RBF) kernel, although other suitable kernels are possible. The preferred kernel for the SVM classifier is the RBF kernel. After training the SVM classifier using the training data, the classifier can be used to output the best language of all possible languages.

訓練データは、たとえば、異なる言語検出方法からの出力ベクトルであり得るか、または、当該出力ベクトルを含み得、たとえば異なるメッセージ長さ、言語ドメインおよび/または言語を有する多数のメッセージの場合、正しい言語の指示であり得るか、または当該指示を含み得る。訓練データは、各メッセージ中の言語が既知である多数のメッセージを含み得る。   The training data can be, for example, output vectors from different language detection methods, or can include such output vectors, eg, for multiple messages with different message lengths, language domains and / or languages, the correct language Or may include such instructions. The training data may include a number of messages where the language in each message is known.

線形SVMモジュール806は、大きなスケールの線形分類器であり得るか、または、当該線形分類器を含み得る。線形カーネルを有するSVM分類器は、線形回帰のような他の線形分類器よりも良好に動作し得る。線形SVMモジュール806は、カーネルレベルでSVMモジュール804と異なる。多項式モデルの方が線形モデルよりも良好に機能する場合があり、その逆の場合もある。最適なカーネルは、メッセージデータの言語ドメインおよび/またはデータの性質に依存し得る。   The linear SVM module 806 may be a large scale linear classifier or may include the linear classifier. An SVM classifier with a linear kernel may perform better than other linear classifiers such as linear regression. The linear SVM module 806 differs from the SVM module 804 at the kernel level. The polynomial model may perform better than the linear model, and vice versa. The optimal kernel may depend on the language domain of the message data and / or the nature of the data.

本願明細書において記載されるシステムおよび方法によって使用される他の可能性のある分類器は、たとえば、決定木学習、相関ルール学習、人工ニューラルネットワーク、帰納的論理プログラミング、ランダムフォレスト、クラスタリング、ベイジアンネットワーク、強化学習、表示学習、類似度学習および距離学習(similarity and metric learning)、ならびに、スパース辞書学習(sparse dictionary learning)を含む。これらの分類器の1つ以上または他の分類器が、分類器モジュール18に統合され得るか、および/または、分類器モジュール18の部分を形成し得る。   Other possible classifiers used by the systems and methods described herein include, for example, decision tree learning, association rule learning, artificial neural networks, inductive logic programming, random forest, clustering, Bayesian networks , Reinforcement learning, display learning, similarity learning and metric learning, and sparse dictionary learning. One or more of these classifiers or other classifiers may be integrated into the classifier module 18 and / or may form part of the classifier module 18.

図9を参照して、例示的な方法900は、メッセージ中の言語を検出するために検出モジュール16、分類器モジュール18およびマネージャモジュール20を使用する。メッセージは検出モジュール16に提供または送達される(ステップ902)。メッセージには、メッセージに関する情報および/またはメッセージを生成したユーザに関する情報が伴い得る。当該情報は、たとえば、ユーザのための識別番号、メッセージを生成するためにユーザによって使用されるキーボードに関する情報、および/または、メッセージを生成するためにユーザによって使用されるソフトウェアを制御するオペレーティングシステムに関する情報を含み得る。たとえば、メッセージには、ユーザがメッセージを生成するためにフランス語のキーボードを使用し、ユーザのオペレーティングシステムは英語であることを示すデータが伴い得る。   Referring to FIG. 9, the example method 900 uses the detection module 16, the classifier module 18, and the manager module 20 to detect the language in the message. The message is provided or delivered to the detection module 16 (step 902). The message may be accompanied by information about the message and / or information about the user who generated the message. The information may relate to, for example, an identification number for the user, information about the keyboard used by the user to generate the message, and / or an operating system that controls software used by the user to generate the message. Information can be included. For example, the message may be accompanied by data indicating that the user uses a French keyboard to generate the message and the user's operating system is English.

検出モジュール16では、1つ以上の言語検出方法がメッセージの言語を検出するために使用される(ステップ904)。検出モジュール16によって使用される各方法は、メッセージ中に存在する言語に関する予測を出力し得る。予測は、メッセージ中に存在し得る各可能性のある言語についての確率を含むベクトルの形態であり得る。   In the detection module 16, one or more language detection methods are used to detect the language of the message (step 904). Each method used by the detection module 16 may output a prediction regarding the language present in the message. The prediction can be in the form of a vector that contains the probabilities for each possible language that may be present in the message.

その後、検出モジュール16からの出力は分類器モジュール18に送達され、2つ以上の言語検出方法からの結果が組み合わせられ得る(ステップ906)。言語検出方法からの結果のさまざまな組み合わせが得られ得る。一例では、バイトnグラム方法および辞書ベースの方法からの結果は、補間によって分類器モジュール18において組み合わされる。別の例では、SVMの組み合わせまたは分類が、バイトnグラム方法、辞書ベースの方法、アルファベット方法およびユーザプロファイル方法からの結果に対して実行される。代替的または付加的には、組み合わせは、スクリプトベースの方法からの結果を含み得るか、または、考慮し得る。さらに別の例は、バイトnグラム方法、言語プロファィル方法および辞書方法の大きな線形結合を含む。しかしながら、一般には、上記言語検出方法のうちのいずれか2つ以上からの結果が分類器モジュール18において組み合わされ得る。   Thereafter, the output from the detection module 16 is delivered to the classifier module 18 and results from two or more language detection methods may be combined (step 906). Various combinations of results from language detection methods can be obtained. In one example, the results from the byte n-gram method and the dictionary-based method are combined in the classifier module 18 by interpolation. In another example, SVM combinations or classifications are performed on results from byte n-gram methods, dictionary-based methods, alphabetic methods, and user profile methods. Alternatively or additionally, the combination may include or take into account results from script-based methods. Yet another example includes large linear combinations of byte n-gram methods, language profile methods and dictionary methods. In general, however, results from any two or more of the above language detection methods may be combined in the classifier module 18.

方法900は、マネージャモジュール20を使用して特定の分類器からの出力を選択する(ステップ908)。当該出力はたとえば、分類器によって計算される信頼スコア、予期される言語検出精度、および/または、メッセージについての言語ドメインに基づいて選択され得る。次いで、選択された分類器出力からベストの言語が選択される(ステップ910)。   The method 900 uses the manager module 20 to select an output from a particular classifier (step 908). The output may be selected based on, for example, a confidence score calculated by the classifier, expected language detection accuracy, and / or language domain for the message. The best language is then selected from the selected classifier output (step 910).

いくつかの場合では、本願明細書において記載されるシステムおよび方法は、メッセージの長さに従って言語検出方法を選択する。たとえば、図10を参照して、方法1000は、メッセージを生成するために使用されるキーボードの言語に関する情報を含み得るメッセージを受け取るかまたは提供することを含む(ステップ1002)。メッセージがしきい値長さ(任意の好適なしきい値長さが可能であるが、たとえば25バイトまたは25文字)より大きい場合(ステップ1004)、バイトnグラム方法(または他の方法もしくは方法の組み合わせ)を使用して言語が検出され得る(ステップ1006)。その後、バイトnグラム方法からの結果に基づいてメッセージの言語が選択され得る(ステップ1008)。別の態様では、メッセージがしきい値長さ以下である場合、システムは、キーボードの言語が利用可能かどうか決定し得る(ステップ1010)。キーボードの言語が利用可能な場合、メッセージの言語はキーボードの言語と同じであるように選択され得る(ステップ1012)。代替的には、キーボードの言語が利用可能でない場合、方法1000は再びメッセージの長さを考慮し得る。たとえば、メッセージの長さが第2のしきい値(任意の好適な第2のしきい値が可能であるが、たとえば4バイトまたは4文字)未満である場合(ステップ1014)、辞書ベースの方法を使用して言語が検出(ステップ1016)および選択され得る。別の態様では、メッセージの長さが第2のしきい値より大きい場合、メッセージ中の言語を検出するために、バイトnグラム方法(または他の方法もしくは方法の組み合わせ)が使用され得る(ステップ1018)。バイトnグラム方法および辞書ベースの方法からの結果が(たとえば補間器または他の分類器を使用して)組み合わされ得、当該組み合わせに基づいてメッセージの言語が決定され得る(ステップ1020)。   In some cases, the systems and methods described herein select a language detection method according to the length of the message. For example, referring to FIG. 10, method 1000 includes receiving or providing a message that may include information regarding the language of the keyboard used to generate the message (step 1002). If the message is larger than the threshold length (any suitable threshold length is possible, eg 25 bytes or 25 characters) (step 1004), then the byte n-gram method (or other method or combination of methods) ) May be used to detect the language (step 1006). The language of the message can then be selected based on the results from the byte n-gram method (step 1008). In another aspect, if the message is less than or equal to the threshold length, the system may determine whether a keyboard language is available (step 1010). If a keyboard language is available, the message language may be selected to be the same as the keyboard language (step 1012). Alternatively, if the keyboard language is not available, the method 1000 may again consider the message length. For example, if the length of the message is less than the second threshold (any suitable second threshold is possible, eg 4 bytes or 4 characters) (step 1014), the dictionary based method Can be used to detect (step 1016) and select a language. In another aspect, if the message length is greater than the second threshold, a byte n-gram method (or other method or combination of methods) may be used to detect the language in the message (steps). 1018). The results from the byte n-gram method and the dictionary-based method can be combined (eg, using an interpolator or other classifier), and the language of the message can be determined based on the combination (step 1020).

図11は、テキストメッセージ中の言語を識別する例示的な方法1100である。ユーザのクライアントデバイス上で生成されたテキストメッセージが、受け取られるかまたは提供される(ステップ1102)。アルファベットベースの方法および/またはスクリプトベースの方法は、テキストメッセージに関連付けられるアルファベットおよび/またはスクリプトを決定するために使用される(ステップ1104)。アルファベットおよび/またはスクリプトに関連付けられる候補の言語が識別される。候補の言語がユニークなアルファベットおよび/またはスクリプトを有する言語(たとえばロシア語、アラビア語、ヘブライ語、ギリシャ語、中国語、台湾語、日本語または韓国語など)である場合(ステップ1106)、当該候補の言語はテキストメッセージの言語となるように決定される(ステップ1108)。   FIG. 11 is an exemplary method 1100 for identifying a language in a text message. A text message generated on the user's client device is received or provided (step 1102). Alphabet-based methods and / or script-based methods are used to determine the alphabet and / or script associated with the text message (step 1104). Candidate languages associated with the alphabet and / or script are identified. If the candidate language is a language having a unique alphabet and / or script (eg, Russian, Arabic, Hebrew, Greek, Chinese, Taiwanese, Japanese or Korean, etc.) (step 1106) The candidate language is determined to be the language of the text message (step 1108).

別の態様では、候補の言語がユニークなアルファベットおよび/またはスクリプトを有する言語でない場合、テキストメッセージの長さが評価される。メッセージの長さがしきい値長さ(任意の好適なしきい値長さが可能であるが、たとえば4バイトまたは4文字)未満である場合であって、テキストメッセージがクライアントデバイス(ステップ1110)によって使用されるキーボードの言語を含むかまたはキーボードの言語を伴っている場合、メッセージの言語はキーボードの言語となるように選択される(ステップ1112)。   In another aspect, if the candidate language is not a language with a unique alphabet and / or script, the length of the text message is evaluated. The text message is used by the client device (step 1110) when the message length is less than the threshold length (any suitable threshold length is possible, eg 4 bytes or 4 characters) If the keyboard language is included or accompanied by the keyboard language, the message language is selected to be the keyboard language (step 1112).

代替的には、メッセージの長さがしきい値長さより大きいかまたはキーボードの言語が利用可能でない場合、メッセージは、nグラム方法(たとえばバイトnグラム方法)で処理されて、当該テキストメッセージについて可能性のある言語の第1のセットを識別する(ステップ1114)。さらに、メッセージは、辞書ベースの方法で処理され、当該テキストメッセージについて可能性のある言語の第2のセットを識別する(ステップ1116)。ユーザ言語プロファイルがユーザについて存在する場合(ステップ1118)、ユーザ言語プロファイルが取得され(ステップ1120)、(たとえばSVM分類器または大きな線形分類器を使用して)可能性のある言語の第1のセットおよび可能性のある言語の第2のセットと組み合わされ、これにより可能性のある言語の第1の組み合わせが得られる(ステップ1122)。その後、可能性のある言語の第1の組み合わせに基づいてテキストメッセージの言語が選択される(ステップ1124)。別の態様では、ユーザ言語プロファイルが利用可能でない場合、可能性のある言語の第1のセットおよび可能性のある言語の第2のセットが(たとえば線形補間器または他の分類器を使用して)組み合わされ、これにより可能性のある言語の第2の組み合わせが得られる(ステップ1126)。最後に、可能性のある言語の第2の組み合わせに基づいて、テキストメッセージの言語が選択される(ステップ1128)。   Alternatively, if the message length is greater than the threshold length or the keyboard language is not available, the message is processed in an n-gram method (eg, a byte n-gram method) to allow for the possibility of the text message. A first set of languages is identified (step 1114). In addition, the message is processed in a dictionary-based manner to identify a second set of possible languages for the text message (step 1116). If a user language profile exists for the user (step 1118), a user language profile is obtained (step 1120) and a first set of possible languages (eg, using an SVM classifier or a large linear classifier). And combined with a second set of possible languages, thereby obtaining a first combination of possible languages (step 1122). Thereafter, the language of the text message is selected based on the first combination of possible languages (step 1124). In another aspect, if a user language profile is not available, a first set of possible languages and a second set of possible languages are used (eg, using a linear interpolator or other classifier). ) To obtain a second combination of possible languages (step 1126). Finally, the language of the text message is selected based on the second possible combination of languages (step 1128).

いくつかの場合では、言語検出は、2ステップ以上で複数の言語検出方法からの出力を組み合わせることにより実行される。たとえば、第1のステップは、たとえば中国語(cn)、日本語(ja)、韓国語(ko)、ロシア語(ru)、ヘブライ語(he)、ギリシャ語(el)およびアラビア語(ar)といった、ユニークなアルファベットまたはスクリプトを使用する特別な言語を検出するようアルファベット−スクリプトベースの方法を使用し得る。アルファベット−スクリプトベースの方法はたとえば、アルファベットベースの方法およびスクリプトベースの方法の一方または両方を使用することを指す。必要ならば、第2のステップは、メッセージにおける他の言語(たとえばラテン語)を検出するよう、(たとえば分類器からの)複数の検出方法(たとえばバイトnグラム方法、ユーザ言語プロファイルベースの方法および辞書ベースの方法)の組み合わせを使用し得る。   In some cases, language detection is performed by combining outputs from multiple language detection methods in two or more steps. For example, the first step may be, for example, Chinese (cn), Japanese (ja), Korean (ko), Russian (ru), Hebrew (he), Greek (el) and Arabic (ar) The alphabet-script-based method may be used to detect special languages that use a unique alphabet or script. Alphabet-script-based methods refer, for example, to using one or both of alphabet-based methods and script-based methods. If necessary, the second step may use a plurality of detection methods (eg, byte n-gram method, user language profile based method, and dictionary) to detect other languages (eg, Latin) in the message. A combination of base methods) may be used.

ある例では、言語検出のために提供または受け取られるメッセージは、言語プレファレンスにかかわらず、任意の特定の言語に特有でなくおよび/または如何なるユーザにも認識可能なある数字、文字または画像(たとえばエモティコンまたは絵文字)を含む。本願明細書において記載されるシステムおよび方法は、言語検出を実行する際にそのような文字または画像を無視し得るとともに、そのような文字または画像のみを含んでいるメッセージを無視し得る。代替的または付加的には、システムおよび方法は、言語検出を実行する前に、メッセージからそのような文字または画像を除去し得る。メッセージから不要な文字または画像を除去するプロセスは、本願明細書において、「メッセージをサニタイズする」と称され得る。当該サニタイジングプロセスによって、検出時間がより高速化され得、および/または、言語検出精度が改善され得る。   In one example, a message provided or received for language detection is a number, letter or image that is not specific to any particular language and / or recognizable to any user, regardless of language preference (e.g., Emoticon or emoji). The systems and methods described herein can ignore such characters or images when performing language detection, and can ignore messages that contain only such characters or images. Alternatively or additionally, the system and method may remove such characters or images from the message before performing language detection. The process of removing unwanted characters or images from a message may be referred to herein as “sanitize the message”. With the sanitizing process, the detection time can be faster and / or the language detection accuracy can be improved.

図12は、メッセージの言語を検出するための例示的な方法1200のフローチャートである。方法は、所与の入力メッセージ1204について、最も可能性があるかまたはベストの言語1202を識別するよう、検出モジュール16、分類器モジュール18およびマネージャモジュール20を使用する。入力メッセージ1204には、ユーザに関する情報またはメッセージを生成するのに使用されたシステムに関する情報が伴われ得る。たとえば、入力メッセージ1204には、ユーザ識別番号(または他のユーザ識別子)、メッセージを生成するために使用されるキーボード(たとえばキーボードの言語)に関する情報、および/または、メッセージを生成するために使用されるオペレーティングシステム(たとえばオペレーティングシステムの言語)に関する情報が伴い得る。   FIG. 12 is a flowchart of an exemplary method 1200 for detecting the language of a message. The method uses detection module 16, classifier module 18 and manager module 20 to identify the most likely or best language 1202 for a given input message 1204. Input message 1204 may be accompanied by information about the user or information about the system used to generate the message. For example, the input message 1204 may be used to generate a user identification number (or other user identifier), information about the keyboard (eg, keyboard language) used to generate the message, and / or the message. May be accompanied by information about the operating system (eg the language of the operating system).

示される例示的な方法1200では、検出モジュール16は10個の異なる言語検出方法を含む。検出モジュール16における言語検出方法のうちの3つは、バイトnグラムA1206、バイトnグラムB1208およびバイトnグラムC1210であり、それらはすべてバイトnグラム方法であり、言語の異なるセットまたは数を検出するように構成され得る。たとえば、バイトnグラムA1206は97言語を検出するように構成され得、バイトnグラムB1208は27言語を検出するように構成され得、バイトnグラムC1210は20言語を検出するように構成され得る。検出モジュール16における言語検出方法のうちの2つは、辞書A1212および辞書B1214であり、それらは両方とも辞書ベースの方法であり、言語の異なるセットまたは数を検出するように構成され得る。たとえば、辞書A1212は9言語を検出するように構成され得、辞書B1214は10言語を検出するように構成され得る。検出モジュール16における言語検出方法のうちの2つは、言語プロファイルA1216および言語プロファイルB1218であり、それらはユーザ言語プロファイル方法であり、言語の異なるセットまたは数を検出するように構成され得る。たとえば、言語プロファイルA1216は20言語を検出するように構成され得、言語プロファイルB1218は27言語を検出するように構成され得る。検出モジュール16における言語検出方法のうちの2つは、アルファベットA1220およびアルファベットB1222であり、それらはアルファベットベースの方法であり、言語の異なるセットまたは数を検出するように構成され得る。たとえば、アルファベットA1220は20言語を検出するように構成され得、アルファベットB1222は27言語を検出するように構成され得る。検出モジュール16はさらにスクリプトベースの言語検出方法1224を含む。   In the exemplary method 1200 shown, the detection module 16 includes ten different language detection methods. Three of the language detection methods in detection module 16 are byte n-gram A 1206, byte n-gram B 1208, and byte n-gram C 1210, which are all byte n-gram methods and detect different sets or numbers of languages. Can be configured as follows. For example, byte n-gram A 1206 can be configured to detect 97 languages, byte n-gram B 1208 can be configured to detect 27 languages, and byte n-gram C 1210 can be configured to detect 20 languages. Two of the language detection methods in detection module 16 are dictionary A1212 and dictionary B1214, both of which are dictionary-based methods and can be configured to detect different sets or numbers of languages. For example, dictionary A1212 may be configured to detect 9 languages and dictionary B1214 may be configured to detect 10 languages. Two of the language detection methods in detection module 16 are language profile A 1216 and language profile B 1218, which are user language profile methods and can be configured to detect different sets or numbers of languages. For example, language profile A 1216 may be configured to detect 20 languages and language profile B 1218 may be configured to detect 27 languages. Two of the language detection methods in detection module 16 are alphabet A1220 and alphabet B1222, which are alphabet-based methods and can be configured to detect different sets or numbers of languages. For example, alphabet A1220 may be configured to detect 20 languages and alphabet B1222 may be configured to detect 27 languages. The detection module 16 further includes a script-based language detection method 1224.

検出モジュール16における異なる言語検出方法からの出力は、分類器モジュール18によって組み合わせられ処理される。たとえば、補間分類器1226は、バイトnグラムB1208および辞書B1214からの出力を組み合わせる。補間のための重みはたとえば、バイトnグラムB1208については0.1であり、辞書B1214については0.9である。分類器モジュール18はさらに、バイトnグラムC1210、辞書B1214、言語プロファイルB1218およびアルファベットB1222からの出力を組み合わせるSVM分類器1228を使用し得る。分類器モジュール18はさらに、スクリプトベースの方法1224の第1の組み合わせ1230と、バイトnグラムC1210、辞書A1212、言語プロファイルA1216、およびアルファベットA1220のSVM分類器組み合わせとを使用し得る。さらに、分類器モジュール18は、スクリプトベースの方法1224の第2の組み合わせ1232と、バイトnグラムC1210、辞書A1212、および言語プロファイルA1216の線形SVM分類器組み合わせとを使用し得る。図12は、分類器モジュール18において使用される特定言語検出テスト、分類器および検出テスト出力の組み合わせを示しているが、他の言語検出テスト、分類器および/または組み合わせが使用され得る。   Outputs from different language detection methods in the detection module 16 are combined and processed by the classifier module 18. For example, interpolation classifier 1226 combines the output from byte n-gram B1208 and dictionary B1214. The weight for interpolation is, for example, 0.1 for byte n-gram B1208 and 0.9 for dictionary B1214. The classifier module 18 may further use an SVM classifier 1228 that combines the output from byte n-gram C1210, dictionary B1214, language profile B1218, and alphabet B1222. The classifier module 18 may further use the first combination 1230 of the script-based method 1224 and the SVM classifier combination of byte n-gram C1210, dictionary A1212, language profile A1216, and alphabet A1220. Further, classifier module 18 may use a second combination 1232 of script-based method 1224 and a linear SVM classifier combination of byte n-gram C1210, dictionary A1212, and language profile A1216. Although FIG. 12 shows a combination of the specific language detection test, classifier and detection test output used in the classifier module 18, other language detection tests, classifiers and / or combinations may be used.

第1の組み合わせ1230および第2の組み合わせ1232の両方について、スクリプトベースの方法1224および分類器が階層アプローチ(tiered approach)で使用され得る。たとえば、スクリプトベースの方法1224は、ユニークなスクリプトを有する言語を迅速に識別するために使用され得る。そのような言語がメッセージ1204において識別される場合、第1の組み合わせ1230におけるSVM分類器の使用または第2の組み合わせにおける線形SVM分類器の使用が必要ではない場合があり得る。   For both the first combination 1230 and the second combination 1232, script-based methods 1224 and classifiers may be used in a tiered approach. For example, the script-based method 1224 can be used to quickly identify languages with unique scripts. If such a language is identified in message 1204, it may not be necessary to use an SVM classifier in the first combination 1230 or a linear SVM classifier in the second combination.

一般に、マネージャモジュール20は、メッセージ1204中の言語を識別するために、特定の言語検出方法、分類器、および/または、検出方法出力の組み合わせを選択し得る。マネージャモジュール20は、言語ドメインに従ってまたはメッセージについて予期される言語に従って選択を行い得る。マネージャモジュール20は、分類器によって決定される信頼スコアに従って特定の分類器を選択し得る。たとえば、マネージャモジュール20は、その予測において最も信頼性のある分類器からの出力を選択し得る。   In general, manager module 20 may select a particular language detection method, classifier, and / or combination of detection method outputs to identify the language in message 1204. The manager module 20 may make the selection according to the language domain or according to the language expected for the message. Manager module 20 may select a particular classifier according to a confidence score determined by the classifier. For example, manager module 20 may select the output from the most reliable classifier in the prediction.

ある実現例では、本願明細書において記載されるシステムおよび方法は、言語検出を複数のユーザへのサービスとして利用可能にするのに好適である。そのようなサービスは、システムおよび方法が言語を識別する速度と、多様なクライアントからのサービス要求に基づいてランタイムで複数の識別技術を扱うするシステムおよび方法の能力とによって可能になるまたは向上される。   In one implementation, the systems and methods described herein are suitable for making language detection available as a service to multiple users. Such services are enabled or enhanced by the speed with which systems and methods identify languages and the ability of systems and methods to handle multiple identification technologies at runtime based on service requests from various clients. .

図13を参照して、ある例において、言語検出システム1300は、テキストメッセージ1302を取得または受け取り、テキストメッセージ1302中に存在する言語を識別するために、サニタイザモジュール1304、グルーパモジュール1306、および、1つ以上の言語検出器モジュールを使用する。一般に、サニタイザモジュール1304は、テキストメッセージ1302からある文字または他の不要な要素を削除することにより、言語検出のためのテキストメッセージ1302を用意する。たとえば、サニタイザモジュール1304は、1つ以上の数字(たとえば「1」、「3」、「15」、「249」など)、1以上の絵文字(たとえば、画像および/または「:−D」もしくは「:−」といった文字の組み合わせの形態にある)、ならびに/または、言語検出に有用ではない場合があり得る1つ以上の他の非言語文字もしくは要素を除去し得る。当該1つ以上の他の非言語文字もしくは要素の例としては、たとえば、ある句読点(たとえばピリオドもしくはコンマ)、余分なスペース、および/または、キャリッジリターンがある。代替的な例において、不要な要素はテキストメッセージ1302から除去されないが、その後の言語検出の間に単に無視または回避される。そのような場合において、サニタイザモジュール1304は、不要な要素にフラグを立てるかまたは識別するよう使用され得る。以下の段落における「テキストメッセージ1302」への参照はたとえば、不要な要素が除去または無視されたテキストメッセージをカバーするように意図される。本願明細書において、さまざまな例では、不要な要素は「非言語文字」と称される。   Referring to FIG. 13, in one example, the language detection system 1300 obtains or receives a text message 1302 and identifies a language present in the text message 1302, a sanitizer module 1304, a grouper module 1306, and One or more language detector modules are used. In general, the sanitizer module 1304 prepares the text message 1302 for language detection by deleting certain characters or other unnecessary elements from the text message 1302. For example, the sanitizer module 1304 may include one or more numbers (eg, “1”, “3”, “15”, “249”, etc.), one or more pictograms (eg, an image and / or “:-D” or And / or one or more other non-language characters or elements that may not be useful for language detection. Examples of the one or more other non-linguistic characters or elements include, for example, certain punctuation marks (eg, periods or commas), extra spaces, and / or carriage returns. In an alternative example, unnecessary elements are not removed from the text message 1302, but are simply ignored or avoided during subsequent language detection. In such cases, the sanitizer module 1304 may be used to flag or identify unwanted elements. References to “text message 1302” in the following paragraphs are intended to cover, for example, text messages with unnecessary elements removed or ignored. Herein, in various examples, unnecessary elements are referred to as “non-language characters”.

一般に、グルーパモジュール1306は、テキストメッセージ1302における言語の初期分類を実行するために使用され、テキストメッセージ1302中の言語の最終決定を行うよう、当該初期分類に基づいて1つ以上のその後の言語検出方法を選択する。好ましい例では、グルーパモジュール1306は、テキストメッセージ1302中に存在するアルファベットおよび/またはスクリプトを検出することにより初期分類を実行する。アルファベットおよび/またはスクリプトは、たとえば、本願明細書において記載されるアルファベットベースの方法および/またはスクリプトベースの方法を使用して検出され得る。いくつかの場合では、アルファベットベースの方法は、テキストメッセージ1302についてのスコアの第1のセットを決定し得る。各スコアは、アルファベットが複数の異なる言語のうちの1つの言語についてのものである確率または尤度を表わす。グルーパモジュール1306は、スコアの第1のセットからの最も高いスコアに基づいてテキストメッセージ1302中のアルファベットを検出し得る。同様に、スクリプトベースの方法は、テキストメッセージ1302についてのスコアの第2のセットを決定し得る。各スコアは、スクリプトが複数の異なる言語のうちの1つの言語についてのものである確率または尤度を表わす。グルーパモジュール1306は、スコアの第2のセットからの最も高いスコアに基づいてテキストメッセージ1302中のスクリプトを検出し得る。代替的または付加的には、グルーパモジュール1306は、テキストメッセージ1302中のアルファベットおよび/またはスクリプトを検出するよう、(たとえば補間器または他の分類器を使用して)アルファベットベースの方法およびスクリプトベースの方法からの結果またはスコアを組み合わせ得る。アルファベットおよび/またはスクリプトがひとたび検出されると、グルーパモジュール1306は、本願明細書において以下に記載されるように、テキストメッセージ1302中の言語の最終決定を行うために使用する言語検出器モジュールを選択する。グルーパモジュール1306は、アルファベットベースの方法および/またはスクリプトベースの方法からの結果または他の情報(たとえば1つ以上のスコア)を選択された言語検出器モジュールに渡し得る。   In general, the grouper module 1306 is used to perform an initial classification of languages in the text message 1302 and one or more subsequent languages based on the initial classification to make a final determination of the languages in the text message 1302. Select the detection method. In the preferred example, the grouper module 1306 performs the initial classification by detecting alphabets and / or scripts that are present in the text message 1302. The alphabets and / or scripts can be detected using, for example, alphabet-based methods and / or script-based methods described herein. In some cases, the alphabet-based method may determine a first set of scores for the text message 1302. Each score represents the probability or likelihood that the alphabet is for one of a plurality of different languages. Grouper module 1306 may detect the alphabet in text message 1302 based on the highest score from the first set of scores. Similarly, the script-based method may determine a second set of scores for text message 1302. Each score represents the probability or likelihood that the script is for one of a plurality of different languages. Grouper module 1306 may detect a script in text message 1302 based on the highest score from the second set of scores. Alternatively or additionally, the grouper module 1306 may detect alphabets and / or scripts in the text message 1302 (eg, using an interpolator or other classifier) and alphabet based methods and script bases. Results or scores from the methods can be combined. Once the alphabet and / or script is detected, the grouper module 1306 may select a language detector module to use to make a final determination of the language in the text message 1302, as described herein below. select. Grouper module 1306 may pass results from alphabet-based methods and / or script-based methods or other information (eg, one or more scores) to the selected language detector module.

示される例において、言語検出システム1300は、アルファベット判別可能言語検出器1308、キリル言語検出器1310、ラテン言語検出器1312およびバックオフ言語検出器1314といった言語検出器モジュールを含み得るか、または、利用し得る。しかしながら、他の付加的または代替的な言語検出器モジュールが含まれ得るか、または、利用され得る。これらの言語検出器モジュール1308、1310、1312および1314の各々は、検出方法モジュールおよび分類器モジュールを含み得る。たとえば、アルファベット判別可能言語検出器1308は、検出方法モジュール1316および分類器モジュール1318を含み得、キリル言語検出器1310は、検出方法モジュール1320および分類器モジュール1322を含み得、ラテン言語検出器1312は、検出方法モジュール1324および分類器モジュール1326を含み得、バックオフ言語検出器1314は、検出方法モジュール1328および分類器モジュール1330を含み得る。   In the example shown, language detection system 1300 may include or utilize language detector modules such as alphabet-distinguishable language detector 1308, Cyrillic language detector 1310, Latin language detector 1312 and backoff language detector 1314. Can do. However, other additional or alternative language detector modules can be included or utilized. Each of these language detector modules 1308, 1310, 1312 and 1314 may include a detection method module and a classifier module. For example, the alphabet distinguishable language detector 1308 can include a detection method module 1316 and a classifier module 1318, the Cyrillic language detector 1310 can include a detection method module 1320 and a classifier module 1322, and the Latin language detector 1312 , Detection method module 1324 and classifier module 1326, and backoff language detector 1314 may include detection method module 1328 and classifier module 1330.

一般に、検出方法モジュール1316、1320、1324および1328は、1つ以上の言語検出方法を含むか、または、利用する。1つ以上の言語検出方法は、たとえば、nグラム方法(たとえばバイトnグラム方法)、辞書ベースの方法、アルファベットベースの方法、スクリプトベースの方法および/またはユーザ言語プロファイル方法であり得るか、または、含み得る。他の言語検出方法も考えられる。検出方法モジュール1316、1320、1324および1328は、テキストメッセージ1302中に存在する言語の指示を提供する出力を作り出す言語検出方法を使用し得る。出力はたとえば、テキストメッセージ1302が1つ以上の言語である尤度を表わす1つ以上のスコアであり得るか、または、当該1つ以上のスコアを含み得る。いくつかの場合では、テキストメッセージ1302中の言語は、検出方法モジュール1316、1320、1324、または1328のうちの1つの出力から直接的に決定される。代替的または付加的には、テキストメッセージ1302中の言語は、分類器モジュール1318、1322、1326、または1330のうちの1つの出力から決定され得る。一般に、各分類器モジュール1318、1322、1326、または1330は、対応する検出方法モジュール1316、1320、1324、または1328からの出力を処理して、テキストメッセージ中に存在する言語のさらに別の指示を提供する。分類器モジュール1318、1322、1326および1330は好ましくは、たとえば教師あり学習モデル、部分教師あり学習モデル、教師なし学習モデルおよび/または補間といった1つ以上の分類器を使用し得るかまたは含み得る。   In general, the detection method modules 1316, 1320, 1324, and 1328 include or utilize one or more language detection methods. The one or more language detection methods may be, for example, an n-gram method (eg, byte n-gram method), a dictionary-based method, an alphabet-based method, a script-based method, and / or a user language profile method, or May be included. Other language detection methods are also conceivable. Detection method modules 1316, 1320, 1324 and 1328 may use a language detection method that produces an output that provides an indication of the language present in text message 1302. The output may be, for example, one or more scores representing the likelihood that the text message 1302 is in one or more languages, or may include the one or more scores. In some cases, the language in text message 1302 is determined directly from the output of one of detection method modules 1316, 1320, 1324, or 1328. Alternatively or additionally, the language in text message 1302 may be determined from the output of one of classifier modules 1318, 1322, 1326, or 1330. In general, each classifier module 1318, 1322, 1326, or 1330 processes the output from the corresponding detection method module 1316, 1320, 1324, or 1328 to provide further indications of the language present in the text message. provide. The classifier modules 1318, 1322, 1326, and 1330 may preferably use or include one or more classifiers such as supervised learning models, partially supervised learning models, unsupervised learning models, and / or interpolation.

たとえば、グルーパモジュール1306によって検出されるアルファベットおよび/またはスクリプトが1つ以上のアルファベット判別可能言語に関連付けられる場合、グルーパモジュール1306は、アルファベット判別可能言語検出器1308を選択する。一般に、アルファベット判別可能言語は、ユニークなアルファベットおよび/またはユニークなスクリプトを有する言語であって、当該言語についてのアルファベットおよび/またはスクリプトがひとたび検出されるとテキストメッセージ1302中の言語が決定され得る言語である。アルファベット判別可能言語の例はたとえば、簡体字中国語(cn)、繁体字中国語(tw)、日本語(ja)、アラビア語(ar)、ヘブライ語(he)、ギリシャ語(el)、韓国語(ko)およびタイ語(th)を含む。さまざまな場合では、グルーパモジュール1306は、アルファベットベースの方法および/またはスクリプトベースの方法からの結果(たとえば1つ以上のスコアおよび確率、検出されたアルファベット、ならびに/または検出されたスクリプト)をアルファベット判別可能言語検出器1308に渡す。代替的または付加的には、グルーパモジュール1306がそのような結果をアルファベット判別可能言語検出器1308へ渡さない場合、検出方法モジュール1316は、テキストメッセージ1302におけるアルファベットおよび/またはスクリプトを検出するよう、アルファベットベースの方法および/またはスクリプトベースの方法を実行し得る。アルファベット判別可能言語検出器1308は、アルファベットおよび/またはスクリプトがひとたび検出されると、テキストメッセージ1302中の言語を決定し得る。いくつかの場合、そのような決定は、検出方法モジュール1316からの任意の出力を処理するよう分類器モジュール1318を使用して行われ得る。   For example, if alphabets and / or scripts detected by the grouper module 1306 are associated with one or more alphabetic distinguishable languages, the grouper module 1306 selects the alphabetic distinguishable language detector 1308. In general, an alphabet distinguishable language is a language that has a unique alphabet and / or a unique script, and once the alphabet and / or script for that language is detected, the language in text message 1302 can be determined. It is. Examples of alphabet distinguishable languages are, for example, simplified Chinese (cn), traditional Chinese (tw), Japanese (ja), Arabic (ar), Hebrew (he), Greek (el), Korean (Ko) and Thai (th). In various cases, grouper module 1306 may alphabetize results (eg, one or more scores and probabilities, detected alphabets, and / or detected scripts) from alphabet-based methods and / or script-based methods. Pass to the distinguishable language detector 1308. Alternatively or additionally, if the grouper module 1306 does not pass such results to the alphabet distinguishable language detector 1308, the detection method module 1316 may detect the alphabet and / or script in the text message 1302. Alphabet-based methods and / or script-based methods may be performed. Alphabet distinguishable language detector 1308 may determine the language in text message 1302 once the alphabet and / or script is detected. In some cases, such a determination can be made using the classifier module 1318 to process any output from the detection method module 1316.

いくつかの例では、グルーパモジュール1306によって検出されるアルファベットおよび/またはスクリプトが1つ以上のキリル言語に関連付けられる場合、グルーパモジュール1306はキリル言語検出器1310を選択する。キリル言語の例はたとえば、ブルガリア語(bg)、ウクライナ語(uk)およびロシア語(ru)を含んでいる。テキストメッセージ1302中の特定のキリル言語を決定するために、検出方法モジュール1320は、バイトnグラム方法および/または辞書ベースの方法のような、本願明細書において記載される1つ以上の言語検出方法を含み得るか、または、利用し得る。好ましい例では、検出方法モジュール1320は、キリル言語に特有の1つ以上の辞書を使用し得る辞書ベースの方法を利用する。辞書ベースの方法は、当該1つ以上の辞書において単語をルックアップすることによって、テキストメッセージ1302において1つ以上のキリル言語に属するトークンまたは単語の数をカウントし得る。いくつかの例において、テキストメッセージ1302において最も多くのトークンまたは単語を有するキリル言語がテキストメッセージ1302中の言語であると決定される。代替的または付加的には、検出方法モジュール1320は、1つ以上の言語検出方法(たとえば辞書に基づいた方法)からの出力を分類器モジュール1322に提供し得、分類器モジュール1322は、テキストメッセージ1302中の言語を決定するために当該出力を処理し得る。たとえば、分類器モジュール1322は検出方法モジュール1320からスコアのセットを受け取り得、最も高いスコアを有する言語を識別することによりテキストメッセージ1302中のキリル言語を決定し得る。   In some examples, the grouper module 1306 selects the Cyrillic language detector 1310 if the alphabets and / or scripts detected by the grouper module 1306 are associated with one or more Cyrillic languages. Examples of Cyrillic languages include, for example, Bulgarian (bg), Ukrainian (uk) and Russian (ru). To determine a particular Cyrillic language in the text message 1302, the detection method module 1320 can include one or more language detection methods described herein, such as a byte n-gram method and / or a dictionary-based method. Or can be utilized. In a preferred example, the detection method module 1320 utilizes a dictionary-based method that can use one or more dictionaries specific to the Cyrillic language. The dictionary-based method may count the number of tokens or words belonging to one or more Cyrillic languages in the text message 1302 by looking up words in the one or more dictionaries. In some examples, the Cyrillic language that has the most tokens or words in the text message 1302 is determined to be the language in the text message 1302. Alternatively or additionally, detection method module 1320 may provide output from one or more language detection methods (eg, dictionary-based methods) to classifier module 1322, which may be a text message. The output may be processed to determine the language in 1302. For example, the classifier module 1322 may receive a set of scores from the detection method module 1320 and may determine the Cyrillic language in the text message 1302 by identifying the language with the highest score.

ある場合では、グルーパモジュール1306によって検出されるアルファベットおよび/またはスクリプトが1つ以上のラテン言語に関連付けられる場合、グルーパモジュール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は、本願明細書において記載される1つ以上の言語検出方法を含み得るか、または、利用し得る。好ましい例では、検出方法モジュール1324は、バイトnグラム方法および/または辞書ベースの方法を含むかまたは利用する。これらの好ましい方法のうちの1つまたは両方からの出力は、テキストメッセージ1302中の特定のラテン言語を決定するよう、分類器モジュール1326を使用して処理または組み合わされ得る。たとえば、nグラム方法および辞書ベースの方法は各々、スコアのセットを出力し得る。各スコアは、テキストメッセージ1302が複数の異なるラテン言語のうちの1つである尤度を表わす。分類器モジュール1326は、テキストメッセージ1302中のラテン言語を決定するよう、たとえば本願明細書において記載される1つ以上の分類器および/または補間技術を使用してスコアのセットを処理し得る。   In some cases, the grouper module 1306 selects the Latin language detector 1312 if the alphabet and / or script detected by the grouper module 1306 is associated with one or more Latin languages. Examples of Latin languages are English (en), French (fr), Spanish (es), German (de), Portuguese (pt), Dutch (nl), Polish (pl), Italian ( it), Turkish (tr), Catalan (ca), Czech (cs), Danish (da), Finnish (fi), Hungarian (hu), Indonesian (id), Norwegian (no) , Romanian (ro), Slovak (sk), Swedish (sv), Malay (ms), Vietnamese (vi). To determine a particular Latin language in the text message 1302, the detection method module 1324 may include or utilize one or more language detection methods described herein. In a preferred example, the detection method module 1324 includes or utilizes a byte n-gram method and / or a dictionary-based method. Output from one or both of these preferred methods may be processed or combined using classifier module 1326 to determine a particular Latin language in text message 1302. For example, n-gram methods and dictionary-based methods may each output a set of scores. Each score represents the likelihood that the text message 1302 is one of a plurality of different Latin languages. The classifier module 1326 may process the set of scores using, for example, one or more classifiers and / or interpolation techniques described herein to determine the Latin language in the text message 1302.

いくつかの例において、グルーパモジュール1306は、テキストメッセージ1302中の言語を検出するためにバックオフ言語検出器1314を選択する。バックオフ言語検出器1314はたとえば、グルーパモジュール1306がアルファベット判別可能言語検出器1308、キリル言語検出器1310またはラテン言語検出器1312を選択しない場合に選択され得る。たとえば、グルーパモジュール1306が、アルファベット判別可能言語、キリル言語またはラテン言語に関連付けられるアルファベットおよび/またはスクリプトを検出することに失敗すると、そのような状況が発生し得る。バックオフ言語検出器1314が選択されると、検出方法モジュール1328および/または分類器モジュール1330がテキストメッセージ1302中の言語を識別するために使用され得る。検出方法モジュール1328によって使用される言語検出方法は、たとえば、nグラム方法(たとえばバイトnグラム方法)、辞書ベースの方法、アルファベットベースの方法、スクリプトベースの方法、ユーザ言語プロファイル方法、および、その任意の組み合わせであり得るか、または、含み得る。分類器モジュール1330によって使用される特定の分類器は、たとえば教師あり学習モデル、部分教師あり学習モデル、教師なし学習モデル、補間および/またはその任意の組み合わせであり得るか、または、含み得る。他の言語検出方法および/または分類器が使用され得る。一般に、バックオフ言語検出器1314は、本願明細書において記載される言語検出方法および分類器のうちのいずれかを使用し得る。バックオフ言語検出器1314は好ましくはフレキシブルであり、新しい検出方法および/または検出方法の新しい組み合わせを含むかまたは使用するように構成され得る。なぜならば、そのような新しい方法および/または組み合わせが開発または利用可能になるからである。いくつかの場合、バックオフ言語検出器1314を行使することによって、言語検出システム1300は、NULL出力ではなく有効な出力を提供することができる。   In some examples, the grouper module 1306 selects the backoff language detector 1314 to detect the language in the text message 1302. The backoff language detector 1314 may be selected, for example, if the grouper module 1306 does not select the alphabet distinguishable language detector 1308, the Cyrillic language detector 1310, or the Latin language detector 1312. For example, such a situation may occur when the grouper module 1306 fails to detect an alphabet and / or script associated with an alphabetic language, a Cyrillic language, or a Latin language. When backoff language detector 1314 is selected, detection method module 1328 and / or classifier module 1330 may be used to identify the language in text message 1302. Language detection methods used by detection method module 1328 include, for example, n-gram methods (eg, byte n-gram methods), dictionary-based methods, alphabet-based methods, script-based methods, user language profile methods, and any of its Or a combination thereof. The particular classifier used by classifier module 1330 can be or include, for example, a supervised learning model, a partially supervised learning model, an unsupervised learning model, interpolation and / or any combination thereof. Other language detection methods and / or classifiers can be used. In general, the backoff language detector 1314 may use any of the language detection methods and classifiers described herein. The backoff language detector 1314 is preferably flexible and may be configured to include or use new detection methods and / or new combinations of detection methods. This is because such new methods and / or combinations will be developed or available. In some cases, by exercising the back-off language detector 1314, the language detection system 1300 can provide a valid output rather than a NULL output.

例示目的のために、図14は、テキストメッセージ中の言語を識別するための例示的な方法1400のフローチャートである。方法1400は、テキストメッセージを受け取ること(ステップ1402)と、テキストメッセージ中のラテンアルファベットおよびラテンスクリプトのうちの少なくとも1つを検出すること(ステップ1404)とを含む。スコアの第1のセットを決定するために、辞書ベースの言語検出テストが行なわれる(ステップ1406)。スコアの第1のセットの各スコアは、テキストメッセージが複数の異なるラテン言語のうちの1つである尤度を表わす。スコアの第2のセットを決定するために、nグラム言語検出テストが行なわれる(ステップ1408)。スコアの第2のセットの各スコアは、テキストメッセージが複数の異なるラテン言語のうちの1つである尤度を表わす。スコアの第1および第2のセットは、たとえば、1つ以上の分類器および/または補間技術を使用して、組み合わされる(ステップ1410)。テキストメッセージ中の言語は、当該組み合わせに基づいて識別される(ステップ1412)。   For illustrative purposes, FIG. 14 is a flowchart of an exemplary method 1400 for identifying a language in a text message. Method 1400 includes receiving a text message (step 1402) and detecting at least one of a Latin alphabet and a Latin script in the text message (step 1404). A dictionary-based language detection test is performed to determine a first set of scores (step 1406). Each score in the first set of scores represents the likelihood that the text message is one of a plurality of different Latin languages. An n-gram language detection test is performed to determine a second set of scores (step 1408). Each score in the second set of scores represents the likelihood that the text message is one of a plurality of different Latin languages. The first and second sets of scores are combined (step 1410) using, for example, one or more classifiers and / or interpolation techniques. The language in the text message is identified based on the combination (step 1412).

図15は、テキストメッセージ中の言語を識別するための例示的な方法1500のフローチャートである。テキストメッセージが取得され(ステップ1502)、非言語文字がテキストメッセージから除去され(ステップ1504)、サニタイズ済テキストメッセージが生成される。アルファベットおよび/またはスクリプトは、(i)スコアの第1のセットを決定するアルファベットベースの言語検出テスト(ステップ1506)と、(ii)スコアの第2のセットを決定するスクリプトベースの言語検出テスト(ステップ1508)とのうちの少なくとも1つを行うことにより、サニタイズ済テキストメッセージにおいて検出される。スコアの第1のセットにおける各スコアは、サニタイズ済テキストメッセージが、複数の異なる言語のうちの1つの言語についてのアルファベットを含んでいる尤度を表わす。スコアの第2のセットにおける各スコアは、サニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語についてのスクリプトを含んでいる尤度を表わす。サニタイズ済テキストメッセージ中の言語は、スコアの第1のセット、スコアの第2のセットおよび/またはスコアの第1および第2のセットの組み合わせに基づき識別される(ステップ1510)。   FIG. 15 is a flowchart of an exemplary method 1500 for identifying a language in a text message. A text message is obtained (step 1502), non-language characters are removed from the text message (step 1504), and a sanitized text message is generated. The alphabet and / or script may include (i) an alphabet-based language detection test that determines a first set of scores (step 1506) and (ii) a script-based language detection test that determines a second set of scores ( Detected in the sanitized text message by performing at least one of step 1508). Each score in the first set of scores represents the likelihood that the sanitized text message contains an alphabet for one of a plurality of different languages. Each score in the second set of scores represents the likelihood that the sanitized text message contains a script for one of a plurality of different languages. The language in the sanitized text message is identified based on the first set of scores, the second set of scores, and / or the combination of the first and second sets of scores (step 1510).

この明細書に記載される主題および動作の実施形態は、デジタル電子回路において実現され得、または、この明細書において開示される構造およびそれらの構造の等価物を含むコンピュータソフトウェア、ファームウェア、もしくは、ハードウェアにおいて実現され得、または、それらの1つ以上の組み合わせにおいて実現され得る。この明細書に記載される主題の実施形態は、1つ以上のコンピュータプログラムとして実現され得る。すなわち、データ処理装置による実行のためにまたはデータ処理装置の動作を制御するためにコンピュータ記憶媒体上でエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実現され得る。代替的または付加的には、プログラム命令は、たとえば機械によって生成された電気信号、光学信号または電磁気信号といった、データ処理装置による実行のために好適な受信装置への送信のために情報をエンコードするように生成される人為的に生成される伝播信号上でエンコードされ得る。コンピュータ記憶媒体は、コンピュータ読取可能ストレージデバイス、コンピュータ読取可能ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、または、それらの1つ以上の組み合わせであり得るか、それらに含まれ得る。さらに、コンピュータ記憶媒体は伝播信号ではないが、コンピュータ記憶媒体は、人為的に生成される伝播信号においてエンコードされたコンピュータプログラム命令の源または行先であり得る。コンピュータ記憶媒体はさらに、別個の1つ以上の物理コンポーネントまたは媒体(たとえば複数のCD、ディスクまたは他のストレージデバイス)であり得るか、または、これらに含まれ得る。   Embodiments of the subject matter and operations described herein can be implemented in digital electronic circuitry, or include computer software, firmware, or hardware that includes the structures disclosed herein and equivalents of those structures. Can be implemented in hardware or in one or more combinations thereof. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs. That is, it may be implemented as one or more modules of computer program instructions encoded on a computer storage medium for execution by the data processing device or to control the operation of the data processing device. Alternatively or additionally, the program instructions encode information for transmission to a receiving device suitable for execution by a data processing device, eg, a machine-generated electrical signal, optical signal or electromagnetic signal. Can be encoded on an artificially generated propagation signal generated as described above. The computer storage medium may be or be included in a computer readable storage device, a computer readable storage substrate, a random or serial access memory array or device, or one or more combinations thereof. Further, although a computer storage medium is not a propagated signal, a computer storage medium may be a source or destination of computer program instructions encoded in an artificially generated propagated signal. A computer storage medium may further be or be included in one or more separate physical components or media (eg, multiple CDs, disks, or other storage devices).

この明細書に記載される動作は、1つ以上のコンピュータ読取可能ストレージデバイス上に格納されたデータまたは他の源から受け取られたデータに対してデータ処理装置によって実行される動作として実現され得る。   The operations described herein may be implemented as operations performed by a data processing device on data stored on one or more computer readable storage devices or received from other sources.

「データ処理装置」という用語は、例としてプログラマブルプロセッサ、コンピュータ、システムオンチップ、または、前述のものの複数のものもしくは組み合わせを含む、データを処理するためのすべての種類の装置、デバイスおよびマシンを包含する。装置は、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)といった特殊用途論理回路を含み得る。装置は、ハードウェアに加えて、該当するコンピュータプログラムのための実行環境を作り出すコードをさらに含み得る。当該コードとしては、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、バーチャルマシン、または、それらの1つ以上の組み合わせを構成するコードがある。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャといったさまざまな異なるコンピューティングモデルインフラストラクチャを実現し得る。   The term “data processing device” encompasses all types of devices, devices and machines for processing data, including by way of example a programmable processor, a computer, a system on chip, or a plurality or combination of the foregoing. To do. The device may include special purpose logic such as, for example, an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit). In addition to hardware, the apparatus may further include code that creates an execution environment for the appropriate computer program. Such code includes, for example, code that forms a processor firmware, protocol stack, database management system, operating system, cross-platform runtime environment, virtual machine, or one or more combinations thereof. The device and execution environment may implement a variety of different computing model infrastructures such as web services, distributed computing and grid computing infrastructure.

コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプトまたはコードとしても知られる)は、コンパイルされた言語または解釈された言語、宣言言語または手続言語を含むプログラミング言語の任意の形態で記述され得、スタンドアロンプログラムとして、または、モジュール、コンポーネント、サブルーチン、オブジェクト、もしくは、コンピューティング環境で使用するに好適である他のユニットとして含む任意の形態で展開され得る。コンピュータプログラムは、ファイルシステムにおけるファイルに対応し得るが、ファイルに対応する必要はない。プログラムは、当該プログラムに専用の単一ファイルにおいて、または、複数の協調されたファイル(たとえばコードの1つ以上のモジュール、サブプログラムもしくは部分を格納するファイル)において、他のプログラムもしくはデータ(たとえば、マークアップ言語文書に格納された1つ以上のスクリプト)を保持するファイルの部分に格納され得る。コンピュータプログラムは、1つのコンピュータ上で実行されるように展開され得るか、または、1つの場所に位置するかもしくは複数の場所に亘って分散され通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開され得る。   A computer program (also known as a program, software, software application, script or code) can be written in any form of programming language, including compiled or interpreted language, declarative language or procedural language, stand-alone program Or in any form including as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program can correspond to a file in a file system, but need not correspond to a file. A program may be another program or data (e.g., in a single file dedicated to the program, or in a plurality of coordinated files (e.g., files that store one or more modules, subprograms or portions of code)). One or more scripts stored in a markup language document). A computer program can be deployed to run on one computer, or run on multiple computers located at one location or distributed across multiple locations and interconnected by a communications network Can be deployed as

この明細書に記載される処理および論理フローは、1つ以上のプログラマブルプロセッサが、入力データに対して動作して出力を生成することによりアクションを行うように1つ以上のコンピュータプログラムを実行することによって行われ得る。処理および論理フローは、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)といった特殊用途論理回路によって実行され得、装置も、当該特殊用途論理回路によって実現され得る。   The processing and logic flows described herein execute one or more computer programs such that one or more programmable processors perform actions by operating on input data and generating output. Can be done by. The processing and logic flow may be performed by special purpose logic circuits such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits), and the device may also be realized by the special purpose logic circuits.

コンピュータプログラムの実行に好適であるプロセッサは、例として、汎用マイクロプロセッサおよび特殊用途マイクロプロセッサの両方と、任意の種類のデジタルコンピュータのいずれか1つ以上のプロセッサとを含む。一般に、プロセッサは、リードオンリメモリ、ランダムアクセスメモリ、またはその両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令に従ってアクションを実行するためのプロセッサと、命令およびデータを格納するための1つ以上のメモリデバイスとである。一般に、コンピュータはさらに、たとえば磁気ディスク、光磁気ディスク、光ディスクもしくはソリッドステートドライブといった、データを格納するための1つ以上のマスストレージデバイスを含むか、または、当該1つ以上のマスストレージデバイスからデータを受け取るか、もしくは、当該1つ以上のマスストレージデバイスにデータを転送するか、もしくは、その両方を行うように動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、たとえば、携帯電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)レシーバ、または、ポータブルストレージデバイス(たとえばユニバーサルシリアルバス(USB)フラッシュドライブ)といった別のデバイスに埋め込まれ得る。コンピュータプログラム命令およびデータを格納するのに好適なデバイスは、例として、たとえばEPROM、EEPROM、フラッシュメモリデバイスといった半導体メモリデバイスと、たとえば内部ハードディスクまたはリムーバブルディスクといった磁気ディスクと、光磁気ディスクと、CD−ROMおよびDVD−ROMディスクとを含む不揮発性メモリ、媒体およびメモリデバイスのすべての形態を含んでいる。プロセッサおよびメモリは、特殊用途論理回路によって補足され得るか、または、当該特殊用途論理回路に統合され得る。   Processors suitable for the execution of computer programs include, by way of example, both general and special purpose microprocessors and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions according to instructions and one or more memory devices for storing instructions and data. Generally, a computer further includes or includes data from one or more mass storage devices, such as a magnetic disk, magneto-optical disk, optical disk, or solid state drive, for storing data. And / or transfer data to the one or more mass storage devices, or both. However, the computer need not have such a device. In addition, the computer may be, for example, a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (eg, a universal serial bus (USB) flash drive) Embedded in another device. Suitable devices for storing computer program instructions and data include, by way of example, semiconductor memory devices such as EPROM, EEPROM, flash memory devices, magnetic disks such as internal hard disks or removable disks, magneto-optical disks, and CD- Includes all forms of non-volatile memory, media and memory devices including ROM and DVD-ROM discs. The processor and memory can be supplemented by, or integrated with, special purpose logic circuitry.

ユーザとのインタラクションを提供するために、この明細書に記載される主題の実施形態は、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタといった、情報をユーザに表示するためのディスプレイデバイスと、ユーザが入力をコンピュータに提供する際に使用可能なキーボード、および、たとえばマウス、トラックボール、タッチパッドまたはスタイラスといったポインティングデバイスとを有するコンピュータ上で実現され得る。ユーザとのインタラクションを提供するために、他の種類のデバイスも同様に使用され得る。たとえば、ユーザに提供されるフィードバックは、たとえば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックといった感覚フィードバックの任意の形態であり得、ユーザからの入力は、音響入力、スピーチ入力、または触覚入力を含む任意の形態で受け取られ得る。さらに、コンピュータは、ユーザによって使用されるデバイスへドキュメントを送信することによって、および当該デバイスからドキュメントを受信することによって、ユーザとインタラクションを行い得る。たとえば、ウェブブラウザから受け取られた要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションを行い得る。   In order to provide user interaction, embodiments of the subject matter described herein include a display device for displaying information to a user, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for example. It can be implemented on a computer having a keyboard that can be used by a user to provide input to the computer and a pointing device such as a mouse, trackball, touchpad or stylus. Other types of devices can be used as well to provide user interaction. For example, the feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback, and input from the user can be any form including acoustic input, speech input, or tactile input. Can be received at. Furthermore, the computer may interact with the user by sending the document to a device used by the user and by receiving the document from the device. For example, the user may be interacted with by sending a web page to a web browser on the user's client device in response to a request received from the web browser.

この明細書に記載される主題の実施形態は、バックエンドコンポーネントをたとえばデータサーバとして含むコンピューティングシステムにおいて実現され得るか、またはミドルウェアコンポーネントをたとえばアプリケーションサーバとして含むコンピューティングシステムにおいて実現され得るか、または、たとえば、ユーザがこの明細書に記載される主題の実現例とインタラクションし得るグラフィカルユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータといったフロントエンドコンポーネントを含むコンピューティングシステムにおいて実現され得るか、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムにおいて実現され得る。システムのコンポーネントは、たとえば通信ネットワークといった、任意の形態または媒体のデジタルデータ通信によって相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)と、ワイドエリアネットワーク(「WAN」)と、インターネットワーク(たとえばインターネット)と、ピアツーピアネットワーク(たとえばアドホックピアツーピアネットワーク)とを含む。   Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, for example, as a data server, or can be implemented in a computing system that includes a middleware component, for example, as an application server, or Can be implemented in a computing system that includes a front-end component such as, for example, a client computer having a graphical user interface or web browser that allows a user to interact with an implementation of the subject matter described herein, or such back A computing system that includes any combination of end, middleware, or front-end components May be Oite realized. The components of the system can be interconnected by any form or medium of digital data communication, eg, a communication network. Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), an internetwork (eg, the Internet), and a peer-to-peer network (eg, an ad hoc peer-to-peer network).

コンピューティングシステムはクライアントおよびサーバを含み得る。クライアントおよびサーバは一般に互いにリモートであり、典型的に通信ネットワークを介してインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されて互いにクライアント−サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、(たとえば、クライアントデバイスとインタラクションするユーザにデータを表示し、かつ、当該ユーザからユーザ入力を受信する目的のために)クライアントデバイスにデータ(たとえばHTMLページ)を送信する。クライアントデバイスにて生成されるデータ(たとえばユーザインタラクションの結果)は、サーバにおいてクライアントデバイスから受け取られ得る。   The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship between the client and the server is caused by computer programs that are executed on the respective computers and have a client-server relationship with each other. In some embodiments, the server sends data (eg, an HTML page) to the client device (eg, for the purpose of displaying data to a user interacting with the client device and receiving user input from the user). Send. Data generated at the client device (eg, a result of user interaction) may be received from the client device at the server.

この明細書は多くの特定の実現例の詳細を含んでいるが、これらは如何なる発明の範囲または特許請求され得るものの範囲に対する限定として解釈されるべきでなく、むしろ特定の発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態のコンテキストでこの明細書に記載されているある特徴はさらに、単一の実施形態において組み合わせで実現され得る。反対に、単一の実施形態のコンテキストで記載されているさまざまな特徴はさらに、複数の実施形態において別々に実現され得るか、または、任意の好適なサブコンビネーションで実現され得る。さらに、上記では、特徴はある組み合わせで作用するように記載され得、最初はそのように特許請求され得るが、特許請求される組み合わせからの1つ以上の特徴は、いくつかの場合において、当該組み合わせから削除され得、また、特許請求される組み合わせは、サブコンビネーションまたはサブコンビネーションの変形例に向けられ得る。   This specification includes details of many specific implementations, but these should not be construed as limitations on the scope of any invention or what may be claimed, but rather specific embodiments of a particular invention. Should be construed as an explanation of the features specific to Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Further, in the above, features may be described as acting in a combination and initially claimed as such, but one or more features from the claimed combination may in some cases be Combinations can be deleted from the combinations, and the claimed combinations can be directed to sub-combinations or variations of sub-combinations.

同様に、動作は図面において特定の順序で示されているが、これは、望ましい結果を達成するために、そのような動作が示された特定の順序もしくは連続した順序で実行されることを必要としていると理解されるべきでなく、または、すべての示された動作が実行されることを必要としていると理解されるべきでない。ある状況では、マルチタスクおよびパラレルプロセッシングが有利であり得る。たとえば、パラレルプロセッシングは複数の言語検出方法を同時に実行するために使用され得る。さらに、上に記載された実施形態におけるさまざまなシステムコンポーネントの分離は、すべての実施形態におけるそのような分離を必要とすると理解されるべきでなく、また、記載されたプログラムコンポーネントおよびシステムは一般に、単一のソフトウェアプロダクトへとともに統合され得るか、または、複数のソフトウェアプロダクトへパッケージングされ得るということが理解されるべきである。   Similarly, operations are shown in a particular order in the drawings, but this requires that such operations be performed in the particular order shown or sequential order to achieve the desired result. Should not be construed as being, or should be understood as requiring that all indicated actions be performed. In certain situations, multitasking and parallel processing may be advantageous. For example, parallel processing can be used to perform multiple language detection methods simultaneously. Further, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and the described program components and systems are generally It should be understood that it can be integrated together into a single software product or packaged into multiple software products.

このように主題の特定の実施形態が説明された。他の実施形態は添付の請求の範囲内にある。いくつかの場合において、請求の範囲に記載されるアクションは、異なる順序で実行され得、それでも望ましい結果を達成し得る。また、添付の図面に示される処理は、所望の結果を達成するために、示されている特定の順序、またはシーケンシャルな順序を必ずしも必要としない。ある実現例では、マルチタスクおよびパラレルプロセッシングが有利であり得る。   Thus, particular embodiments of the subject matter have been described. Other embodiments are within the scope of the appended claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. Also, the processes shown in the accompanying drawings do not necessarily require the particular order shown, or sequential order, to achieve the desired result. In certain implementations, multitasking and parallel processing may be advantageous.

特許請求の範囲   Claims

Claims (20)

メッセージ中の言語を識別する、コンピュータによって実現される方法であって、
テキストメッセージを取得することと、
サニタイズ済テキストメッセージを生成するよう、前記テキストメッセージから非言語文字を除去することと、
前記サニタイズ済テキストメッセージ中に存在するアルファベットおよびスクリプトのうちの少なくとも1つを検出することとを含み、
前記検出することは、
(i)各々が前記サニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語についてのアルファベットを含む尤度を表わすスコアの第1のセットを決定するためにアルファベットベースの言語検出テストを行なうことと、
(ii)各々が前記サニタイズ済テキストメッセージが前記複数の異なる言語のうちの1つの言語についてのスクリプトを含む尤度を表わすスコアの第2のセットを決定するためにスクリプトベースの言語検出テストを行なうこととのうちの少なくとも1つを含んでおり、
前記方法はさらに、
前記スコアの第1のセットと、前記スコアの第2のセットと、前記スコアの第1および第2のセットの組み合わせとのうちの少なくとも1つに基づき、前記サニタイズ済テキストメッセージ中の前記言語を識別することを含む、方法。
A computer-implemented method for identifying the language in a message,
Getting a text message,
Removing non-language characters from the text message so as to generate a sanitized text message;
Detecting at least one of an alphabet and a script present in the sanitized text message;
The detecting is
(I) performing an alphabet-based language detection test to determine a first set of scores each representing a likelihood that the sanitized text message includes an alphabet for one of a plurality of different languages; When,
(Ii) A script-based language detection test is performed to determine a second set of scores each representing the likelihood that the sanitized text message includes a script for one of the plurality of different languages. And at least one of
The method further includes:
Based on at least one of the first set of scores, the second set of scores, and the combination of the first and second sets of scores, the language in the sanitized text message is A method comprising identifying.
前記非言語文字は、絵文字および数字のうちの少なくとも1つを含む、請求項1に記載の方法。   The method of claim 1, wherein the non-language characters include at least one of a pictograph and a number. 前記組み合わせは、前記スコアの第1および第2のセットの間の補間を含む、請求項1に記載の方法。   The method of claim 1, wherein the combination includes an interpolation between the first and second sets of scores. 前記サニタイズ済テキストメッセージ中の前記言語を識別することは、各々が前記サニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語を含む尤度を表わすスコアの第3のセットを生成するために前記サニタイズ済テキストメッセージに対して言語検出テストを行なうことを含む、請求項1に記載の方法。   Identifying the language in the sanitized text message to generate a third set of scores each representing a likelihood that the sanitized text message includes one of a plurality of different languages. The method of claim 1, comprising performing a language detection test on the sanitized text message. 前記言語検出テストは、前記スコアの第1のセット、前記スコアの第2のセット、および、前記スコアの第1および第2のセットの前記組み合わせのうちの前記少なくとも1つに基づいて、複数の言語検出テストから選択される、請求項4に記載の方法。   The language detection test is based on the at least one of the first set of scores, the second set of scores, and the combination of the first and second sets of scores. The method of claim 4, selected from language detection tests. 前記言語検出テストは、言語検出方法および1つ以上の分類器を含む、請求項4に記載の方法。   The method of claim 4, wherein the language detection test includes a language detection method and one or more classifiers. 前記言語検出方法は、辞書ベースの言語検出テスト、nグラム言語検出テスト、アルファベットベースの言語検出テスト、スクリプトベースの言語検出テスト、および、ユーザ言語プロファイル言語検出テストのうちの少なくとも1つを含む、請求項6に記載の方法。   The language detection method includes at least one of a dictionary-based language detection test, an n-gram language detection test, an alphabet-based language detection test, a script-based language detection test, and a user language profile language detection test. The method of claim 6. 前記1つ以上の分類器は、教師あり学習モデル、部分教師あり学習モデル、教師なし学習モデルおよび補間のうちの少なくとも1つを含む、請求項6に記載の方法。   The method of claim 6, wherein the one or more classifiers include at least one of a supervised learning model, a partially supervised learning model, an unsupervised learning model, and interpolation. 前記サニタイズ済テキストメッセージ中の前記言語を識別するために、1つ以上の分類器を使用して前記スコアの第3のセットを処理することを含む、請求項4に記載の方法。   5. The method of claim 4, comprising processing the third set of scores using one or more classifiers to identify the language in the sanitized text message. 前記サニタイズ済テキストメッセージが、識別された前記言語であるという指示を前記1つ以上の分類器から出力することを含み、前記指示は信頼スコアを含む、請求項9に記載の方法。   The method of claim 9, comprising outputting an indication from the one or more classifiers that the sanitized text message is the identified language, wherein the indication includes a confidence score. メッセージ中の言語を識別するための、コンピュータによって実現されるシステムであって、
サニタイザモジュールを含み、前記サニタイザモジュールは、テキストメッセージを取得するとともに、サニタイズ済テキストメッセージを生成するよう前記テキストメッセージから非言語文字を除去し、
前記システムはさらに、
グルーパモジュールを含み、前記グルーパモジュールは、前記サニタイズ済テキストメッセージ中に存在するアルファベットおよびスクリプトのうちの少なくとも1つを検出し、前記グルーパモジュールは、
各々が前記サニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語についてのアルファベットを含む尤度を表わすスコアの第1のセットを決定するためにアルファベットベースの言語検出テストを行なうことと、
各々が前記サニタイズ済テキストメッセージが前記複数の異なる言語のうちの1つの言語についてのスクリプトを含む尤度を表わすスコアの第2のセットを決定するためにスクリプトベースの言語検出テストを行なうこととうちの少なくとも1つを含む動作を実行するように動作可能であり、
前記システムはさらに、
言語検出器モジュールを含み、前記言語検出器モジュールは、前記スコアの第1のセットと、前記スコアの第2のセットと、前記スコアの第1および第2のセットの組み合わせとのうちの少なくとも1つに基づき、前記サニタイズ済テキストメッセージ中の前記言語を識別する、システム。
A computer-implemented system for identifying the language in a message,
A sanitizer module, wherein the sanitizer module obtains a text message and removes non-language characters from the text message to generate a sanitized text message;
The system further includes:
A grouper module that detects at least one of alphabets and scripts present in the sanitized text message, the grouper module comprising:
Performing an alphabet-based language detection test to determine a first set of scores each representing the likelihood that the sanitized text message includes an alphabet for one of a plurality of different languages;
Performing a script-based language detection test to determine a second set of scores each representing a likelihood that the sanitized text message includes a script for one of the plurality of different languages. Is operable to perform an action including at least one of
The system further includes:
A language detector module, wherein the language detector module is at least one of the first set of scores, the second set of scores, and the combination of the first and second sets of scores. Identifying the language in the sanitized text message based on
前記非言語文字は、絵文字および数字のうちの少なくとも1つを含む、請求項11に記載のシステム。   The system of claim 11, wherein the non-language characters include at least one of pictographs and numbers. 前記組み合わせは、前記スコアの第1および第2のセットの間の補間を含む、請求項11に記載のシステム。   The system of claim 11, wherein the combination includes an interpolation between the first and second sets of scores. 前記グルーパモジュールは、
前記スコアの第1のセットと、前記スコアの第2のセットと、前記スコアの第1および第2のセットの前記組み合わせとのうちの前記少なくとも1つに基づき、複数の言語検出器モジュールから前記言語検出器モジュールを選択することを含む動作を実行するように動作可能である、請求項11に記載のシステム。
The grouper module is
Based on the at least one of the first set of scores, the second set of scores, and the combination of the first and second sets of scores, from a plurality of language detector modules The system of claim 11, wherein the system is operable to perform an operation that includes selecting a language detector module.
前記言語検出器モジュールは、各々が前記サニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語を含む尤度を表わすスコアの第3のセットを生成するために前記サニタイズ済テキストメッセージに対して言語検出テストを行なうことを含む動作を実行するように動作可能な言語検出方法モジュールを含む、請求項11に記載のシステム。   The language detector module is configured for the sanitized text message to generate a third set of scores each representing a likelihood that the sanitized text message includes one of a plurality of different languages. The system of claim 11, comprising a language detection method module operable to perform operations including performing a language detection test. 前記言語検出テストは、辞書ベースの言語検出テスト、nグラム言語検出テスト、アルファベットベースの言語検出テスト、スクリプトベースの言語検出テスト、および、ユーザ言語プロファイル言語検出テストのうちの少なくとも1つを含む、請求項15に記載のシステム。   The language detection test includes at least one of a dictionary-based language detection test, an n-gram language detection test, an alphabet-based language detection test, a script-based language detection test, and a user language profile language detection test. The system according to claim 15. 前記言語検出器モジュールは、前記サニタイズ済テキストメッセージ中の前記言語を識別するために、1つ以上の分類器を使用して前記スコアの第3のセットを処理することを含む動作を実行するように動作可能な分類器モジュールを含む、請求項15に記載のシステム。   The language detector module performs an operation including processing the third set of scores using one or more classifiers to identify the language in the sanitized text message. The system of claim 15, comprising a classifier module operable on the system. 前記1つ以上の分類器は、教師あり学習モデル、部分教師あり学習モデル、教師なし学習モデルおよび補間のうちの少なくとも1つを含む、請求項17に記載のシステム。   The system of claim 17, wherein the one or more classifiers include at least one of a supervised learning model, a partially supervised learning model, an unsupervised learning model, and interpolation. 前記分類器モジュールは、前記サニタイズ済テキストメッセージが、識別された前記言語であるという指示を出力することを含む動作を実行するように動作可能であり、前記指示は信頼スコアを含む、請求項17に記載のシステム。   The classifier module is operable to perform an operation that includes outputting an indication that the sanitized text message is the identified language, wherein the indication includes a confidence score. The system described in. 物品であって、
命令を格納する一時的でないコンピュータ読取可能媒体を含み、前記命令は、1つ以上のコンピュータによって実行されると、前記コンピュータに、
テキストメッセージを取得することと、
サニタイズ済テキストメッセージを生成するよう、前記テキストメッセージから非言語文字を除去することと、
前記サニタイズ済テキストメッセージ中に存在するアルファベットおよびスクリプトのうちの少なくとも1つを検出することとを含む動作を実行させ、
前記検出することは、
(i)各々が前記サニタイズ済テキストメッセージが複数の異なる言語のうちの1つの言語についてのアルファベットを含む尤度を表わすスコアの第1のセットを決定するためにアルファベットベースの言語検出テストを行なうことと、
(ii)各々が前記サニタイズ済テキストメッセージが前記複数の異なる言語のうちの1つの言語についてのスクリプトを含む尤度を表わすスコアの第2のセットを決定するためにスクリプトベースの言語検出テストを行なうこととのうちの少なくとも1つを含んでおり、
前記命令はさらに、前記1つ以上のコンピュータによって実行されると、前記コンピュータに、
前記スコアの第1のセットと、前記スコアの第2のセットと、前記スコアの第1および第2のセットの組み合わせとのうちの少なくとも1つに基づき、前記サニタイズ済テキストメッセージ中の前記言語を識別することを含む動作を実行させる、物品。
Goods,
Including a non-transitory computer readable medium storing instructions, wherein the instructions, when executed by one or more computers, include:
Getting a text message,
Removing non-language characters from the text message to generate a sanitized text message;
Detecting at least one of an alphabet and a script present in the sanitized text message,
The detecting is
(I) performing an alphabet-based language detection test to determine a first set of scores each representing a likelihood that the sanitized text message includes an alphabet for one of a plurality of different languages; When,
(Ii) A script-based language detection test is performed to determine a second set of scores each representing the likelihood that the sanitized text message includes a script for one of the plurality of different languages. And at least one of
The instructions are further executed by the one or more computers to the computer,
Based on at least one of the first set of scores, the second set of scores, and the combination of the first and second sets of scores, the language in the sanitized text message is An article that causes an action including identifying to be performed.
JP2019517966A 2016-10-03 2017-10-02 System and method for language detection Pending JP2019535082A (en)

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
JP2019535082A true JP2019535082A (en) 2019-12-05

Family

ID=60162256

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019517966A Pending JP2019535082A (en) 2016-10-03 2017-10-02 System and method for language detection

Country Status (6)

Country Link
EP (1) EP3519984A1 (en)
JP (1) JP2019535082A (en)
CN (1) CN110023931A (en)
AU (1) AU2017339433A1 (en)
CA (1) CA3039085A1 (en)
WO (1) WO2018067440A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023511791A (en) * 2020-04-10 2023-03-22 キヤノン オイローパ エヌ.ヴェー. text classification
KR102847058B1 (en) * 2024-12-19 2025-08-14 김세호 Method for processing natural language using artificial intelligence model

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG10202010249TA (en) * 2019-10-18 2021-05-28 Affle Int Pte Ltd Method and system for adopting user learnings across vernacular contexts
CN113269009B (en) * 2020-02-14 2025-05-30 微软技术许可有限责任公司 Text Recognition in Images

Family Cites Families (4)

* Cited by examiner, † Cited by third party
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
US8326602B2 (en) * 2009-06-05 2012-12-04 Google Inc. Detecting writing systems and languages
WO2016060687A1 (en) * 2014-10-17 2016-04-21 Machine Zone, Inc. System and method for language detection

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023511791A (en) * 2020-04-10 2023-03-22 キヤノン オイローパ エヌ.ヴェー. text classification
JP7282989B2 (en) 2020-04-10 2023-05-29 キヤノン オイローパ エヌ.ヴェー. text classification
KR102847058B1 (en) * 2024-12-19 2025-08-14 김세호 Method for processing natural language using artificial intelligence model

Also Published As

Publication number Publication date
EP3519984A1 (en) 2019-08-07
CA3039085A1 (en) 2018-04-12
CN110023931A (en) 2019-07-16
WO2018067440A1 (en) 2018-04-12
AU2017339433A1 (en) 2019-05-02

Similar Documents

Publication Publication Date Title
US9535896B2 (en) Systems and methods for language detection
US10699073B2 (en) Systems and methods for language detection
JP5475795B2 (en) Custom language model
CN109299228B (en) Computer-implemented text risk prediction method and device
US8380488B1 (en) Identifying a property of a document
US20190087417A1 (en) System and method for translating chat messages
CA3089001A1 (en) System and method for language translation
JP2019504413A (en) System and method for proposing emoji
KR20220149617A (en) Language detection of user input text for online gaming
KR101326354B1 (en) Transliteration device, recording medium, and method
CN110717327A (en) Title generating method, apparatus, electronic device and storage medium
JP6553180B2 (en) System and method for language detection
WO2018093926A1 (en) Semi-supervised training of neural networks
JP2010537286A (en) Creating an area dictionary
CN108475264B (en) Machine translation method and device
KR20120042829A (en) Detecting writing systems and languages
JP2019535082A (en) System and method for language detection
CN111859940A (en) Keyword extraction method and device, electronic equipment and storage medium
CN114416943A (en) Training method and device for dialogue model, electronic equipment and storage medium
JP6563350B2 (en) Data classification apparatus, data classification method, and program
JP6605997B2 (en) Learning device, learning method and program
JP2015018372A (en) Expression extraction model learning device, expression extraction model learning method and computer program
JP2019215876A (en) System and method for language detection