11

Abbiamo bisogno di decidere tra Support Vector Machines e Fast Artificial Neural Network per alcuni progetti di elaborazione del testo.Support Vector Machine o Artificial Neural Network per l'elaborazione del testo?

Include correzione ortografica contestuale e quindi codifica il testo per determinate frasi e i relativi sinonimi.

Quale sarà l'approccio giusto? O c'è un sostituto per entrambi ... Qualcosa di più appropriato di FANN e SVM?

risposta

12

Penso che otterrete un risultato competitivo da entrambi gli algoritmi, quindi dovreste aggregare i risultati ... pensate all'apprendimento dell'insieme.

Aggiornamento:
Non so se questo è abbastanza specifico: usare Bayes Optimal Classificatore di combinare la previsione da ogni algoritmo. Devi allenare entrambi i tuoi algoritmi, quindi devi addestrare il classificatore ottimale Bayes per usare i tuoi algoritmi e fare previsioni ottimali basate sull'input degli algoritmi.

separare i dati di allenamento in 3:

  • 1 ° set dati verranno utilizzati per addestrare il (Artificiale) Neural Network e le Support Vector Machines.
  • Il secondo set di dati verrà utilizzato per addestrare il classificatore ottimale Bayes prendendo le previsioni non elaborate da ANN e SVM.
  • Il terzo set di dati sarà il set di dati di qualifica in cui testerai il Classes Optimal Classifier addestrato.

Update 2.0:
Un altro modo per creare un insieme di algoritmi è quello di utilizzare 10-fold (or more generally, k-fold) cross-validation:

  • dati rompere in 10 gruppi di dimensione n/10.
  • Treno su 9 set di dati e test su 1.
  • Ripetere 10 volte e ottenere una precisione media.

Ricordare che in genere è possibile combinare molti classificatori e metodi di convalida per ottenere risultati migliori. È solo questione di trovare ciò che funziona meglio per il tuo dominio.

+0

Potete aiutarmi ancora un po 'su cosa usare esattamente? – Arc

+0

@Akrid Ho aggiornato il mio commento ... ti aiuta o hai bisogno di maggiori informazioni? – Kiril

+0

Grazie mille Lirik – Arc

8

Si potrebbe anche dare un'occhiata a maxent classifiers (/log linear models).

Sono molto popolari per problemi di NLP. Le moderne implementazioni, che utilizzano metodi quasi-newton per l'ottimizzazione piuttosto che gli algoritmi di ridimensionamento iterativo più lenti, si allenano più rapidamente degli SVM. Sembrano anche essere less sensitive al valore esatto dell'iperparametro di regolarizzazione. Probabilmente dovresti preferire solo gli SVM al massimo, se vuoi usare un kernel per ottenere le congiunzioni delle funzionalità gratuitamente.

Per quanto riguarda gli SVM rispetto alle reti neurali, l'utilizzo di SVM sarebbe probabilmente migliore rispetto all'utilizzo di ANNs. Come i modelli massimi, la formazione degli SVM è un problema di ottimizzazione convessa. Ciò significa che, dati un set di dati e una particolare configurazione di classificatore, gli SVM troveranno costantemente la stessa soluzione. Quando si addestrano reti neurali multistrato, il sistema può convergere in vari minimi locali. Quindi, otterrete soluzioni migliori o peggiori a seconda dei pesi che utilizzate per inizializzare il modello.Con le RNA, è necessario eseguire più esecuzioni di allenamento al fine di valutare l'aspetto positivo o negativo di una determinata configurazione del modello.

+1

Mentre amo il blog di Hal, un disegno fatto con MS Paint non è la prova che la regressione logistica è meno sensibile alla selezione iperparametrica rispetto alle SVM. Ottima risposta altrimenti, però. – Stompchicken

0

È possibile utilizzare Convolution Neural Network (CNN) o Recurrent Neural Network (RNN) per addestrare la PNL. Penso che la CNN abbia raggiunto lo stato dell'arte adesso.