Я создаю приложение для определения языка коротких текстов, в среднем ‹ 100 символов и содержащих сленг (например, твиты, пользовательские запросы, смс).
Все библиотеки, которые я тестировал, хорошо работают с обычными веб-страницами, но не с очень коротким текстом. Библиотека, которая на данный момент дает наилучшие результаты, — это библиотека Chrome Language Detection (CLD), которую мне пришлось создать как общую библиотеку.
CLD не работает, когда текст состоит из очень коротких слов. Посмотрев исходный код CLD, я вижу, что он использует 4 грамма, так что это может быть причиной.
Подход, о котором я сейчас думаю, чтобы повысить точность:
- Удалите названия брендов, номера, URL-адреса и такие слова, как «программное обеспечение», «скачать», «интернет».
- Используйте словарь Когда текст содержит количество коротких слов выше порогового значения или когда он содержит слишком мало слов.
- Словарь создан из новостных статей Википедии + словарей hunspell.
Какой набор данных наиболее подходит для этой задачи? И как я могу улучшить этот подход?
Пока я использую статьи EUROPARL и Wikipedia. Я использую NLTK для большей части работы.
./build/gyp_chromium -f make -D library=shared_library
затем взять только ту библиотеку, которую вы хотитеmake cld
. Полные инструкции здесь code.google.com/p/chromium/wiki/LinuxFasterBuilds. - person MrD   schedule 19.10.2011