Come far crescere un elenco di parole correlate basate su parole chiave iniziali?


19

Recentemente ho visto una funzione interessante che una volta era disponibile in Fogli Google: si inizia scrivendo alcune parole chiave correlate in celle consecutive, si dice: "blu", "verde", "giallo" e genera automaticamente parole chiave simili (in questo caso , altri colori). Vedi altri esempi in questo video di YouTube .

Vorrei riprodurlo nel mio programma. Sto pensando di usare Freebase e funzionerebbe in questo modo in modo intuitivo:

  1. Recupera l'elenco di parole fornite in Freebase;
  2. Trova i loro "comuni denominatori" e costruisci una metrica di distanza basata su questo;
  3. Classifica altri concetti in base alla loro "distanza" rispetto alle parole chiave originali;
  4. Mostra i prossimi concetti più vicini.

Poiché non ho familiarità con quest'area, le mie domande sono:

  • C'è un modo migliore per farlo?
  • Quali strumenti sono disponibili per ogni passaggio?

La mia ipotesi è che questo si basa su argomenti di apprendimento in un ampio corpus.
Tchakravarty,

Se vuoi trovare la loro spiegazione, credo che ci fosse un documento sul metodo sottostante chiamato Google Sets.
jamesmf,

1
Questo problema si chiama "espansione della query".
Emre,

Risposte:


15

L' algoritmo word2vec può essere un buon modo per recuperare più elementi per un elenco di parole simili. Si tratta di un algoritmo di "deep learning" senza supervisione che è stato precedentemente dimostrato con dati di formazione basati su Wikipedia (gli script di supporto sono forniti sulla tabella codici di Google).

Attualmente ci sono implementazioni C e Python . Questo tutorial di Radim Řehůřek , l'autore della libreria di modellazione di argomenti di Gensim , è un ottimo punto di partenza.

La dimostrazione "argomento singolo" del tutorial è un buon esempio di recupero di parole simili a un singolo termine (prova a cercare "rosso" o "giallo"). Dovrebbe essere possibile estendere questa tecnica per trovare le parole che hanno la più grande somiglianza complessiva con un insieme di parole di input.


5

Hai considerato un approccio basato sulla frequenza che sfrutta la semplice ricorrenza di parole nei corpora? Almeno, questo è quello che ho visto la maggior parte della gente usa per questo. Penso che potrebbe essere brevemente trattato nel libro di Manning e Schütze, e mi sembra di ricordare qualcosa del genere come un compito a casa a scuola ...

Maggiori informazioni qui: http://nlp.stanford.edu/IR-book/html/htmledition/automatic-thesaurus-generation-1.html

Per questo passaggio:

Classifica altri concetti in base alla loro "distanza" rispetto alle parole chiave originali;

Esistono diverse metriche di somiglianza semantica da esaminare. Ecco un link ad alcune diapositive che ho messo insieme per un progetto di classe usando alcune di queste metriche di somiglianza in WordNet: http://www.eecis.udel.edu/~trnka/CISC889-11S/lectures/greenbacker-WordNet-Similarity. PDF


3

Questo è uno dei bei problemi in cui l'ambito può variare da un compito a un progetto di dimensioni di Google.

In effetti, puoi iniziare con la ricorrenza delle parole (ad esempio, probabilità condizionata). Scoprirai rapidamente che ottieni l'elenco delle parole stop come correlate alla maggior parte delle parole semplicemente perché sono molto popolari. L'uso dell'elevazione della probabilità condizionale si occuperà delle parole di arresto ma renderà la relazione soggetta a errori in piccolo numero (la maggior parte dei casi). Potresti provare Jacard ma dato che è simmetrico ci saranno molte relazioni che non troverà.

Quindi potresti considerare le relazioni che appaiono solo a breve distanza dalla parola base. Puoi (e dovresti) considerare le relazioni basate sul corpus generale (ad es. Wikipedia) e sull'utente specifico (ad es. Le sue e-mail).

Molto presto avrai un sacco di misure di parentela, quando tutte le misure sono buone e hanno qualche vantaggio rispetto alle altre.

Al fine di combinare tali misure, mi piace ridurre il problema in un problema di classificazione.

È necessario creare un set di dati di parole di Parigi ed etichettarli come "è correlato". Per creare un set di dati con etichetta di grandi dimensioni è possibile:

  • Usa fonti di parole correlate note (ad es. Buone vecchie categorie di Wikipedia) per i positivi
  • La maggior parte della parola non nota come correlata non è correlata.

Quindi usa tutte le misure che hai come caratteristiche delle coppie. Ora sei nel dominio del problema di classificazione controllata. Crea un classificatore sul set di dati, valutato in base alle tue esigenze e ottieni una misura di somiglianza adatta alle tue esigenze.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.