| Index: third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/compact_lang_det.h | 
| =================================================================== | 
| --- third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/compact_lang_det.h	(revision 0) | 
| +++ third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/compact_lang_det.h	(revision 0) | 
| @@ -0,0 +1,199 @@ | 
| +// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +// NOTE: | 
| +// This code has not yet been evaluated against LangId, which is the official | 
| +// production language identification system. However, it seems to be of | 
| +// similar precison overall, and it covers all the Google languages in | 
| +//   i18n/languages/proto/languages.proto | 
| +// except the four Creoles_and_Pigins. | 
| + | 
| +// Baybayin (ancient script of the Philippines) is detected as TAGALOG. | 
| +// Chu Nom (Vietnamese ancient Han characters) is detected as VIETNAMESE. | 
| +// HAITIAN_CREOLE is detected as such. | 
| +// NORWEGIAN and NORWEGIAN_N are detected separately (but not robustly) | 
| +// PORTUGUESE, PORTUGUESE_P, and PORTUGUESE_B are all detected as PORTUGUESE. | 
| +// ROMANIAN-Latin is detected as ROMANIAN; ROMANIAN-Cyrillic as MOLDAVIAN. | 
| +// SERBO_CROATIAN, BOSNIAN, CROATIAN, SERBIAN, MONTENEGRIN in the Latin script | 
| +//  are all detected as CROATIAN; in the Cyrillic script as SERBIAN. | 
| +// Zhuang is detected in the Latin script only. | 
| +// | 
| +// The Google interface languages X_PIG_LATIN and X_KLINGON are detected in the | 
| +//  extended calls ExtDetectLanguageSummary(). BorkBorkBork, ElmerFudd, and | 
| +//  Hacker are not detected (too little training data). | 
| +// | 
| +// UNKNOWN_LANGUAGE is returned if no language's internal reliablity measure | 
| +//  is high enough. This happens with non-text input such as the bytes of a | 
| +//  JPEG, and also with some text in languages outside the Google Language | 
| +//  enum, such as Ilonggo. | 
| +// | 
| +// The following languages are detected in multiple scripts: | 
| +//  AZERBAIJANI (Latin, Cyrillic*, Arabic*) | 
| +//  BURMESE (Latin, Myanmar) | 
| +//  HAUSA (Latin, Arabic) | 
| +//  KASHMIRI (Arabic, Devanagari) | 
| +//  KAZAKH (Latin, Cyrillic, Arabic) | 
| +//  KURDISH (Latin*, Arabic) | 
| +//  KYRGYZ (Cyrillic, Arabic) | 
| +//  LIMBU (Devanagari, Limbu) | 
| +//  MONGOLIAN (Cyrillic, Mongolian) | 
| +//  SANSKRIT (Latin, Devanagari) | 
| +//  SINDHI (Arabic, Devanagari) | 
| +//  TAGALOG (Latin, Tagalog) | 
| +//  TAJIK (Cyrillic, Arabic*) | 
| +//  TATAR (Latin, Cyrillic, Arabic) | 
| +//  TURKMEN (Latin, Cyrillic, Arabic) | 
| +//  UIGHUR (Latin, Cyrillic, Arabic) | 
| +//  UZBEK (Latin, Cyrillic, Arabic) | 
| +// | 
| +// * Due to a shortage of training text, AZERBAIJANI is not currently detected | 
| +//   in Arabic or Cyrillic scripts, nor KURDISH in Latin script, nor TAJIK in | 
| +//   Arabic script. | 
| +// | 
| + | 
| +#ifndef I18N_ENCODINGS_COMPACT_LANG_DET_COMPACT_LANG_DET_H_ | 
| +#define I18N_ENCODINGS_COMPACT_LANG_DET_COMPACT_LANG_DET_H_ | 
| + | 
| +#include "third_party/cld/bar/toolbar/cld/i18n/languages/public/languages.h" | 
| +#include "third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/compact_lang_det_impl.h" | 
| + | 
| +namespace CompactLangDet { | 
| +  // Scan interchange-valid UTF-8 bytes and detect most likely language, | 
| +  // or set of languages. | 
| +  // | 
| +  // Design goals: | 
| +  //   Skip over big stretches of HTML tags | 
| +  //   Able to return ranges of different languages | 
| +  //   Relatively small tables and relatively fast processing | 
| +  //   Thread safe | 
| +  // | 
| +  // For HTML documents, tags are skipped, along with <script> ... </script> | 
| +  // and <style> ... </style> sequences, and entities are expanded. | 
| +  // | 
| +  // We distinguish between bytes of the raw input buffer and bytes of non-tag | 
| +  // text letters. Since tags can be over 50% of the bytes of an HTML Page, | 
| +  // and are nearly all seven-bit ASCII English, we prefer to distinguish | 
| +  // language mixture fractions based on just the non-tag text. | 
| +  // | 
| +  // Inputs: text and text_length | 
| +  //  Code skips HTML tags and expands HTML entities, unless | 
| +  //  is_plain_text is true | 
| +  // Outputs: | 
| +  //  language3 is an array of the top 3 languages or UNKNOWN_LANGUAGE | 
| +  //  percent3 is an array of the text percentages 0..100 of the top 3 languages | 
| +  //  text_bytes is the amount of non-tag/letters-only text found | 
| +  //  is_reliable set true if the returned Language is some amount more | 
| +  //  probable then the second-best Language. Calculation is a complex function | 
| +  //  of the length of the text and the different-script runs of text. | 
| +  // Return value: the most likely Language for the majority of the input text | 
| +  //  Length 0 input returns UNKNOWN_LANGUAGE. Very short indeterminate text | 
| +  //  defaults to ENGLISH. | 
| +  // | 
| +  // The first two versions return ENGLISH instead of UNKNOWN_LANGUAGE, for | 
| +  // backwards compatibility with LLD. | 
| +  // | 
| +  // The third version may return UNKNOWN_LANGUAGE, and also returns extended | 
| +  // language codes from ext_lang_enc.h | 
| +  // | 
| +  // Subsetting: For fast detection over large documents, these routines will | 
| +  // scan non-tag text of the initial part of a document, then will | 
| +  // skip 4-16 bytes and subsample text in the rest of the document, up to a | 
| +  // fixed limit (currently 160KB of non-tag letters). | 
| +  // | 
| + | 
| +  // Scan interchange-valid UTF-8 bytes and detect most likely language | 
| +  Language DetectLanguage( | 
| +                          const char* buffer, | 
| +                          int buffer_length, | 
| +                          bool is_plain_text, | 
| +                          bool* is_reliable); | 
| + | 
| +  // Scan interchange-valid UTF-8 bytes and detect list of top 3 languages. | 
| +  // language3[0] is also the return value | 
| +  Language DetectLanguageSummary( | 
| +                          const char* buffer, | 
| +                          int buffer_length, | 
| +                          bool is_plain_text, | 
| +                          Language* language3, | 
| +                          int* percent3, | 
| +                          int* text_bytes, | 
| +                          bool* is_reliable); | 
| + | 
| +  // Same as above, with hints supplied | 
| +  // Scan interchange-valid UTF-8 bytes and detect list of top 3 languages. | 
| +  // language3[0] is also the return value | 
| +  Language DetectLanguageSummary( | 
| +                          const char* buffer, | 
| +                          int buffer_length, | 
| +                          bool is_plain_text, | 
| +                          const char* tld_hint,       // "id" boosts Indonesian | 
| +                          int encoding_hint,          // SJS boosts Japanese | 
| +                          Language language_hint,     // ITALIAN boosts it | 
| +                          Language* language3, | 
| +                          int* percent3, | 
| +                          int* text_bytes, | 
| +                          bool* is_reliable); | 
| + | 
| +  // Scan interchange-valid UTF-8 bytes and detect list of top 3 extended | 
| +  // languages. | 
| +  // | 
| +  // Extended languages are additional Google interface languages and Unicode | 
| +  // single-language scripts, from ext_lang_enc.h. They are experimental and | 
| +  // this call may be removed. | 
| +  // | 
| +  // language3[0] is also the return value | 
| +  Language ExtDetectLanguageSummary( | 
| +                          const char* buffer, | 
| +                          int buffer_length, | 
| +                          bool is_plain_text, | 
| +                          Language* language3, | 
| +                          int* percent3, | 
| +                          int* text_bytes, | 
| +                          bool* is_reliable); | 
| + | 
| +  // Same as above, with hints supplied | 
| +  // Scan interchange-valid UTF-8 bytes and detect list of top 3 extended | 
| +  // languages. | 
| +  // | 
| +  // Extended languages are additional Google interface languages and Unicode | 
| +  // single-language scripts, from ext_lang_enc.h. They are experimental and | 
| +  // this call may be removed. | 
| +  // | 
| +  // language3[0] is also the return value | 
| +  Language ExtDetectLanguageSummary( | 
| +                          const char* buffer, | 
| +                          int buffer_length, | 
| +                          bool is_plain_text, | 
| +                          const char* tld_hint,       // "id" boosts Indonesian | 
| +                          int encoding_hint,          // SJS boosts Japanese | 
| +                          Language language_hint,     // ITALIAN boosts it | 
| +                          Language* language3, | 
| +                          int* percent3, | 
| +                          int* text_bytes, | 
| +                          bool* is_reliable); | 
| + | 
| +  // Same as above, and also returns internal language scores as a ratio to | 
| +  // normal score for real text in that language. Scores close to 1.0 indicate | 
| +  // normal text, while scores far away from 1.0 indicate badly-skewed text or | 
| +  // gibberish | 
| +  // | 
| +  Language ExtDetectLanguageSummary( | 
| +                          const char* buffer, | 
| +                          int buffer_length, | 
| +                          bool is_plain_text, | 
| +                          const char* tld_hint,       // "id" boosts Indonesian | 
| +                          int encoding_hint,          // SJS boosts Japanese | 
| +                          Language language_hint,     // ITALIAN boosts it | 
| +                          Language* language3, | 
| +                          int* percent3, | 
| +                          double* normalized_score3, | 
| +                          int* text_bytes, | 
| +                          bool* is_reliable); | 
| + | 
| +  // Return version text string | 
| +  // String is "code_version - data_scrape_date" | 
| +  const char* DetectLanguageVersion(); | 
| +};      // End namespace CompactLangDet | 
| + | 
| +#endif  // I18N_ENCODINGS_COMPACT_LANG_DET_COMPACT_LANG_DET_H_ | 
|  | 
| Property changes on: third_party\cld\bar\toolbar\cld\i18n\encodings\compact_lang_det\compact_lang_det.h | 
| ___________________________________________________________________ | 
| Added: svn:eol-style | 
| + LF | 
|  | 
|  |