[PYTHON] Verwenden wir Tomotopie anstelle von Gensim

Was ist Tomotopie?

tomotopy ist eine Abkürzung für TOpic MOdeling TOol, eine Python-Bibliothek, die hauptsächlich LDA (Latent Dirichlet Allocation) und ihre abgeleiteten Algorithmen verarbeiten kann. ..

Es ist einfacher zu handhaben als die Bibliothek gensim, die ähnliche Funktionen hat, und die Berechnung ist schneller, da sie in C ++ erstellt wurde.

Einführungsmethode

Setzen Sie es einfach mit pip ein.

pip install tomotopy

Wie benutzt man

Verwenden Sie als Beispiel den folgenden Datensatz aus dem Gensim-Tutorial.

Human machine interface for lab abc computer applications
A survey of user opinion of computer system response time
The EPS user interface management system
System and human system engineering testing of EPS
Relation of user perceived response time to error measurement
The generation of random binary unordered trees
The intersection graph of paths in trees
Graph minors IV Widths of trees and well quasi ordering
Graph minors A survey

Bei Verwendung von LDA mit Tomotopie ist dies wie folgt.

Verwenden Sie den Datensatz nach der Vorverarbeitung (die Vorverarbeitung lautet this. Gleich wie Kernkonzepte-py)).

import tomotopy as tp
from pprint import pprint

texts = [
    ['human', 'interface', 'computer'],
    ['survey', 'user', 'computer', 'system', 'response', 'time'],
    ['eps', 'user', 'interface', 'system'],
    ['system', 'human', 'system', 'eps'],
    ['user', 'response', 'time'],
    ['trees'],
    ['graph', 'trees'],
    ['graph', 'minors', 'trees'],
    ['graph', 'minors', 'survey']
]

#Modellinitialisierung
model = tp.LDAModel(k=2, seed=1)  #k ist die Anzahl der Themen

#Korpus erstellen
for text in texts:
    model.add_doc(text)

#Lernen
model.train(iter=100)

#Extrahieren der Wortverteilung eines Themas
for k in range(model.k):
    print(f"Topic {k}")
    pprint(model.get_topic_words(k, top_n=5))

"""output
Topic 0
[('system', 0.20972803235054016),
 ('user', 0.15742677450180054),
 ('human', 0.10512551665306091),
 ('interface', 0.10512551665306091),
 ('computer', 0.10512551665306091)]
Topic 1
[('trees', 0.2974308431148529),
 ('graph', 0.2974308431148529),
 ('survey', 0.1986166089773178),
 ('minors', 0.1986166089773178),
 ('system', 0.0009881423320621252)]
"""

Merkmale der Tomtopie

Guter Punkt

Das meiste, was Sie tun möchten, wenn Sie LDA verwenden möchten, kann einfach durch Initialisieren des Modells und Festlegen der Argumente der Lernfunktion erledigt werden.

(Parallelisierung, TF-IDF, Festlegen der oberen und unteren Grenzen der Wortfrequenz und der Dokumentfrequenz usw.)

Varianteninferenz wird in Gensim verwendet, aber die Probenahme soll genauer sein.

Der Nachteil der Probenahme ist, dass es Zeit braucht,

Da Tomotopy in C ++ erstellt wurde und leicht parallelisiert werden kann, ist es viel schneller als MALLET.

--LDA-Derivate sind verfügbar.

Folgendes ist verfügbar:

schlechter Platz

―― Es ist möglicherweise nicht möglich, den juckenden Ort zu erreichen.

Vielleicht, weil Tomotopy auf Benutzerfreundlichkeit spezialisiert ist, werde ich manchmal gefragt: "Nun, kann ich das nicht tun?"

Zum Beispiel

(Nun, wenn keiner von beiden ein Datensatz von 10 Millionen ist, ist mir das egal.)

Zusammenfassung

Mit der Tomotopie können Sie LDA-Modelle durch einfaches Abtasten lernen.

Um ehrlich zu sein, kann ich nicht mehr zu Gensim zurückkehren.

Recommended Posts

Verwenden wir Tomotopie anstelle von Gensim
Verwenden wir usercustomize.py anstelle von sitecustomize.py
R: Verwenden Sie im Skript Japanisch anstelle von Japanisch
Verwenden wir pytube
Verwenden wir verschiedene Versionen von SQLite3 aus Python3!
Bequeme Verwendung von Ipython
Verwenden wir die API des allgemeinen Fensters für Regierungsstatistiken (e-Stat).
Verwenden Sie für Python-URL-Verknüpfungen urlparse.urljoin anstelle von os.path.join
Anmutige Verwendung von MySQLdb
Verwenden wir die Python-Version des Confluence-API-Moduls.
Verwenden wir die offenen Daten von "Mamebus" in Python
EP 7 Listenverständnisse anstelle von Karte und Filter verwenden
Verwenden wir den verteilten Ausdruck von Wörtern schnell mit fastText!
Mal sehen, wie def in Python verwendet wird
Lassen Sie uns Python Janome einfach verwenden
[gensim] Verwendung von Doc2Vec
Lassen Sie uns GraphConvModel von DeepChem visualisieren
Verwenden wir MemSQL Vol.14: Übung 7
Verwendung und Integration von "Shodan"
Verwenden wir MemSQL Vol.13: Übung 6