Передача строк Python в Mallet для тематического моделирования

Я создаю корпус текстов, собранных вместе с некоторыми метаданными из HTML с помощью BeautifulSoup. Было бы очень полезно, если бы я мог вызывать Mallet из Python и моделировать темы из строк Python, а не из текстовых файлов в каталоге. Таким образом, я мог поместить n ключевых слов, найденных Маллетом, в каждый файл.

Я получаю сообщение о том, что Маллет был распознан, когда я запускаю:

from nltk.classify import mallet
from subprocess import call
mallet.config_mallet("malletdir/mallet-2.0.7/bin")

Но мне не повезло со следующими шагами, и я даже не уверен, что Mallet принимает что-либо, кроме сохраненных файлов.

Мне не удалось найти документацию, которую я действительно могу понять. Кто-нибудь видел удобоваримую документацию для этого? (Книга NLTK не попадает в Маллет). Я также был бы рад узнать о любых других средствах тематического моделирования в Python, которые я мог бы использовать без действительно глубоких знаний Python.

Извините, это мое первое родео.


person user2437842    schedule 18.03.2014    source источник


Ответы (2)


Если вы все еще ищете решение: у Gensim (пакет тематического моделирования/машинного обучения Python) есть оболочка для Mallet, которая проста в использовании и хорошо документирована. здесь приведены некоторые учебные пособия по Gensim и конкретные tutorial для оболочки Mallet. Вы также можете прочитать некоторые инструкции по установке (в основном часть о настройке памяти Java) здесь и тогда вы будете готовы к работе.

person MrFancypants    schedule 03.12.2014

Однажды я попытался внедрить Mallet с проектом NLTK и тоже столкнулся с мертвыми конец за тупиком. Я думаю, что здесь главное помнить, что Mallet основан на Java, а NLTK написан на Python.

Вы уже знали это, но я хочу сказать, что лично я боролся со смешиванием технологий, потому что у меня нет сильного опыта работы с Java. Я получил такой же отзыв от коллег о Mallet с Python: «Будьте готовы потратить много времени на отладку».

С тех пор я использую библиотеку sklearn для Python. Он предназначен для машинного обучения в более общем плане, а не непосредственно для NLP, но может быть использован для него довольно хорошо. Он поставляется с очень большим выбором инструментов моделирования, и большинство из них, похоже, полагаются на NumPy, так что это должно быть красиво. быстро. Я использовал его совсем немного и могу сказать, что он очень хорошо написан и задокументирован.

Я не хочу отговаривать вас от использования Маллета, особенно только потому, что я так сказал. Но если вы открыты для альтернатив, я думаю, вы обнаружите, что при создании проектов с помощью NLTK гораздо проще использовать модули Python, поскольку он сам написан на Python. Надеюсь, это поможет!

person Drewness    schedule 18.03.2014
comment
Да, я немного читал о sklearn, но заставить все работать так же плохо, в настоящее время --- я на OSX Lion, и я не могу правильно установить Scipy или matplotlib! Предполагая, что могу, этот метод кажется вам правильным: scikit-learn.org /stable/auto_examples/applications/ ? Извините, что беспокою вас - в целом это довольно второстепенный компонент диссертации, и я бы предпочел не заходить слишком далеко в тупики. - person user2437842; 19.03.2014
comment
Да, это отличный пример. - person Drewness; 19.03.2014