Ho generato i vettori per un elenco di token da un documento di grandi dimensioni utilizzando word2vec. Data una frase, è possibile ottenere il vettore della frase dal vettore dei token nella frase.Come ottenere il vettore per una frase dalla parola2vec dei token nella frase
risposta
È possibile, ma non da word2vec. La composizione dei vettori di parole al fine di ottenere rappresentazioni di livello superiore per le frasi (e oltre per paragrafi e documenti) è un argomento di ricerca molto attivo. Non esiste una soluzione migliore per farlo, dipende molto da quale attività si desidera applicare questi vettori. Puoi provare la concatenazione, la sommatoria semplice, la moltiplicazione puntuale, la convoluzione ecc. Ci sono diverse pubblicazioni su cui puoi imparare, ma alla fine hai solo bisogno di sperimentare e vedere cosa ti sta meglio.
È possibile ottenere rappresentazioni vettoriali di frasi durante la fase di addestramento (unire il test e formare frasi in un unico file ed eseguire il codice word2vec ottenuto dal seguente collegamento).
Il codice per frase2vec è stato condiviso da Tomas Mikolov here. Assume che la prima parola di una riga sia id-frase. Compilare il codice utilizzando
gcc word2vec.c -o word2vec -lm -pthread -O3 -march=native -funroll-loops
ed eseguirlo usando
./word2vec -train alldata-id.txt -output vectors.txt -cbow 0 -size 100 -window 10 -negative 5 -hs 0 -sample 1e-4 -threads 40 -binary 0 -iter 20 -min-count 1 -sentence-vectors 1
EDIT
Gensim (versione di sviluppo) sembra avere un metodo per dedurre vettori di nuove condanne. Scopri model.infer_vector(NewDocument)
metodo https://github.com/gojomo/gensim/blob/develop/gensim/models/doc2vec.py
Ci sono metodi differet per ottenere i vettori frase:
- Doc2Vec: è possibile addestrare il vostro set di dati utilizzando Doc2Vec e quindi utilizzare i vettori di frase.
- Media dei vettori Word2Vec: è sufficiente prendere la media di tutti i vettori di parole in una frase. Questo vettore medio rappresenterà il tuo vettore di frase.
- Media di vettori Word2Vec con TF-IDF: questo è uno dei migliori approcci che raccomanderò. Prendi la parola vettori e moltiplicala con i loro punteggi TF-IDF. Prendi la media e rappresenterà il tuo vettore di frase.
Perché media contro somma? – Fred
Per gestire le frasi di lunghezza variabile – neel
Si stanno prendendo le medie dei ripetitori w2v di * N * parole per una frase di lunghezza * N *; Ho capito. Ma perché la media rispetto, ad es. la somma? (che potrebbe anche ottenere un rappresentante composto per frasi di lunghezza variabile) – Fred
Essa dipende dall'uso:
1) Se si desidera solo per ottenere frase vettore per alcuni dati noti. Controlla il vettore di paragrafo in questi documenti:
Quoc V. Le e Tomas Mikolov. 2014. Rappresentazioni distribuite di frasi e documenti. Eprint Arxiv, 4: 1188-1196.
A. M. Dai, C. Olah e Q. V. Le. 2015. DocumentEmbedding con Vettori di paragrafi. ArXiv e-prints, luglio.
2) Se si desidera un modello per la stima frase vettore di sconosciuti test) frasi con approccio non supervisionato (:
Si potrebbe verificare questa carta:
3) Ricercatore sono anche cercando l'uscita di alcuni strati in RNN o LSTM rete, esempio recente è:
http://www.aaai.org/ocs/index.php/AAAI/AAAI16/paper/view/12195
4) Per gensim doc2vec, molti ricercatori non hanno potuto ottenere buoni risultati, per superare questo problema, seguendo la carta che utilizza doc2vec basato su vettori di parole pre-formati.
Facebook ha il progetto SentEval per la valutazione della qualità dei vettori di frasi.
ho avuto buoni risultati da:
- sommando i vettori di parole (con ponderazione TF-IDF). Questo ignora l'ordine delle parole, ma per molte applicazioni è sufficiente (in particolare per i documenti brevi)
- Fastsent
Ci sono diversi modi per ottenere un vettore per una frase. Ogni approccio ha vantaggi e carenze. La scelta di una dipende dall'attività che si desidera eseguire con i propri vettori.
In primo luogo, puoi semplicemente calcolare la media dei vettori da word2vec. Secondo lo Le and Mikolov, questo approccio si comporta male per i compiti di analisi del sentiment, perché "perde l'ordine delle parole nello stesso modo dei modelli standard di bag-of-words" e "fail [s] per riconoscere molti sofisticati fenomeni linguistici, ad esempio sarcasmo". D'altra parte, secondo lo standard Kenter et al. 2016, "la semplice mediazione degli embeddings di parole di tutte le parole in un testo si è dimostrata essere una linea di base forte o una funzionalità attraverso una moltitudine di attività", come le attività di somiglianza del testo breve. Una variante sarebbe quella di pesare i vettori di parole con il loro TF-IDF per diminuire l'influenza delle parole più comuni.
Un approccio più sofisticato sviluppato da Socher et al. consiste nel combinare i vettori di parole in un ordine dato da un albero di analisi di una frase, utilizzando le operazioni del vettore matrice. Questo metodo funziona per l'analisi del sentiment delle frasi, perché dipende dall'analisi.
- 1. NLTK converti la frase con token per sincronizzare il formato
- 2. come creare esclamazioni per una frase particolare
- 3. Regex per abbinare prima parola nella frase
- 4. Dividi colonna per ultima parola nella frase
- 5. LINQ2SQL come il comando per frase
- 6. Come rappresentare questa frase nella descrizione logica?
- 7. tokenizer frase nltk, considera nuove righe come limite frase
- 8. Ricerca prefisso frase ElasticSearch - Come ottengo la frase abbinata?
- 9. Testo sublime: come eseguire il caso frase (in maiuscolo la prima lettera di una frase)
- 10. Come cambiare il colore dei caratteri a metà frase
- 11. Trova qualsiasi parola in una frase
- 12. Frase separata a una parola per riga
- 13. Come inserire una frase in Java
- 14. Come tirare fuori frase di una stringa
- 15. Come modificare il tokenizzatore della frase NLTK
- 16. Tagliare una stringa dopo una determinata frase?
- 17. Esiste un modo per diffare i file frase per frase anziché riga per riga?
- 18. È possibile inserire una frase if?
- 19. Javascript: differenza tra una frase e un'espressione?
- 20. MVC4 Frase motivo WebAPI?
- 21. Determinazione del tempo di una frase Python
- 22. get solr risultati autosuggest per la frase
- 23. Metodo di rompere una lunga serie frase
- 24. Invertire una determinata frase in Java
- 25. Regex: Incontro parole frase PHP
- 26. Regex per passare al caso di frase
- 27. Come può essere convertita una frase o un documento in un vettore?
- 28. Regex per abbinare la frase esatta, niente prima o dopo la frase
- 29. Come controllare se una parola esiste in una frase
- 30. Frase corrispondente all'API ContentSearch Sitecore
Sto cercando di classificare i documenti utilizzando i vettori di token. Dato che ho troppi token (200k), ho voluto generare i vettori dei documenti per classificare, questo ridurrà sostanzialmente i fattori (per esempio 500). Mi chiedevo se questo è possibile. – trialcritic
Puoi indicarmi alcune pubblicazioni su questo? – trialcritic
È possibile iniziare da questi: 1. Mitchell, 2008. Modelli basati su vettori di composizione semantica. [collegamento] (http://homepages.inf.ed.ac.uk/s0453356/composition.pdf) 2. Blacoe, 2012. Confronto di rappresentazioni basate su vettori per la composizione semantica. [collegamento] (http://www.aclweb.org/anthology/D12-1050) – Claudiu