2012-01-05 4 views
5

Sto facendo analisi latine di Dirichlet per alcune ricerche e continuo a incorrere in un problema. La maggior parte dei software LDA richiede che i documenti siano in formato doclines, ovvero un file CSV o altro file delimitato in cui ogni riga rappresenta l'interezza di un documento. Tuttavia, il software modello di argomento dinamico Blei's lda-c richiede che i dati siano nel formato: [M] [term_1]:[count] [term_2]:[count] ... [term_N]:[count] dove [M] è il numero di termini univoci nel documento e il [numero] associato a ciascun termine è quante volte quel termine è apparso nello nel documento. Si noti che [term_1] è un numero intero che indicizza il termine ; non è una stringa.Convertire un documento per linea nel formato lda-c/dtm di Blei per la modellazione degli argomenti?

Qualcuno sa di un'utilità che mi permetterà di convertire rapidamente in questo formato? Grazie.

+0

Incontro problemi simili, trovi le soluzioni? Grazie. – user288609

+1

Non l'ho ancora implementato, ma [questa utility Python] (https://github.com/JoKnopp/text2ldac) è stata pubblicata nella mailing list dei modelli di argomento e dovrebbe prendere i file di testo e convertirli nel formato corretto. – Trey

+0

Grazie mille, è molto utile. – user288609

risposta

4

Se si lavora con R, il pacchetto contiene una funzione ldalexicalize che converte il testo grezzo nel formato lda-C necessari per il pacchetto lda.

example <- c("I am the very model of a modern major general", 
      "I have a major headache") 

corpus <- lexicalize(example, lower=TRUE) 

Analogamente, il pacchetto topicmodels ha una funzione dtm2ldaformat che converte una matrice termine documento al formato lda. È possibile convertire un documento di testo normale in una matrice di termini documento utilizzando il pacchetto tm, anche in R.

Quindi con queste funzioni esistenti c'è molta flessibilità nell'ottenere il testo in R per la modellazione degli argomenti.

2

Gensim offre un'implementazione del formato corpus di Blei. Vedi here. Puoi scrivere un corpus veloce basato sul tuo file CSV in Python e quindi salvarlo in lda-c con gensim. Non dovrebbe essere troppo difficile.