Domanda

Binarizzazione è l'atto di trasformare le caratteristiche colorate di di un'entità in vettori di numeri, più spesso vettori binari, per fare buoni esempi per gli algoritmi di classificazione.

Se si dove binarizzare la frase "Il gatto ha mangiato il cane", potremmo iniziare assegnando ogni parola un ID (ad esempio cat-1, ate-2, l'-3, dog-4) e poi semplicemente sostituire la parola da esso è ID dando il vettore <3,1,2,3,4>.

Dato questi ID potremmo anche creare un vettore binario dando ogni parola quattro possibili slot, e impostando la scanalatura corrispondente ad una parola specifica con uno, dando il vettore <0,0,1,0,1,0, 0,0,0,1,0,0,0,0,0,1>. Il secondo metodo è, per quanto ne so, è comunemente indicato come il parole-metodo del sacchetto-di-.

Ora per la mia domanda, qual è il migliore metodo di binarizzazione quando si tratta di descrivere le caratteristiche per l'elaborazione del linguaggio naturale, in generale, e la transizione a base di dipendenza analisi (con Nivres algoritmo) in particolare?

In questo contesto, non vogliamo codificare l'intera frase, ma piuttosto lo stato attuale del parse, per esempio la parola in cima alla pila en la prima parola nella coda di input. Dal momento che l'ordine è di grande rilevanza, questo esclude la parole-metodo del sacchetto-di-.

Con migliore , mi riferisco al metodo che rende i dati più comprensibili per il classificatore, senza utilizzare la memoria non necessaria. Per esempio io non voglio una parola bigram utilizzare 400 milioni di funzionalità per 20000 parole uniche, se in realtà esistono solo 2% i bigrammi.

Dato che la risposta dipende anche dalla particolare classificatore, sono per lo più interessati a modelli entropici massime (liblinear), Support Vector Machines (libsvm) e perceptrons, ma le risposte che si applicano ad altri modelli sono i benvenuti.

È stato utile?

Soluzione

Questo è in realtà una domanda molto complessa. La prima decisione che devi prendere è se lemmatize tuoi gettoni d'ingresso (le sue parole). Se si esegue questa operazione, si riduce drasticamente il valore del tuo tipo, e la vostra analisi della sintassi ottiene molto meno complicato. Tuttavia, ci vuole un sacco di lavoro per lemmatize un token. Ora, in un linguaggio di programmazione, questo compito viene notevolmente ridotta, come la maggior parte delle lingue separate parole chiave o nomi di variabili con un insieme ben definito di simboli, come gli spazi bianchi o di un periodo o roba del genere.

La seconda decisione cruciale è quello che stai andando a che fare con i dati post-facto. Il metodo "bag-di-parole", in forma binaria che hai presentato, ignora l'ordine delle parole, che è del tutto bene se si sta facendo riepilogo di un testo o forse una ricerca in stile Google, dove non si cura , dove appaiono le parole, fino a quando appaiono. Se, d'altra parte, si sta costruendo qualcosa di simile a un compilatore o parser, l'ordine è molto importante. È possibile utilizzare l'approccio token-vettore (come nel tuo secondo comma), oppure è possibile estendere la borsa-di-parole si avvicinano in modo tale che ciascun diverso da zero l'ingresso nel vettore borsa-di-parole contiene la posizione di indice lineare del token nella frase.

Infine, se si sta andando ad essere la costruzione analizzare alberi , ci sono ovvie ragioni perché ci si vuole andare con l'approccio token-vettore, in quanto è un grande seccatura per mantenere sotto-frase iD per ogni parola nel vettore borsa-di-parole, ma molto facile da fare "sub-vettori" in un token -vettore. In realtà, Eric Brill utilizzato una sequenza di token-id per la sua part-of-speech tagger , che è davvero bello.

Ti spiace se le chiedo cosa compito specifico a cui stai lavorando?

Altri suggerimenti

  

Binarizzazione è l'atto di   trasformando caratteristiche colorate di   un'entità in vettori di numeri,   il più delle volte vettori binari, per rendere   buoni esempi per classificatore   algoritmi.

Sono per lo più venire attraverso funzioni numeriche che assumono valori tra 0 e 1 (non binario come lei), che rappresenta la rilevanza della caratteristica particolare nel vettore (tra 0% e 100%, dove 1 rappresenta il 100%). Un esempio comune per questo sono TF-IDF vettori:. nel vettore che rappresenta un documento (o una frase), si ha un valore per ogni termine nell'intero vocabolario che indica la rilevanza di tale termine per il documento rappresentato

Come già detto Mike nella sua risposta , questo è un problema complesso in un ampio campo. In aggiunta ai suoi puntatori, si potrebbe trovare utile esaminare alcuni recupero delle informazioni tecniche come il vettore spazio modello , vettore spaziale classificazione e latente semantico indicizzazione come punti di partenza. Inoltre, il campo di parola senso disambiguazione occupa molto con caratteristica problemi di rappresentazione in PNL.

[Non è una risposta diretta] Tutto dipende da ciò che si sta tenta di analizzare e poi di processo, ma per generale breve frase di trasformazione umana (per esempio IVT) un altro metodo è quello di utilizzare le reti neurali per imparare gli schemi. Questo può essere molto acurate per vocubularies piccoline

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top