2009-02-21 20 views
5

Puoi consigliare un percorso di formazione per iniziare e diventare molto utile in Estrazione delle informazioni. Ho iniziato a leggerlo per fare uno dei miei progetti per hobby e presto ho capito che avrei dovuto essere bravo in matematica (Algebra, Stats, Prob). Ho letto alcuni dei libri introduttivi su diversi argomenti di matematica (ed è così divertente). Alla ricerca di una guida. Per favore aiuto.Come iniziare l'estrazione delle informazioni?

Aggiornamento: solo per rispondere a uno dei commenti. Sono più interessato all'estrazione di informazioni testuali.

+0

Che tipo di informazioni (cluster? Regole di associazione? Novità? Schemi sequenziali?)? Che tipo di dati (serie temporali? Transazioni? Immagini? Testo?)? Che tipo di analisi? Quale dominio? – Anonymous

risposta

9

Solo per rispondere a uno dei commenti. I sono più interessato alle informazioni di testo Estrazione.

A seconda della natura del vostro progetto, Natural language processing, e Computational linguistics possono entrambi tornare utile -Hanno fornire strumenti per misurare, e le caratteristiche estratto da informazioni testuali, e applicare la formazione, punteggio, o classificazione. I buoni libri introduttivi includono OReilly's Programming Collective Intelligence (capitoli su "ricerca e classificazione", filtro dei documenti e forse alberi decisionali).

Progetti suggeriti che utilizzano questa conoscenza: tag POS (part-of-speech) e riconoscimento di entità con nome (capacità di riconoscere nomi, luoghi e date da testo normale). Puoi usare Wikipedia come corpus di addestramento, dal momento che la maggior parte delle informazioni di destinazione sono già state estratte in Infoboxes: questo potrebbe fornire una quantità limitata di feedback di misurazione.

L'altro grosso martello di IE è la ricerca, un campo da non sottovalutare. Ancora una volta, il libro di OReilly fornisce qualche introduzione alla classifica di base; una volta che hai un grande corpus di testo indicizzato, puoi fare alcuni compiti di IE con esso. Dai un'occhiata a Peter Norvig: Theorizing from data come punto di partenza e ottimo motivatore, potresti anche reimplementare alcuni dei loro risultati come esercizio di apprendimento.

Come avviso preliminare, penso di essere obbligato a dirti che l'estrazione delle informazioni è difficile. Il primo 80% di un dato compito è solitamente banale; tuttavia, la difficoltà di ogni percentuale aggiuntiva per le attività di IE è in genere in crescita esponenziale - in fase di sviluppo e tempo di ricerca. È anche piuttosto sottodocumentato: la maggior parte delle informazioni di alta qualità sono attualmente in white paper oscuri (Google scholar è un tuo amico). Controllali una volta che hai bruciato le tue mani un paio di volte. Ma soprattutto, non lasciare che questi ostacoli ti buttino fuori - sono certamente grandi opportunità per fare progressi in questo settore.

4

Vorrei raccomandare l'eccellente libro Introduction to Information Retrieval di Christopher D. Manning, Prabhakar Raghavan e Hinrich Schütze. Copre un'ampia area di questioni che costituiscono una base eccellente e aggiornata (2008) per l'estrazione di informazioni ed è disponibile online in formato testo (sotto il link indicato).

+0

Il libro è sul recupero di informazioni non estratto ... – StackUnderflow

+0

Sì, ma mentre scrivo nella mia risposta, credo che copra aree che costituiscono una solida base per l'estrazione di informazioni. Hai chiesto un posto per iniziare. –

+0

Stavo per raccomandare il libro Introduzione al recupero informazioni, ma ho solo il PDF e non l'URL per dove l'ho trovato. Grazie per aver pubblicato il link. –

0

Questo è un po 'fuori tema, ma potresti voler leggere Programming Collective Intelligence di O'Reilly. Si occupa indirettamente dell'estrazione di informazioni testuali e non presuppone gran parte dello sfondo matematico.

1

Dai uno sguardo allo here se hai bisogno di un servizio NER di livello aziendale. Lo sviluppo di un sistema NER (e di training set) è un'attività che richiede molto tempo e alta capacità.

2

Non sono d'accordo con le persone che raccomandano di leggere l'Intelligenza Collettiva di Programmazione. Se vuoi fare qualcosa di anche moderata complessità, devi essere bravo in matematica applicata e PCI ti dà un falso senso di sicurezza. Ad esempio, quando parla di SVM, dice semplicemente che libSVM è un buon modo di implementarle. Ora libSVM è sicuramente un buon pacchetto ma a chi importa dei pacchetti. Quello che devi sapere è perché SVM offre i risultati formidabili che offre e in che modo è fondamentalmente diverso dal modo di pensare bayesiano (e come Vapnik è una leggenda).

IMHO, non esiste una soluzione. Dovresti avere una buona presa su Algebra lineare e probabilità e teoria Bayesiana. Bayes, dovrei aggiungere, è importante per questo come ossigeno per gli esseri umani (è un po 'esagerato ma ottieni ciò che intendo, giusto?). Inoltre, avere una buona presa su Machine Learning. Usare semplicemente il lavoro di altre persone è perfetto, ma nel momento in cui vuoi sapere perché qualcosa è stato fatto così com'è, devi sapere qualcosa su ML.

Controllare questi due per che:

http://pindancing.blogspot.com/2010/01/learning-about-machine-learniing.html

http://measuringmeasures.com/blog/2010/1/15/learning-about-statistical-learning.html

http://measuringmeasures.com/blog/2010/3/12/learning-about-machine-learning-2nd-ed.html

Okay, ora questo è tre di loro :)/fresco

2

Non c'è bisogno di essere bravo in matematica a fare IE capisco solo come funziona l'algoritmo, sperimentare sui casi per chi ch hai bisogno di un risultato ottimale, e della scala con cui hai bisogno per raggiungere il livello di precisione del bersaglio e lavorare con quello. Fondamentalmente stai lavorando con algoritmi e programmazione e aspetti della teoria dell'apprendimento automatico di CS/AI/Machine non scrivendo un phd paper sulla costruzione di un nuovo algoritmo di machine learning in cui devi convincere qualcuno per mezzo di principi matematici perché l'algoritmo funziona in modo totalmente in disaccordo con questa nozione. C'è una differenza tra pratica e teoria - come sappiamo tutti i matematici sono più legati alla teoria, quindi alla praticabilità degli algoritmi per produrre soluzioni aziendali realizzabili. Avresti comunque bisogno di fare un po 'di storia leggendo entrambi i libri in PNL così come i giornali di giornale per scoprire cosa hanno trovato le persone dai loro risultati. IE è un dominio molto specifico per il contesto, quindi è necessario definire prima in quale contesto si sta tentando di estrarre le informazioni. Come definiresti queste informazioni? Qual è il tuo modello strutturato? Supponiamo che tu stia estraendo da set di dati semi e non strutturati. Dovresti anche valutare se vuoi avvicinarti al tuo IE da un approccio umano standard che implica espressioni regolari e pattern matching o vorresti farlo usando approcci di machine learning statistico come Markov Chains. Puoi anche guardare ad approcci ibridi.

Un modello di processo standard è possibile seguire per fare la tua estrazione è di adattare un approccio data mining/testo:

pre-elaborazione - definire e standardizzare i dati per estrazione da varie o specifiche fonti di pulizia dei dati segmentazione/classificazione/clustering/associazione - la tua blackbox in cui verrà eseguita la maggior parte del lavoro di estrazione post-elaborazione - ripulendo i tuoi dati nel punto in cui desideri archiviarli o rappresentarli come informazioni

Inoltre, è necessario comprendere il differenza tra ciò che è dati e ciò che è informazione. Poiché è possibile riutilizzare le informazioni rilevate come fonti di dati per creare più mappe di informazioni/alberi/grafici.È tutto molto contestualizzato.

passaggi standard per: input-> processo-> uscita

Se si utilizza Java/C++ ci sono un sacco di framework e librerie disponibili si può lavorare. Perl sarebbe un linguaggio eccellente con cui eseguire l'estrazione della tua PNL se vuoi fare un sacco di estrazione di testo standard.

È possibile rappresentare i dati come XML o anche come grafici RDF (Web semantico) e per il modello contestuale definito è possibile creare grafici di relazioni e associazioni che molto probabilmente cambieranno quando si effettuano sempre più richieste di estrazione. Distribuilo come un servizio rilassante come vuoi trattarlo come una risorsa per i documenti. Puoi anche collegarlo a set di dati tassonomizzati e ricerche sfaccettate dire usando Solr.

Buone fonti da leggere sono:

  • Handbook of Compuational Linguistica e Natural Language Processing
  • Fondamenti di statistica Natural Language Processing
  • Applicazioni Informazioni estrattiva nel Prospect
  • Introduzione all'elaborazione del linguaggio con Perl e Prolog
  • Elaborazione linguaggio e parlato (Jurafsky)
  • Text Mining Application Programming
  • Il Text Mining Manuale
  • bisbetica Testo
  • Algoritmi di Intelligent Web
  • Costruire applicazioni di ricerca
  • IEEE Journal

assicuratevi di fare una valutazione approfondita prima di implementare tali applicazioni/algoritmi in produzione in quanto possono aumentare in modo ricorsivo i requisiti di archiviazione dei dati. È possibile utilizzare AWS/Hadoop per il clustering, Mahout per la classificazione su larga scala, tra gli altri. Memorizza i tuoi set di dati in MongoDB o dump non strutturati in jackrabbit, ecc. Prova prima a sperimentare con i prototipi. Ci sono vari archivi che puoi usare per basare la tua formazione su reuters corpus, tipster, TREC, ecc. Puoi anche controllare alchemyapi, GATE, UIMA, OpenNLP, ecc.

Costruire estrazioni da testo standard è più facile che dire un documento web in modo che la rappresentazione in fase di pre-elaborazione diventi ancora più cruciale per definire che cosa esattamente si stia tentando di estrarre da una rappresentazione di documento standardizzata.

Le misure standard includono: precisione, richiamo, misura f1 tra gli altri.

Problemi correlati