Εισαγωγή στη Μοντελοποίηση Θεμάτων στη Επεξεργασία Φυσικής Γλώσσας


Η μοντελοποίηση θεμάτων είναι μια τεχνική στην Επεξεργασία Φυσικής Γλώσσας (NLP) που μας βοηθά να ανακαλύπτουμε αυτόματα κρυφά θέματα ή ενότητες μέσα σε μια μεγάλη συλλογή κειμένων. Αντί να διαβάζουμε χιλιάδες ή ακόμα και εκατομμύρια έγγραφα χειροκίνητα, η μοντελοποίηση θεμάτων επιτρέπει στους υπολογιστές να σκανάρουν το κείμενο και να εντοπίζουν κρυφά πρότυπα στον τρόπο με τον οποίο εμφανίζονται μαζί οι λέξεις. Αυτά τα πρότυπα στη συνέχεια ομαδοποιούνται σε θέματα, όπου κάθε θέμα αντιπροσωπεύει ένα κοινό μοτίβο που συζητείται σε πολλά έγγραφα.

Η βασική ιδέα πίσω από τη θεματική μοντελοποίηση είναι ότι τα έγγραφα συνήθως αφορούν περισσότερα από ένα θέματα και οι λέξεις τείνουν να επαναλαμβάνονται με ουσιαστικό τρόπο ανάλογα με το θέμα που συζητείται. Για παράδειγμα, έγγραφα σχετικά με αθλητικά μπορεί να περιλαμβάνουν συχνά λέξεις όπως «αγώνας», «ομάδα» και «σκορ», ενώ έγγραφα σχετικά με χρηματοοικονομικά μπορεί να περιλαμβάνουν λέξεις όπως «επένδυση», «αγορά» και «κέρδος». Η θεματική μοντελοποίηση καταγράφει αυτά τα πρότυπα συνύπαρξης λέξεων και τα χρησιμοποιεί για να αποκαλύψει λανθάνοντα (κρυμμένα) θέματα.

Η μοντελοποίηση θεμάτων χρησιμοποιείται ευρέως σε τομείς όπως η ομαδοποίηση εγγράφων, η πρόταση περιεχομένου, οι μηχανές αναζήτησης, η ανάλυση σχολίων πελατών, η ανάλυση ερευνητικών εργασιών και η παρακολούθηση κοινωνικών μέσων. Θεωρείται μια τεχνική μη επιτηρούμενης μάθησης επειδή δεν απαιτεί επισημασμένα δεδομένα. Το μοντέλο μαθαίνει τα θέματα απευθείας από το ακατέργαστο κείμενο.

Κύρια Συμπεράσματα

  • Η θεματική μοντελοποίηση είναι η μελέτη των προτύπων συν-εμφάνισης λέξεων σε έγγραφα για να αποκαλυφθούν υποκείμενες θεματικές δομές που δεν είναι ρητά επισημασμένες ή ορισμένες. Αυτό την καθιστά ιδιαίτερα χρήσιμη για την εξερεύνηση μεγάλων, μη δομημένων σωμάτων κειμένων όπως άρθρα ειδήσεων, ερευνητικά άρθρα, κριτικές πελατών ή δεδομένα κοινωνικών μέσων.
  • Σε αντίθεση με τα μοντέλα ταξινόμησης, η μοντελοποίηση θεμάτων δεν βασίζεται σε προκαταρκτικά σχολιασμένα/επισημασμένα σύνολα δεδομένων. Αντίθετα, μαθαίνει απευθείας από το ακατέργαστο κείμενο, κάνοντάς την μια πρακτική επιλογή όταν τα επισημασμένα δεδομένα είναι ανεπαρκή, ακριβά στη δημιουργία ή μη διαθέσιμα.
  • Ο εντοπισμός θεμάτων αντικατοπτρίζει πιο ακριβώς το πραγματικό κείμενο επιτρέποντας σε κάθε έγγραφο να αναπαρίσταται ως ένα μίγμα θεμάτων αντί να το αναγκάζει σε μια μόνο κατηγορία. Για παράδειγμα, ένα άρθρο μπορεί να συζητά τόσο για «μηχανική μάθηση» όσο και για «υγειονομική περίθαλψη», με διαφορετικές αναλογίες που αποδίδονται σε κάθε θέμα.
  • Κάθε θέμα ορίζεται από ένα σύνολο σχετικών λέξεων, όπου σε κάθε λέξη ανατίθεται μια πιθανότητα που υποδηλώνει τη σημασία της εντός του θέματος. Αυτή η πιθανοκρατική αναπαράσταση βοηθά στην ερμηνεία των θεμάτων και στην κατανόηση ποιοι όροι συμβάλλουν περισσότερο σε ένα δεδομένο θέμα.
  • Τα μοντέλα LDA αναπαριστούν έγγραφα ως μίγματα θεμάτων και θέματα ως μίγματα λέξεων χρησιμοποιώντας ένα καλά καθορισμένο πιθανολογικό πλαίσιο. Η δυνατότητα ερμηνείας του, η μαθηματική θεμελίωσή του και η ευρεία υποστήριξη βιβλιοθηκών το έχουν καταστήσει το βασικό πρότυπο για εργασίες μοντελοποίησης θεμάτων στην έρευνα και τη βιομηχανία.

Γιατί Χρειάζεται η Μοντελοποίηση Θεμάτων

Οι σύγχρονες εφαρμογές παράγουν τεράστιες ποσότητες μη δομημένων δεδομένων κειμένου, όπως email, αξιολογήσεις, άρθρα, συνομιλίες και επιστημονικά άρθρα. Η χειροκίνητη οργάνωση και κατανόηση αυτών των δεδομένων είναι ανεφάρμοστη. Η ανάλυση θεμάτων βοηθά στη δομή αυτού του άτακτου κειμένου, εντοπίζοντας θέματα που εμφανίζονται επανειλημμένα σε έγγραφα.

Ένας ακόμα σημαντικός λόγος για τον οποίο η θεματική μοντελοποίηση είναι χρήσιμη είναι ότι η παραδοσιακή αναζήτηση με λέξεις-κλειδιά συχνά έχει περιορισμούς. Δύο έγγραφα μπορεί να αναφέρονται στην ίδια ιδέα χρησιμοποιώντας διαφορετικές λέξεις, και οι μέθοδοι που βασίζονται σε λέξεις-κλειδιά μπορεί να αποτύχουν να τα συνδέσουν. Η θεματική μοντελοποίηση υπερβαίνει την ακριβή αντιστοίχιση λέξεων και επικεντρώνεται σε σημασιολογικά πρότυπα, καθιστώντας την πιο αποτελεσματική για την κατανόηση μεγάλου όγκου κειμένου.

Βασικές Έννοιες πίσω από τη Μοντελοποίηση Θεμάτων

Για να κατανοήσει κανείς τη μοντελοποίηση θεμάτων, είναι σημαντικό να κατανοήσει πώς το κείμενο αναπαρίσταται μαθηματικά. Τα δεδομένα κειμένου μετατρέπονται πρώτα σε αριθμητική μορφή, συνήθως χρησιμοποιώντας μια αναπαράσταση τύπου «σάκος λέξεων». Σε αυτή την αναπαράσταση, ένα έγγραφο θεωρείται ως μια συλλογή λέξεων όπου η σειρά των λέξεων αγνοείται, αλλά η συχνότητα εμφάνισης των λέξεων διατηρείται.

Κάθε έγγραφο αναπαρίσταται ως διάνυσμα πλήθους λέξεων. Σε μια συλλογή εγγράφων, αυτό σχηματίζει έναν πίνακα όρου εγγράφου, όπου οι γραμμές αντιπροσωπεύουν έγγραφα και οι στήλες αντιπροσωπεύουν λέξεις. Οι αλγόριθμοι μοντελοποίησης θεμάτων αναλύουν αυτόν τον πίνακα για να βρουν ομάδες λέξεων που εμφανίζονται συχνά μαζί.

Ένα θέμα στη μοντελοποίηση θεμάτων δεν είναι μια μεμονωμένη ετικέτα, αλλά μια κατανομή πιθανότητας πάνω σε λέξεις. Ομοίως, κάθε έγγραφο αναπαρίσταται ως κατανομή πιθανότητας πάνω σε θέματα. Αυτό σημαίνει ότι ένα έγγραφο μπορεί να αναφέρεται σε πολλαπλά θέματα με διαφορετικές αναλογίες.

Λανθάνουσα Κατανομή Dirichlet (LDA)

Η Λανθάνουσα Κατανομή Dirichlet, γνωστή ως LDA, είναι ο πιο δημοφιλής αλγόριθμος ανάλυσης θεμάτων. Η LDA είναι ένα πιθανοκρατικό γενετικό μοντέλο που υποθέτει ότι τα έγγραφα δημιουργούνται μέσω μιας κρυφής διαδικασίας που περιλαμβάνει θέματα.

Το LDA υποθέτει ότι κάθε έγγραφο έχει ένα μείγμα θεμάτων και κάθε θέμα έχει ένα μείγμα λέξεων. Όταν δημιουργείται ένα έγγραφο, το μοντέλο πρώτα επιλέγει ένα θέμα βάσει της κατανομής θεμάτων του εγγράφου και στη συνέχεια επιλέγει μια λέξη βάσει της κατανομής λέξεων του θέματος. Αυτή η διαδικασία επαναλαμβάνεται για κάθε λέξη στο έγγραφο.

Το "λανθάνουσα" μέρος του LDA αναφέρεται στο γεγονός ότι τα θέματα κρύβονται και δεν παρατηρούνται άμεσα. Το μοντέλο προσπαθεί να συμπεράνει αυτά τα κρυμμένα θέματα από τις παρατηρούμενες λέξεις. Το τμήμα "Dirichlet" αναφέρεται στην κατανομή Dirichlet, η οποία χρησιμοποιείται ως προηγούμενο για τον έλεγχο του τρόπου κατανομής των θεμάτων στα έγγραφα και του τρόπου κατανομής των λέξεων μεταξύ των θεμάτων.

Ρύθμιση ενός μικρού σώματος κειμένων

Υποθέστε ένα πολύ μικρό λεξιλόγιο τεσσάρων λέξεων:

w₁=«ai» w₂=«δεδομένα» w₃=«πίτσα» w₄=«ζυμαρικά»

Τώρα, υποθέστε ότι έχουμε τρία έγγραφα:

Έγγραφο 1: «ai data ai» Έγγραφο 2: «ai data data» Έγγραφο 3: «pizza pasta pizza»

Μετατρέπουμε αυτό το σώμα κειμένων σε έναν πίνακα εγγράφων–όρων X χρησιμοποιώντας ακατέργαστους αριθμούς λέξεων.

Κάθε γραμμή είναι ένα έγγραφο, κάθε στήλη είναι μια λέξη και κάθε καταχώριση δείχνει πόσες φορές εμφανίζεται αυτή η λέξη σε εκείνο το έγγραφο.

Επιλογή του αριθμού θεμάτων

Υποθέστε ότι K=2 θέματα.

Το Θέμα 1 αντιστοιχεί περίπου στην «τεχνολογία». Το Θέμα 2 αντιστοιχεί περίπου στην «τροφή».

Το LDA δεν γνωρίζει αυτό εκ των προτέρων. Το υποθέτουμε εδώ μόνο για να απεικονίσουμε τους μαθημένους πίνακες.

Μήτρα θεμάτων–λέξεων Φ (K × V)

Το Φ περιέχει τις πιθανότητες των λέξεων για κάθε θέμα. Κάθε σειρά αθροίζεται σε 1.

Ερμηνεία:

Για το Θέμα 1 (τεχνολογία): P(ai)=0,45, P(data)=0,45, P(pizza)=0,05, P(pasta)=0,05

Για το Θέμα 2 (τροφή): P(ai)=0,05, P(data)=0,05, P(pizza)=0,45, P(pasta)=0,45

Αυτός ο πίνακας απαντά στην ερώτηση: δεδομένου ενός θέματος, πόσο πιθανό είναι κάθε λέξη;

Μήτρα εγγράφου–θέματος Θ (D × K)

Το Θ περιέχει τις αναλογίες θεμάτων για κάθε έγγραφο. Κάθε σειρά αθροίζει σε 1.

Ερμηνεία:

Το Έγγραφο 1 είναι 90% θέμα 1 και 10% θέμα 2. Το Έγγραφο 2 είναι 85% θέμα 1 και 15% θέμα 2. Το Έγγραφο 3 είναι 10% θέμα 1 και 90% θέμα 2.

Αυτός ο πίνακας απαντά στην ερώτηση: δίνοντας ένα έγγραφο, πόσο συμβάλλει κάθε θέμα;

Πολλαπλασιασμός μητρώων: ανασυγκρότηση του σώματος

Το LDA υποθέτει ότι η αναμενόμενη κατανομή λέξεων ανά έγγραφο προέρχεται από:

Ας το υπολογίσουμε αυτό ρητά.

Πολλαπλασιασμός σειρά-σειρά

Για Έγγραφο 1:

=[0,9(0,45)+0,1(0,05),0,9(0,45)+0,1(0,05),0,9(0,05)+0,1(0,45),0,9(0,05)+0,1(0,45)] =[0,41,0,41,0,09,0,09]= [0,41, 0,41, 0,09, 0,09]=[0,41,0,41,0,09,0,09]

Αυτό σημαίνει ότι αναμένεται το έγγραφο 1 να ευνοεί έντονα την «τεχνητή νοημοσύνη» και τα «δεδομένα».

Για το Έγγραφο 2:

Και πάλι, ένα ισχυρό σήμα τεχνολογίας με ένα μικρό συστατικό τροφίμων.

Για το Έγγραφο 3:

Σαφώς κυριαρχούν οι λέξεις που σχετίζονται με το φαγητό.

Τελικός ανασυγκροτημένος πίνακας

Αυτός ο πίνακας είναι μια πιθανοκρατική προσέγγιση του αρχικού πίνακα μετρήσεων X. Το LDA ουσιαστικά εκτελεί έναν περιορισμένο παράγοντο πίνακα όπου όλοι οι όροι είναι μη αρνητικοί, και οι γραμμές των Θ και Φ είναι κατανομές πιθανότητας.

Κατά την εκπαίδευση, το LDA δεν υπολογίζει άμεσα το Θ × Φ μόνο μία φορά. Αντίθετα, ενημερώνει επανειλημμένα τις αναθέσεις θεμάτων για μεμονωμένες εμφανίσεις λέξεων έτσι ώστε τα προκύπτοντα Θ και Φ να κάνουν το X πιθανό σύμφωνα με το γενετικό μοντέλο. Η παραλλαγή της επαγωγικής εκτίμησης ενημερώνει άμεσα τα Θ και Φ χρησιμοποιώντας βελτιστοποίηση.

Και οι δύο μέθοδοι στοχεύουν στο να βρουν τα Θ και Φ ώστε το ΘΦ να εξηγεί καλά το X.

Παράδειγμα Python με εκτυπωμένους πίνακες

Εδώ είναι ένα παράδειγμα σε Python που εμφανίζει ρητά τα Θ και Φ για να τα εξετάσετε.

import numpy as np
from sklearn.decomposition import LatentDirichletAllocation
from sklearn.feature_extraction.text import CountVectorizer

docs = [
    "ai data ai",
    "ai data data",
    "pizza pasta pizza"
]

vectorizer = CountVectorizer()
X = vectorizer.fit_transform(docs)

lda = LatentDirichletAllocation(
    n_components=2,
    random_state=0,
    max_iter=50
)

lda.fit(X)

# Document-topic matrix Θ
Theta = lda.transform(X)

# Topic-word matrix Φ (normalize rows)
Phi = lda.components_ / lda.components_.sum(axis=1)[:, None]

print("Vocabulary:", vectorizer.get_feature_names_out())
print("\nDocument-Term Matrix X:")
print(X.toarray())

print("\nDocument-Topic Matrix Θ:")
print(Theta)

print("\nTopic-Word Matrix Φ:")
print(Phi)

print("\nReconstructed X (Θ × Φ):")
print(np.dot(Theta, Phi))

Θα δείτε ότι το Θ × Φ ταιριάζει στενά με τη δομή του X, ακόμα κι αν οι τιμές είναι πιθανότητες αντί για ακατέργαστοι αριθμοί.

Πιθανολογική Κρυφή Σημασιολογική Ανάλυση (PLSA)

Η Πιθανοκρατική Λανθάνουσα Σημασιολογική Ανάλυση (PLSA) επεκτείνει την ιδέα της λανθάνουσας σημασιολογικής δομής εισάγοντας ένα ρητό πιθανοκρατικό μοντέλο λανθάνουσας μεταβλητής για έγγραφα και λέξεις. Δεδομένου ενός εγγράφου ddd και μιας λέξης w, η PLSA υποθέτει ότι η συνύπαρξή τους δημιουργείται μέσω μιας λανθάνουσας μεταβλητής θέματος z. Η κοινή πιθανότητα ορίζεται ως:

το οποίο μπορεί επίσης να γραφτεί σε υποθετική μορφή ως:

Εδώ, το P(w∣z) αντιπροσωπεύει την κατανομή λέξης-θέματος και το P(z∣d) αντιπροσωπεύει πόσο ισχυρά συνεισφέρει ένα θέμα σε ένα έγγραφο. Οι παράμετροι του μοντέλου μαθαίνονται μεγιστοποιώντας την πιθανότητα καταγραφής των παρατηρούμενων μετρήσεων λέξης-έγγραφου n(d,w):

Επειδή η μεταβλητή θέματος z δεν παρατηρείται, το PLSA χρησιμοποιεί τον αλγόριθμο Προσδοκίας–Μεγιστοποίησης (EM). Στο βήμα Ε, οι αναδρομικές αναθέσεις θεμάτων υπολογίζονται ως εξής:

Στο βήμα M, οι κατανομές θέματος–λέξης και εγγράφου–θέματος ενημερώνονται χρησιμοποιώντας αυτές τις μετα-πιθανότητες, για παράδειγμα:

Η PLSA μπορεί επίσης να θεωρηθεί ως πιθανοκρατική παραγοντοποίηση πίνακα της μήτρας κατανομής εγγράφου-λέξης P(d,w) σε παράγοντες χαμηλότερου βαθμού που αντιστοιχούν σε θέματα, παρόμοια στην ουσία με την LSA αλλά βασισμένη στη μεγιστοποίηση πιθανοφάνειας αντί για SVD.

Απλό Θεματικό Μοντέλο με BERT

Τα παραδοσιακά μοντέλα θεμάτων όπως το LDA βασίζονται σε μετρήσεις λέξεων και πιθανοκρατικές υποθέσεις. Η θεματολογία με βάση το BERT λειτουργεί πολύ διαφορετικά.

Αντί να μοντελοποιούμε έγγραφα ως «σάκους λέξεων», χρησιμοποιούμε πρώτα ένα προεκπαιδευμένο μοντέλο BERT για να μετατρέψουμε κάθε έγγραφο σε ένα πυκνό σημασιολογικό διάνυσμα (embedding). Τα έγγραφα με παρόμοιες σημασίες καταλήγουν κοντά το ένα στο άλλο στον χώρο των διανυσμάτων. Μόλις έχουμε αυτά τα embeddings, τα ομαδοποιούμε για να βρούμε ομάδες εγγράφων με σημασιολογική ομοιότητα. Τέλος, εξάγουμε αντιπροσωπευτικές λέξεις για κάθε ομάδα για να περιγράψουμε το θέμα.

Το BERTopic συνδυάζει τέσσερις ιδέες:

Ενσωματώσεις BERT για την καταγραφή της σημασιολογίας UMAP για τη μείωση της διαστατικότητας HDBSCAN για την ομαδοποίηση εγγράφων TF-IDF βάσει κλάσης (c-TF-IDF) για την εξαγωγή λέξεων θεμάτων

Εγκατάσταση απαιτούμενων βιβλιοθηκών

Βεβαιώσου ότι τα έχεις εγκαταστήσει πρώτα.

pip install bertopic sentence-transformers scikit-learn datasets umap-learn hdbscan

Σετ Δεδομένων: 20 Νέα Ομάδες (πραγματικό κείμενο)

Θα χρησιμοποιήσουμε ένα υποσύνολο του 20 Newsgroups dataset, το οποίο χρησιμοποιείται συνήθως για μοντελοποίηση θεμάτων και ταξινόμηση κειμένου.

from bertopic import BERTopic
from sentence_transformers import SentenceTransformer
from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import CountVectorizer
import pandas as pd

Βήμα 1: Φορτώστε ένα πραγματικό σύνολο δεδομένων

docs = fetch_20newsgroups(
    subset="train",
    remove=("headers", "footers", "quotes")
).data
docs[0]

Σε αυτό το σημείο, το docs είναι μια λίστα από ακατέργαστα κείμενα εγγράφων. Κάθε έγγραφο μπορεί να μιλάει για τεχνολογία, αθλητισμό, θρησκεία, πολιτική ή επιστήμη.

Αναρωτιόμουν αν κάποιος από εσάς θα μπορούσε να με ενημερώσει για αυτό το αυτοκίνητο που είδα τις προάλλες. Ήταν ένα σπορ αυτοκίνητο με 2 πόρτες, έμοιαζε να είναι από τα τέλη των 60s/σχεδόν 70s. Ονομαζόταν Bricklin. Οι πόρτες ήταν πολύ μικρές. Επιπλέον, ο μπροστινός προφυλακτήρας ήταν ξεχωριστός από το υπόλοιπο αμάξωμα. Αυτό είναι ό,τι γνωρίζω. Αν κάποιος μπορεί να μου πει το όνομα ενός μοντέλου, τεχνικά χαρακτηριστικά κινητήρα, έτη παραγωγής, πού κατασκευάζεται αυτό το αυτοκίνητο, ιστορία ή οποιαδήποτε πληροφορία έχετε για αυτό το παράξενα εμφανιζόμενο αυτοκίνητο, παρακαλώ στείλτε email.

Βήμα 2: Φορτώστε ένα μοντέλο ενσωμάτωσης BERT

embedding_model = SentenceTransformer("all-MiniLM-L6-v2")

Αυτό το μοντέλο μετατρέπει κάθε έγγραφο σε ένα πυκνό διάνυσμα 384 διαστάσεων. Αυτές οι ενσωματώσεις αποτυπώνουν σημασιολογικό νόημα, όχι μόνο επικάλυψη λέξεων.

Βήμα 3: Αρχικοποίηση του BERTopic

topic_model = BERTopic(
    embedding_model=embedding_model,
    vectorizer_model=CountVectorizer(stop_words="english"),
    language="english",
    calculate_probabilities=True,
    verbose=True
)

Αυτό συμβαίνει σε εννοιολογικό επίπεδο:

Το μοντέλο BERT δημιουργεί ενσωματώσεις εγγράφων, το UMAP μειώνει τις διαστάσεις των ενσωματώσεων, το HDBSCAN ομαδοποιεί έγγραφα, και το TF-IDF εξάγει αντιπροσωπευτικές λέξεις θεμάτων

Βήμα 4: Εφαρμογή του μοντέλου θεμάτων

topics, probs = topic_model.fit_transform(docs)

Αυτή η μία γραμμή κάνει πολύ δουλειά:

Κάθε έγγραφο ενσωματώνεται χρησιμοποιώντας το BERT. Τα έγγραφα ομαδοποιούνται βάσει σημασιολογικής ομοιότητας. Σε κάθε έγγραφο ανατίθεται ένας κωδικός θέματος. Υπολογίζονται οι πιθανότητες των θεμάτων.

topics περιέχουν μια ετικέτα θέματος ανά έγγραφο.

Βήμα 5: Εξετάστε τα ανακαλυφθέντα θέματα

topic_info = topic_model.get_topic_info()
print(topic_info.head(10))

Αυτό δείχνει:

Αριθμός αναγνωριστικού θέματος Αριθμός εγγράφων στο θέμα Κορυφαίες αντιπροσωπευτικές λέξεις

Το θέμα -1 αντιπροσωπεύει ακραίες τιμές (έγγραφα που δεν ταιριάζουν καλά σε κανένα θέμα).

  Topic  Count                           Name  \
0     -1   3604             -1_god_db_like_don   
1      0   1074       0_team_game_season_games   
2      1    514  1_patients_msg_medical_health   
3      2    394      2_space_launch_nasa_orbit   
4      3    359  3_key_clipper_chip_encryption   
5      4    261       4_card_monitor_video_vga   
6      5    239     5_israel_israeli_arab_jews   
7      6    185             6_jpeg_image_cx_c_   
8      7    167     7_fbi_koresh_batf_compound   
9      8    160    8_motherboard_ram_card_sale   

                                      Representation  \
0  [god, db, like, don, edu, know, just, use, doe...   
1  [team, game, season, games, hockey, play, play...   
2  [patients, msg, medical, health, disease, doct...   
3  [space, launch, nasa, orbit, lunar, satellite,...   
4  [key, clipper, chip, encryption, keys, escrow,...   
5  [card, monitor, video, vga, drivers, diamond, ...   
6  [israel, israeli, arab, jews, arabs, palestini...   
7  [jpeg, image, cx, c_, gif, files, format, file...   
8  [fbi, koresh, batf, compound, gas, children, w...   
9  [motherboard, ram, card, sale, price, offer, m...   

                                 Representative_Docs  
0  [This is a periodic posting intended to answer...  
1  [NHL RESULTS FOR GAMES PLAYED 4/14/93.\n\n----...  
2  [\n\nSo just what was it you wanted to say?\n\...  
3  [Archive-name: space/probe\nLast-modified: $Da...  
4  [Here are some corrections and additions to He...  
5  [ and  A VGA monitor..\ne-mail\n, Does anyone ...  
6  [\nThis a "tried and true" method utilized by ...  
7  [Archive-name: graphics/resources-list/part2\n...  
8  [...\n\n\tIt's amazing how everyone automatica...  
9  [NEW POSTING, LOWER PRICES!!  MAKE OFFERS ON A... 

Βήμα 6: Προβολή λέξεων που ορίζουν ένα συγκεκριμένο θέμα

topic_id = 0
print(topic_model.get_topic(topic_id))

Αυτό επιστρέφει μια λίστα με ζεύγη (λέξη, σκορ_σημαντικότητας). Αυτές οι λέξεις δεν είναι απλώς συχνές λέξεις· είναι διακριτικές για αυτό το θέμα σε σχέση με όλα τα άλλα.

Βήμα 7: Ανάθεση θεμάτων ξανά στα έγγραφα

df = pd.DataFrame({
    "document": docs[:10],
    "topic": topics[:10]
})

print(df)

Τώρα μπορείτε να δείτε σε ποιο θέμα ανήκει κάθε έγγραφο.

                                           document  topic  
0  I was wondering if anyone out there could enli...     18  
1  A fair number of brave souls who upgraded thei...     13  
2  well folks, my mac plus finally gave up the gh...     \-1  
3  \\nDo you have Weitek's address/phone number?  ...     \-1  
4  From article \<C5owCB.n3p@world.std.com\>, by to...    105  
5  \\n\\n\\n\\n\\nOf course.  The term must be rigidly...     \-1  
6  There were a few people who responded to my re...     \-1  
7                                                ...     33  
8  I have win 3.0 and downloaded several icons an...      6  
9  \\n\\n\\nI've had the board for over a year, and ...     26

Βήμα 8: Μειώστε τα θέματα (προαιρετικό αλλά χρήσιμο)

Το BERTopic μπορεί να συγχωνεύει αυτόματα παρόμοια θέματα.

topic_model.reduce_topics(docs, nr_topics=10)

Αυτό βοηθά στην παραγωγή καθαρότερων και πιο κατανοητών αποτελεσμάτων.

fig = topic_model.visualize_barchart(top_n_topics=8)
fig.show()

fig = topic_model.visualize_documents(docs)
fig.show()

Τα μοντέλα LDA υπολογίζουν τις μετρήσεις των λέξεων με πιθανοτικό τρόπο και υποθέτουν ότι τα έγγραφα είναι μίγματα θεμάτων. Η θεματική μοντελοποίηση βασισμένη σε BERT δεν υποθέτει καμία γενετική διαδικασία. Αντίθετα, βασίζεται σε σημασιολογικές ενσωματώσεις και ομαδοποίηση. Το LDA λειτουργεί καλά για μικρά λεξιλόγια και ερμηνεύσιμη μαθηματική δομή. Η θεματική μοντελοποίηση βασισμένη σε BERT υπερέχει στο να καταγράφει το πλαίσιο, τα συνώνυμα και τη σημασιολογική ομοιότητα.

Συχνές Ερωτήσεις

Ποια είναι η διαφορά μεταξύ ανάλυσης θεμάτων και ταξινόμησης κειμένου; Η ανάλυση θεμάτων είναι μη επιβλεπόμενη και ανακαλύπτει θέματα αυτόματα χωρίς επισημασμένα δεδομένα, ενώ η ταξινόμηση κειμένου είναι επιβλεπόμενη και αναθέτει προκαθορισμένες ετικέτες στα έγγραφα βάσει παραδειγμάτων εκπαίδευσης.

Μπορεί ένα έγγραφο να ανήκει σε περισσότερα από ένα θέματα; Ναι, οι περισσότερες μέθοδοι μοντελοποίησης θεμάτων υποθέτουν ότι τα έγγραφα περιέχουν πολλαπλά θέματα, κάθε ένα με μια ορισμένη πιθανότητα ή αναλογία.

Πόσα θέματα πρέπει να επιλέξω; Δεν υπάρχει κανόνας. Ο αριθμός των θεμάτων εξαρτάται από το μέγεθος του συνόλου δεδομένων, τον τομέα και τη χρήση. Η πειραματική προσέγγιση και η αξιολόγηση της συνοχής χρησιμοποιούνται συνήθως για να βρεθεί ένας κατάλληλος αριθμός.

Η ανάλυση θεμάτων είναι το ίδιο με ομαδοποίηση; Η ανάλυση θεμάτων και η ομαδοποίηση σχετίζονται αλλά δεν είναι ταυτόσημες. Η ομαδοποίηση αναθέτει κάθε έγγραφο σε μία μόνο ομάδα, ενώ η ανάλυση θεμάτων αναπαριστά τα έγγραφα ως συνδυασμούς πολλαπλών θεμάτων.

Η μοντελοποίηση θεμάτων καταλαβαίνει το νόημα; Η μοντελοποίηση θεμάτων δεν καταλαβαίνει πραγματικά τη γλώσσα με ανθρώπινο τρόπο. Αναγνωρίζει στατιστικά πρότυπα στη χρήση λέξεων, τα οποία συχνά ευθυγραμμίζονται καλά με θέματα που μπορούν να αναλυθούν από ανθρώπους.

Συμπέρασμα

Η μοντελοποίηση θεμάτων είναι ένας από τους βασικούς αλγορίθμους που βοηθούν στην κατανόηση του αυξανόμενου όγκου μη δομημένων δεδομένων κειμένου. Η κατανόηση κρυφών προτύπων μέσω της συν-εμφάνισης λέξεων μας επιτρέπει να ξεφύγουμε από την επιφανειακή ανάλυση λέξεων-κλειδιών και να αποκτήσουμε μια πιο ολιστική κατανόηση μεγάλων συλλογών εγγράφων. Προσεγγίσεις όπως η Λανθάνουσα Κατανομή Dirichlet, η Μη αρνητική Παραγοντοποίηση Μητρών και η Πιθανοκρατική Λανθάνουσα Σημασιολογική Ανάλυση αντιμετωπίζουν αυτή την πρόκληση από διαφορετικές μαθηματικές και πιθανοκρατικές προοπτικές, προσφέροντας ευελιξία ανάλογα με τη φύση των δεδομένων και το εκάστοτε πρόβλημα.

Αν και καμία μέθοδος δεν λειτουργεί για όλους, η επιλογή του σωστού μοντέλου και ο προσεκτικός συντονισμός του μπορεί να αποκαλύψει πλούσιες, ερμηνεύσιμες πληροφορίες που θα ήταν δύσκολο να αποκτηθούν με το χέρι. Όταν χρησιμοποιείται με γνώση τομέα και προσεκτική αξιολόγηση, η μοντελοποίηση θεμάτων όχι μόνο απλοποιεί τις ροές εργασιών ανάλυσης κειμένου, αλλά χρησιμεύει επίσης ως ισχυρή βάση για μεταγενέστερες εργασίες, όπως η ομαδοποίηση εγγράφων, η ανάκτηση πληροφοριών και η διερευνητική ανάλυση δεδομένων.

Ευχαριστούμε που μάθατε με την Κοινότητα του Linux-Console.net.