Domanda

Sono molto nuovo per la scienza dei dati in generale, e sono stato incaricato di una grande sfida.

La mia organizzazione ha un sacco di documenti che sono tutti ordinati sul tipo di documento (formato non binario, ma un tipo soggettivo assegnato in base al contenuto, ad esempio, "contratto", "ricevimento", "dichiarazione", ecc ...).

In linea generale l'assegnazione di questi tipi viene effettuato al momento della ricezione dei documenti, e non è una sfida, anche se vorremmo rimuovere l'elemento umano di questa categorizzazione. Allo stesso modo, ci sono momenti in cui ci sono attributi speciali che vorremmo identificare, come "Dichiarazione mostrando l'uso." Finora, questo è del tutto fatto da un intervento umano.

Sono un programmatore python, e sono stato a guardare gli strumenti per estrarre il testo da questi documenti (tutti i PDF, tutte OCR'ed e ricercabile) e l'analisi correre. La ricerca mi ha portato a guardare le librerie standard come NLTK, scikit-learn e gensim. Ma sto lottando per identificare ciò che sarebbe la migliore metodologia per classificare i documenti appena ricevuti.

La mia ricerca mi sta portando giù un paio di sentieri ... uno è la creazione di un modello di vettore TF-IDF sulla base di un campione di Corpa corrente e quindi la creazione di un modello per il corpus di un documento in entrata e facendo un ingenuo analisi di Bayes contro i modelli esistenti a discernere quale categoria il documento in ingresso appartiene in base a più alta probabilità. Domanda 1: è questo diritto? Se è così la domanda 2 diventa ciò che è la metodologia giusta programmatico per realizzare questo?

La ragione per cui ho portare questo a tutti è perché la maggior parte tutorial trovo sembrano propendere verso un discernimento binario di Corpa testo (positiva vs negativa, spam vs prosciutto). Ho visto scikit-learn ha informazioni sulla classificazione multi-label, ma non sono sicuro che sto andando giù per la strada giusta con esso. La parola "classificazione" sembra avere significato diverso in analisi dei documenti di quello che vorrei che significhi.

Se questa domanda è troppo vaga me lo faccia sapere e posso modificarlo per essere più precisi.

È stato utile?

Soluzione

Fatta eccezione per la parte OCR, il fascio giusta sarebbe pandas e sklearn.

È possibile controllare questo ipython notebook che utilizza TfidfVectorizer e SVC Classificatore.

Questa classificatore può rendere uno-contro-uno o uno-contro-il-resto multiclasse previsioni, e se si utilizza il metodo predict_proba invece di predict, si avrebbe il livello di confidenza di ciascuna categoria.

Se siete alla ricerca di prestazioni e non è necessario il livello di fiducia di previsione, è necessario utilizzare LinearSVC che è il modo più veloce.

Sklearn è molto ben documentato e troverete tutto il necessario per la classificazione di testo.

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