Estrai l'entità principale da un corpo di testo per la categorizzazione del testo?

1

Sto provando a classificare i prodotti in base a vari campi di dati. Ho avuto un discreto successo nell'abbinare i termini di ricerca ai nomi dei prodotti, ma questo approccio ingenuo non funziona quando si tratta di corpi di testo più grandi come le descrizioni poiché una descrizione tende a contenere molte informazioni aggiuntive che non sono rilevanti alla categoria.

I miei pensieri per risolvere questo problema erano estrarre le entità e i predicati dal testo, quindi usare un processo di eliminazione per capire quali devono essere i soggetti. Se c'è un approccio migliore a questo, per favore fatemelo sapere.

Quindi, ad esempio, prendi la seguente descrizione del prodotto:

A classic sweatshirt with the dolman sleeves providing a modern twist, it is super-versatile and perfect for every day. Wear with our harem trousers or with jeans or a fitted skirt to balance the relaxed shape. Wide neck with ribbed dolman sleeves, rib neck and hem; and V insert at front.

Non parlerò di tutto, ma qui ci sono alcuni esempi di ciò che mi aspetto di estrarre da esso:

E1. una felpa classica

P1. ... ha dolman sleeves

P2. ... è super versatile

P3. ... indossare con ... (è un'istruzione un predicato?)

E2. pantaloni harem

... etc

Quindi, usando quanto sopra, suppongo che tu possa elaborare l'entità principale su cui il paragrafo si concentra su "una felpa classica" poiché il resto delle frasi inizia con i predicati, e potrebbe essere applicata una certa ponderazione poiché è in la prima frase. Dopo di ciò, ho potuto tornare al mio approccio originale di corrispondenza del testo estratto con un indice di termini e sinonimi.

Esiste un approccio / algoritmo formale che risolva questo problema? O pensi che l'approccio che ho delineato sia destinato a fallire e dovrei provare qualcos'altro? ;)

correlati

Che cosa la tecnologia / algoritmo dovrebbe essere usato per astrarre il significato o le parole chiave da un passaggio di testo?

    
posta Sam P 09.02.2016 - 17:54
fonte

1 risposta

2

NER (Named Entity Extraction) dovrebbe automatizzare la maggior parte di questa implementazione se è possibile creare un set di dati di formazione sufficiente. Per esempio. con uno dei toolkit (Apache OpenNLP), i dati di addestramento sarebbero simili.

Una felpa classica con le maniche dolman dal tocco moderno, è super versatile e perfetta per tutti i giorni. Indossalo con i nostri pantaloni harem o con jeans o una gonna aderente per bilanciare la forma rilassata. Collo ampio con maniche a coste a costine, collo e orlo a costine; e V inserto davanti.

Questo testo di formazione consentirebbe a OpenNLP di suddividere il testo in token e valutare la probabilità di predicati (start_of_product_name, end_of_product_name, no_op) per ogni serie di token consecutivi.

Questo approccio richiederebbe una quantità significativa di testo che viene taggato, in modo che il toolkit possa costruire un modello linguistico che stabilisca una relazione tra sequenze di token e probabilità di predicati.

    
risposta data 20.03.2016 - 16:07
fonte