У меня есть текстовые файлы на нескольких языках. Как выборочно удалить один язык в NLTK? - PullRequest
1 голос
/ 26 августа 2010

Может быть, это просто невозможно, и я должен отказаться от всякой надежды.Или, может быть, есть действительно умный способ сделать это, о котором я даже не подумал.

Вот два примера того, что я получил:

يَبِسَ - يَيْبَسُ (yabisa, yaybasu) [ybs] [ي-ب-س] (чтобы стать сухим, жестким, жестким) 20:77 yabasan = dry.يَسَّرَ - يُيَسِّرُ (yassara, yuyassiru) [ysr] [ي-س-ر] (Чтобы облегчить, облегчить) 92: 7 nuyassiruhuu = Мы ослабим его.

и

Зу Хюльфе!zu Hülfe!Помогите!Помогите!
Sonst bin ich verloren!Иначе я потерялся!Зу Хюльфе!Зу Хюльфе!Помогите!Помогите!Sonst bin ich verloren!Иначе я потерялся!Der listigen Schlange zum Opfer erkoren, выбранный как предложение хитрой змеи, Barmherzigige Götter!Милосердные Боги!Schon nahet sie sich, уже становится ближе, Schon nahet sie sich, уже становится ближе,

... было бы очень неприятно просматривать и удалять один язык для дальнейшей обработки этихстроки текста.

Один из способов, которым я думал, что это можно сделать в NLTK, - это разбить текст на токены, иметь некоторый способ узнать происхождение каждого токена на основе небольшого корпуса, а затем попросить NLTK:«собери» только жетоны по моему выбору.Это просто дикая фантазия?

1 Ответ

2 голосов
/ 08 сентября 2010

Вы можете использовать nltk.NaiveBayesClassifier, чтобы сделать работу точно так, как вы сказали выше.

Следующая ссылка должна помочь: http://nltk.googlecode.com/svn/trunk/doc/book/ch06.html

В ней есть пример использования nltk.NaiveBayesClassifierгендерная идентификация.вы используете то же самое для идентификации языка.

Первый пример, который вы процитировали, будет хорошо работать с nltk.NaiveBayesClassifier, поскольку набор юникодов совершенно другой.

Во втором примере есть возможностьтакие слова, как имена собственные, пишутся одинаково на обоих языках, что может привести к некоторой ошибке при идентификации языка.

...