Domanda

Vorrei davvero apprezzare i vostri pensieri su l'approccio migliore per il seguente problema. Sto usando un auto riservato esempio messa in vendita, che è simile in natura per dare un'idea.

. Problema: estrarre una tupla di dati dal testo dato

Ecco alcune caratteristiche dei dati.

  1. Il vocabolario (parole) nel testo si limita a un dominio specifico. Consente di assumere 100-200 parole al massimo.

  2. Testo che deve essere analizzato è un titolo come un dato annuncio dell'automobile indicati di seguito. Così ciascuno corrisponde registrare su una tupla (riga).

  3. In alcuni casi alcuni degli attributi può essere che manchi. Così, per esempio, nella riga dati grezzi # 5 sotto l'anno manca.

  4. Alcune parole vanno insieme (bigrammi). Come "miglia Basso".

  5. I dati storici disponibili = 10.000 record

  6. In arrivo i nuovi dati di volume = 1000-1500 record / settimana

Il risultato atteso dovrebbe essere sotto forma di (anno, marca, modello, funzione). Quindi l'uscita dovrebbe essere simile

1 -> (2009, Ford, Fusion, SE) Pagina 2 -> (1997, Ford, Toro, Wagon) Pagina 3 -> (2000, Mitsubishi, Mirage, DE) Pagina 4 -> (2007, Ford, Expedition, EL limitata)
5 -> (, Honda, Accord, EX)
....
....

Raw Headline dati:


1 -> 2009 Ford Fusion SE - $ 7000 Pagina 2 -> 1997 Ford Taurus Carro - $ 800 (San Jose est) Pagina 3 -> '00 Mitsubishi Mirage DE - $ 2499 (Saratoga) pic Pagina 4 -> 2007 Ford Expedition EL limitata - $ 7800 (x)
5 -> Honda Accord ex bassi miglia - $ 2800 (/ Pleasanton / Livermore dublin) pic Pagina 6 -> 2004 HONDA ODASSEY LX 68K MILES - $ 10800 (Danville / San Ramon) Pagina 7 -> 93 Lincoln Mark - $ 2000 (in East Oakland) pic Pagina 8 -> ####### 2006 LEXUS GS 430 NERO SU NERO 114KMI ####### - $ 19700 (San Rafael) pic Pagina 9 -> 2004 Audi A4 1.8T FWD - $ 8900 (Sacramento) pic
10 -> ####### 2003 GMC C2500 HD EX-CAB 6.0 V8 EFI BIANCO 4X4 ####### - $ 10575 (San Rafael) pic
11 -> 1990 Toyota Corolla percorsi buone! Risparmiatore del gas! 5SPEED PULITO! REG 2011 O.B.O - $ 1600 (Hayward / valle castro) pic img
12 -> HONDA ACCORD EX 2000 - $ 4900 (/ Pleasanton / Livermore dublin) pic
13 -> 2009 Chevy Silverado LT Crew Cab - $ 23900 (/ Pleasanton / Livermore dublin) pic
14 -> 2010 Acura TSX - V6 - TECH - $ 29900 (/ Pleasanton / Livermore dublin) pic
15 -> 2003 Nissan Altima - $ 1830 (ha SF) pic


Scelte possibili:

  1. Un apprendimento automatico Testo classificatore (Naive Bayes etc)
  2. Regex

Quello che sto cercando di capire è se RegEx è troppo complicato per il lavoro e un classificatore di testo è un peso inutile?

Se la scelta è di andare con un classificatore di testo allora cosa vorresti prendere in considerazione per essere il più facile da implementare.

Grazie in anticipo per il vostro aiuto gentile.

È stato utile?

Soluzione

Questo è un problema ben studiato chiamato estrazione di informazioni . Non è semplice per fare quello che si vuole fare, e non è così semplice come si fai sembrare (machine learning cioè non è un peso inutile). Ci sono diverse tecniche, si dovrebbe leggere una panoramica del settore di ricerca.

Altri suggerimenti

questa libreria IE per la scrittura di regola l'estrazione dizionario veloce corrispondenza .

Credo che le dati ARX o sistemi di Febo può soddisfare le vostre esigenze, se avete già annotati e un elenco di parole associate a ciascun campo. Il loro approccio è un mix di estrazione di informazioni e l'integrazione delle informazioni.

Ci sono un paio di buone biblioteche riconoscimento dell'entità. Avete dato un'occhiata a Apache opennlp ?

Come utente alla ricerca di uno specifico modello di auto il compito è più facile. Sono abbastanza sicuro che avrei potuto classificare, per esempio, la maggior parte delle Ford Ranger perché so cosa cercare con regexp.

Credo che la cosa migliore è scrivere una funzione per ogni modello di auto con il tipo String -> Forse Tuple. Quindi eseguire tutti questi su ogni ingresso e buttare via quelle ingressi conseguente zero o troppi tuple.

Si dovrebbe usare uno strumento come Amazon Mechanical Turk per questo. microtasking umana. Un'altra alternativa è quella di utilizzare un libero professionista di inserimento dati. oDesk è un ottimo posto dove guardare. È possibile ottenere risultati di ottima qualità e il costo è molto ragionevole per ciascuno.

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