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

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

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

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

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

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

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

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


person MrD    schedule 07.04.2011    source источник
comment
Удалось ли вам создать CLD как разделяемую библиотеку? Не могли бы вы поделиться этим?   -  person Stuart    schedule 19.10.2011
comment
@Стюарт, да, есть. Вам нужно передать это в качестве аргумента при сборке: ./build/gyp_chromium -f make -D library=shared_library затем взять только ту библиотеку, которую вы хотите make cld. Полные инструкции здесь code.google.com/p/chromium/wiki/LinuxFasterBuilds.   -  person MrD    schedule 19.10.2011


Ответы (3)


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

person Fred Foo    schedule 10.04.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/

person Vinh Khuc    schedule 19.01.2012
comment
К сожалению, ссылка для скачивания не работает. Единственный выход - построить банку. - person KeyMaker00; 21.04.2020

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

person Ayan Bhuyan    schedule 11.04.2012