Dopo aver esaminato la documentazione del pacchetto Gensim, ho scoperto che ci sono 4 modi per trasformare un repository di testo in un corpus.
Ci sono un totale di 4 formati per il corpus:
- mercato Matrix (.mm)
- SVM Luce (.svmlight)
- Blie Format (.LAD-c)
- Low Format (.low)
In questo problema, come accennato in precedenza, ci sono in totale 19.188 documenti nel database. Uno deve leggere ogni documento e rimuovere le parole d'arresto e punteggiatura dalle frasi, che può essere fatto utilizzando nltk
.
import gensim
from gensim import corpora, similarities, models
##
##Text Preprocessing is done here using nltk
##
##Saving of the dictionary and corpus is done here
##final_text contains the tokens of all the documents
dictionary = corpora.Dictionary(final_text)
dictionary.save('questions.dict');
corpus = [dictionary.doc2bow(text) for text in final_text]
corpora.MmCorpus.serialize('questions.mm', corpus)
corpora.SvmLightCorpus.serialize('questions.svmlight', corpus)
corpora.BleiCorpus.serialize('questions.lda-c', corpus)
corpora.LowCorpus.serialize('questions.low', corpus)
##Then the dictionary and corpus can be used to train using LDA
mm = corpora.MmCorpus('questions.mm')
lda = gensim.models.ldamodel.LdaModel(corpus=mm, id2word=dictionary, num_topics=100, update_every=0, chunksize=19188, passes=20)
In questo modo si può trasformare il suo set di dati ad un corpus che può essere addestrato per argomento la modellazione utilizzando LDA utilizzando il pacchetto gensim.
fonte
2013-04-28 05:48:43
Questa domanda è un po 'aperta; potresti avere maggiori probabilità di ottenere risposte se puoi essere più specifico su ciò che hai provato finora e su quali problemi specifici stai riscontrando. – ASGM
Ho modificato la domanda! –
Se non ti piace, vota per chiuderlo. –