Извлекать только английские предложения - PullRequest
1 голос
/ 12 июля 2011

Мне нужно извлечь посты и твиты из Facebok и Twitter в нашу базу данных для анализа. Моя проблема в том, что система может обрабатывать только английские предложения (фразы). Так, как я могу удалить неанглийские сообщения, твиты из моей базы данных.

Если вы знаете, что любой алгоритм в НЛП может это сделать, скажите, пожалуйста.

Спасибо и всего наилучшего

Ответы [ 6 ]

4 голосов
/ 12 июля 2011

Избежание автоматической идентификации языка, где это возможно, обычно предпочтительнее - например, https://dev.twitter.com/docs/api/1/get/search показывает, что возвращенные твиты содержат поле iso_language_code, которое может быть полезным.

Если этого недостаточно, вам придется либо

  • искать существующие библиотеки идентификации языка на любом языке, который вы используете; или
  • возьмите в руки достаточное количество текста на английском языке (например, дампы английской Википедии или любой другой n-граммовой модели Google) и реализуйте что-то вроде http://www.cavar.me/damir/LID/.
2 голосов
/ 16 июля 2011

Я написал небольшой классификатор языка твитов (английский или нет), который был на 95% точнее, если я правильно помню.Я думаю, что это был просто наивный байес + 1000 учебных примеров.Объедините это с информацией о местоположении, и вы сделаете еще лучше.

2 голосов
/ 13 июля 2011

Я пытался использовать стандартные библиотеки для определения языка в твитах.Вы получите много ложных негативов, потому что в именах, смайлах и т. Д. Много нестандартных символов. Эта проблема более серьезна в небольших постах, где отношение сигнал / шум ниже.

Основная проблема не в алгоритме, а в устаревших источниках данных.Я бы предложил сканировать / транслировать новый из Твиттера.Флаг языка в Twitter основан на географической информации, поэтому он не будет работать во всех случаях.(Китайский человек все еще может делать китайские посты в США).Я бы предложил использовать белый список англоязычных людей и собирать их сообщения.

2 голосов
/ 12 июля 2011

Получить словарь английского языка и посмотреть, есть ли в нем большинство слов в вашем тексте. Поскольку вы просматриваете текст в Интернете, обязательно включите общий сленг и сокращения.

Это может выполняться очень быстро, если вы храните словарь в структуре данных trie .

Я думаю, что необычный НЛП немного излишним для этой задачи. Вам не нужно указывать язык, если он не английский, поэтому все, что вам нужно сделать, это проверить свой текст с некоторыми простыми характеристиками английского языка.

1 голос
/ 23 апреля 2013

Вы пробовали SVD (разложение по одному значению) для LSI (скрытого семантического индексирования) и LSA (скрытого семантического анализа)?см. http://alias -i.com / lingpipe / demos / tutorial / svd / read-me.html

1 голос
/ 13 июля 2011

Я нашел этот проект, исходный код очень понятен.Я проверил, и это работает довольно хорошо.http://code.google.com/p/guess-language/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...