НЛТК и определение языка - PullRequest
32 голосов
/ 06 июля 2010

Как определить, на каком языке написан текст, используя NLTK?

Примеры, которые я видел, используют nltk.detect, но когда я установил его на свой Mac, я не могу найти этот пакет.

Ответы [ 3 ]

36 голосов
/ 02 августа 2010

Вы встречали следующий фрагмент кода?

english_vocab = set(w.lower() for w in nltk.corpus.words.words())
text_vocab = set(w.lower() for w in text if w.lower().isalpha())
unusual = text_vocab.difference(english_vocab) 

из http://groups.google.com/group/nltk-users/browse_thread/thread/a5f52af2cbc4cfeb?pli=1&safe=active

Или следующий демонстрационный файл?

https://web.archive.org/web/20120202055535/http://code.google.com/p/nltk/source/browse/trunk/nltk_contrib/nltk_contrib/misc/langid.py

24 голосов
/ 03 августа 2016

Эта библиотека тоже не из NLTK, но, безусловно, помогает.

$ sudo pip install langdetect

Поддерживаемые версии Python 2.6, 2.7, 3.x.

>>> from langdetect import detect

>>> detect("War doesn't show who's right, just who's left.")
'en'
>>> detect("Ein, zwei, drei, vier")
'de'

https://pypi.python.org/pypi/langdetect?

P.S .: Не ожидайте, что это всегда будет работать правильно:

>>> detect("today is a good day")
'so'
>>> detect("today is a good day.")
'so'
>>> detect("la vita e bella!")
'it'
>>> detect("khoobi? khoshi?")
'so'
>>> detect("wow")
'pl'
>>> detect("what a day")
'en'
>>> detect("yay!")
'so'
19 голосов
/ 30 июня 2013

Хотя этого нет в NLTK, у меня были отличные результаты с другой библиотекой на основе Python:

https://github.com/saffsd/langid.py

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

...