Gensim LDA mit csv-Datei als Input

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
NilsD
User
Beiträge: 1
Registriert: Dienstag 8. Mai 2018, 17:22

Dienstag 8. Mai 2018, 18:24

Hallo zusammen,

ich bin absoluter Neuling in Sachen Python. Komme selber aus den Ingenieurswissenschaften/Wirtschaftswissenschaften und befasse mich für meine Thesis aktuell mit der Analyse von Patenten nach semantischen Mustern. Dafür möchte ich das Topic Modeling, LDA sowie DTM nach David Blei, verwenden. Als grundlegender Code liegt mir das Package Gensim https://github.com/RaRe-Technologies/ge ... damodel.py vor. In vielen Tutorials wie z.B. https://rstudio-pubs-static.s3.amazonaw ... 4867a.html werden direkt im Code die Dokumente eingelesen:

Code: Alles auswählen

from nltk.tokenize import RegexpTokenizer

from gensim import corpora
import gensim

tokenizer = RegexpTokenizer(r'\w+')


  

doc_a = "Brocolli is good to eat. My brother likes to eat good brocolli, but not my mother."
doc_b = "My mother spends a lot of time driving my brother around to baseball practice."
doc_c = "Some health experts suggest that driving may cause increased tension and blood pressure."
doc_d = "I often feel pressure to perform well at school, but my mother never seems to drive my brother to do better."
doc_e = "Health professionals say that brocolli is good for your health." 


doc_set = [doc_a, doc_b, doc_c, doc_d, doc_e]


texts = []


for i in doc_set:
    
    
    raw = i.lower()
    tokens = tokenizer.tokenize(raw)

   
    texts.append(tokens)


dictionary = corpora.Dictionary(texts)
    

corpus = [dictionary.doc2bow(text) for text in texts]



ldamodel = gensim.models.ldamodel.LdaModel(corpus, num_topics=3, id2word = dictionary, passes=20)
Durch die Verwendung eines institutseigenen Programms für das Preprocessing muss ich den Input in Form einer Term-Dokument-Matrix einlesen, welche diesem Format einspricht:

Doc1 Doc2 Doc3
word1 0 1 1
word2 1 3 1

So wie ich das verstanden habe, kann ich angeben, was meine Dictionaries sind (hier rows) und was Titel sind (hier coloums).
Ich habe bisher nach vielen Ansätzen recherchiert aber so richtig verstehe ich das nicht.
Könnte mir jemand einen Anfang für den Code geben, damit ich reinkomme. Die Fülle an Möglichkeiten überfordert mich aktuell total...

Danke im voraus und Viele Grüße
Antworten