Pull to refresh

Comments 8

>А части речи использовались для фильтрации лишних слов: местоимений, числительных, междометий(был не важен эмоциональный окрас) итд.
А как омонимия решалась тогда?
Вот, скажем, встретилось слово «мой» — оно как местоимение отсеялось или осталось, т.к. посчиталось глаголом?
Не надо ждать от компьютера чудес, он бывает и ошибается, конкретно слово «мой» большой роли не сыграло бы, в любом случае.

В freeling есть словарь, где просчитаны вероятность, значения слова-омонима. По этому выбирался наиболее вероятный вариант.
Справедливо. Такие инструменты есть. Соглашусь что nltk не часто используется, хотя штука полезная.

Но, несколько моментов: на счет качества, на счет скорости и на счет легкости вхождения.

Когда битва начинается за проценты качества nltk не помогает, а больше мешает. К примеру таггер я банально переписал, используя liblinear, потому что из коробки (и даже после перетренировки) он давал очень плохой результат на данных из твиттера.

Далее, некотоыре моменты сделаны откровенно неоптимально. Возможно, я кое-чего недоглядел, но вычисление того-же tf-idf происходило экстремально долго. Пришлось переписать (правда, кода на 10 строк с numpy). Кроме того, нешустро работали и классификаторы на более-менее приличных объемах. Было еще несколько моментов, где пришлось отказаться от nltk.

Про легкость вхождения. Здесь вы правы. Я когда-то читал nltk book. Изложение простое, лаконичное. Но тут есть проблема — оно слишком поверхностное. Так как рано или поздно вам понадобятся знания как именно устроен тот или иной классификатор, что такое энтропия и перплексия, как работаю парсеры и регекспы, и т.п.

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

С Freeling не работал, так что здесь молчу.
Надо же с чего то начинать, для этого мне и пригодился nltk.

NLTK не обязательно брать за основу, но некоторые инструменты все таки не будут лишними(хотя их можно и заменить), такие как токенизатор, стеммер. Банальные вещи зато готовые
Спасибо большое за наводку на freeling. «Нормализация и определение дат и чисел» — именно то, что совсем скоро мне понадобится!
Если Java рассматривается в качестве платформы, то посмотрите ещё в сторону GATE Framework. Там есть свой regex-like язык (JAPE), который позволяет писать правила и для дат, и для чисел, и для любых форматированных строк.
Можно еще добавить scikit-learn.org/ к этому списку — это библиотека, в которой собрано почти все, что нужно для машинного обучения: много разных классификаторов (с хорошей реализацией, все что угодно), подсчет tf-idf, есть cython-реализация HMM (в дев-версии с гитхаба) и т.д.
Sign up to leave a comment.

Articles

Change theme settings