Визначення мови
Ідентифікація мови (англ. language identification), в методиці обробки природної мови — визначення мови. Проблема ідентифікації мови є особливим випадком категоризації тексту і вирішується з використанням статистичних методів.
Огляд
Для ідентифікації мови реалізується архітектура PPRLM (parallel phonemes recognition + language model) з паралельним підключенням фонетичних розпізнавачів, навчених на декількох мовах. Фонетичне розпізнавання виконується на основі прихованих марковських моделей (ПММ) за допомогою алгоритму Вітербі.
Для прийняття рішення щодо приналежності мовного повідомлення до тієї чи іншої цільової мови реалізується підхід з класифікатором на основі методу опорних векторів (SVM — support vector machines).
Принцип роботи системи, побудованої на основі класичного PPRLM, полягає в наступному:
- в системі присутні кілька фонетичних розпізнавачів;
- кожен вхідний звуковий файл розпізнається фонетичними розпізнавачами;
- за результуючою послідовністю фонем кожного фонетичного розпізнавача рахуються міри близькості до моделі n-gramm тієї чи іншої цільової мови;
- мова з максимальною мірою близькості моделі n-gramm вважається такою, що перемогла.
У вдосконалених системах PPRLM ідентифікація мови реалізується у вигляді відкритої задачі: проводиться перевірка: «належить» / «не належить» оброблений файл цільовій мові, рішення приймається автоматично з урахуванням порога, встановленого користувачем.
До базового алгоритму додаються наступні кроки:
- на результуючу послідовність фонем кожного фонетичного розпізнавача накладається модель n-gramm тієї чи іншої "опорної" мови і рахуються міри близькості моделі n-gramm до послідовності фонем;
- повний набір мір близькості моделей n-gramm до послідовностей фонем є вхідним вектором для класифікатора SVM;
- за результатом класифікації SVM-класифікатором приймається рішення про приналежність до цільової мови за допомогою порівняння з встановленим порогом для кожної цільової мови окремо.
Звуковий файл є вимовленим цільовою мовою, якщо оцінка, що надана SVM-класифікатором, більше порога. При цьому звуковий файл може бути віднесений до однієї або декількох мов одночасно або не віднесений до жодної з них.
Література
- Joshua Goodman. Extended Comment on Language Trees and Zipping. arXiv: cond-mat/0202383 [cond-mat.stat-mech]
- Benedetto, D., E. Caglioti and V. Loreto. Language trees and zipping. Physical Review Letters, 88:4 (2002), Complexity theory.
- Cavnar, William B. and John M. Trenkle. «N-Gram-Based Text Categorization». Proceedings of SDAIR-94, 3rd Annual Symposium on Document Analysis and Information Retrieval (1994) .
- Cilibrasi, Rudi and Paul M.B. Vitanyi. «Clustering by compression». IEEE Transactions on Information Theory 51(4), April 2005, 1523—1545.
- Dunning, T. (1994) «Statistical Identification of Language». Technical Report MCCS 94-273, New Mexico State University, 1994.
- Goodman, Joshua. (2002) Extended comment on «Language Trees and Zipping». Microsoft Research, Feb 21 2002. (This is a criticism of the data compression in favor of the Naive Bayes method.)
- Grefenstette, Gregory. (1995) Comparing two language identification schemes. Proceedings of the 3rd International Conference on the Statistical Analysis of Textual Data (JADT 1995).
- Poutsma, Arjen. (2001) Applying Monte Carlo techniques to language identification. SmartHaven, Amsterdam. Presented at CLIN 2001.
- The Economist. (2002) «The elements of style: Analysing compressed data leads to impressive results in linguistics»
Посилання
Бібліотеки
- LID — Language Identification in Python: algorithm and code example of an n-gram based LID tool in Python and Scheme by Damir Cavar.
- lid Language Identifier: by Lingua-Systems; C/C++ library and Perl Extension (online demo).
- lc4j, a language categorization Java library, by Marco Olivo.
- Microsoft Extended Linguistic Services for Windows 7: including Microsoft Language Detection.
- Windows 7 API Code Pack for .NET: including managed interfaces for the above.
- NTextCat — free Language Identification API for .NET (C#): 280+ languages available out of the box. Recognizes language and encoding (UTF-8, Windows-1252, Big5, etc.) of text. Mono compatible.
- jsli — pure JavaScript Language Identification library.
- cldr-R library for Chromium-Author’s Compact Language Detection code.
- language-detection: open-source language detection library for Java (forks: lang-guess and language-detector).
- cld2: open-source language detection library for C++ by Google
- GuessLanguage: open-source language detection library for javascript
- GuessLanguage: open-source language detection library for python
- Text LanguageDetect: pear language detect (not maintained currently)
- datagram: open-source MIT JavaScript classification library. Automatically classify and recognize languages of input data. It can be used for any type of classification based on trained data.
Web-сервіси
- Language Identification Web Service: language detection API (JSON and XML) that detects 100+ languages in texts, websites and documents
- Language Detection API: simple language identification API
- dataTXT-LI: language identification RESTful API, part of dandelion dataTXT semantic API family (named entity extraction, text similarity etc.)
- AlchemyAPI: language identification API, available as SDK and through a RESTfull API (web-based demonstration).
- PetaMem Language Identification: provides a choice between ngram, nvect and smart methods.
- Open Xerox LanguageIdentifier, available in web-based form or through API.
- GlobalNLP: web-based language identification
- Language Detector, Online identification from text or URL and API available for developers.
- What Language Is This? Online language identifier: web-based tool written by Henrik Falck.
- Rosette Language Identifier: product by Basis Technology.
- Language Identifier: product by Sematext; exposes Java API and is available through REST/Webservice.
- G2LI (Global Information Infrastructure Laboratory’s Language Identifier).
- Rosoka Cloud by IMT Holdings provides language ID, entity and relationship extraction RESTfull web services available through Amazon Web Services Marketplace.
- Semantria sentiment and text analytics API which features language detection
- Loque.la Language Detection API: Website language identification with API, (json/XML)
- «Стэл КС» Идентификация языка: API идентификации языка (11 языков)