Определение языка для очень короткого текста

Я создаю приложение для определения языка коротких текстов, в среднем < 100 символов и содержит сленг (например, твиты, пользовательские запросы, смс).

Все библиотеки, которые я тестировал, хорошо работают для обычных веб-страниц, но не для очень короткого текста. Библиотека, которая дает наилучшие результаты, - это библиотека Chrome Language Detection (CLD), которую я должен был создать как общую библиотеку.

CLD терпит неудачу, когда текст состоит из очень коротких слов. Посмотрев на исходный код CLD, я вижу, что он использует 4 грамма, так что это может быть причиной.

Подход, о котором я сейчас думаю, чтобы улучшить точность:

  • Удалить названия брендов, номера, URL-адреса и такие слова, как "программное обеспечение", "скачать", "Интернет"
  • Используйте словарь, когда текст содержит несколько коротких слов над тройкой или когда он содержит слишком мало слов.
  • Словарь создан из новостных статей Википедии + словарей Hunspell.

Какой набор данных наиболее подходит для этой задачи? И как я могу улучшить этот подход?

До сих пор я использую статьи EUROPARL и Wikipedia. Я использую NLTK для большей части работы.

3 ответа

Решение

Определение языка для очень коротких текстов является темой текущего исследования, поэтому не может быть дан окончательный ответ. Алгоритм для данных Twitter можно найти в Carter, Tsagkias и Weerkamp 2011. Смотрите также ссылки там.

Да, это тема исследования, и был достигнут определенный прогресс.

Например, автор "определения языка" по адресу http://code.google.com/p/language-detection/ создал новые профили для коротких сообщений. В настоящее время он поддерживает 17 языков.

Я сравнил его с Bing Language Detector, собрав около 500 твитов, в основном на английском и испанском языках. Точность заключается в следующем:

   Bing = 71.97%
   Language-Detection Tool with new profiles = 89.75%

Для получения дополнительной информации вы можете проверить его блог: http://shuyo.wordpress.com/2011/11/28/language-detection-supported-17-language-profiles-for-short-messages/

Также опустите научные названия или названия лекарств и т. Д. Ваш подход мне кажется вполне подходящим. Я думаю, что википедия - лучший вариант для создания словаря, поскольку он содержит стандартный язык. Если у вас нет времени, вы также можете использовать газеты.

Другие вопросы по тегам