Domanda

I love to eat chicken.
Today I went running, swimming and played basketball.

Il mio obiettivo è quello di tornare FOOD e Sport semplicemente analizzando queste due frasi. Come si può fare?

mi è familiare con la PNL e Wordnet. Ma c'è qualcosa di più alto livello / pratico / moderna tecnologia ??

C'è qualcosa che categorizza automaticamente le parole per te, in " livelli "?

Ancora più importante, qual è il termine tecnico per questo processo?

È stato utile?

Soluzione

Il problema è di difficile soluzione procedurale, ma sono stati fatti molti progressi nel settore ultimamente.

La maggior parte del linguaggio naturale inizia con una grammatica (che può o non può essere libera dal contesto.) E 'un insieme di regole di costruzione affermando come le cose più generali sono fatti di quelli più specifici.

Esempio di contesti grammatica libera:

Sentence ::= NounPhrase VerbPhrase
NounPhrase ::= ["The"] [Adjective] Noun
Adjective ::= "big" | "small" | "red" | "green"
Noun ::= "cat" | "man" | "house"
VerbPhrase ::= "fell over"

Questa è ovviamente Semplificando al massimo, ma il compito di fare una grammatica completa per definire tutti inglese è enorme, e la maggior parte dei sistemi reali definire solo un sottoinsieme di essa applicabile ad un dominio del problema.

Una volta che una grammatica è stato definito, (o imparato utilizzando algoritmi complessi noti solo agli artisti del calibro di Google) una stringa, chiamato un "esemplare" viene analizzato secondo la grammatica. quali tag ogni parola con le parti del discorso. una grammatica che è molto complesso, non sarebbe solo avere le parti del discorso che hai imparato a scuola, ma categorie come "Siti web", "I nomi delle persone anziane" e "ingredienti".

Queste categorie possono essere faticosamente costruiti nella grammatica dagli esseri umani o dedotte utilizzando le cose come analogico o Modeling Support Vector Machines. In ciascuna, cose come "pollo", "pallone", "barbecue", e "grillo" sarebbero definiti come punti in uno spazio tridimensionale molto alto, insieme a milioni di altri punti, e quindi gli algoritmi di clustering, definirebbero gruppi solo sulla base delle posizioni delle punti relativi fra di loro. allora si potrebbe provare a dedurre i nomi per i gruppi di testo di esempio.

link testuale Questa ricerca di Google elenca diverse tecniche utilizzate in PNL, e si potrebbe imparare un bel po 'da loro.

EDIT per risolvere proprio questo problema, si potrebbe scansione del Web per enunciati della forma " _ è un _ " per costruire un database di elemento-categoria relazioni. poi si analizza una stringa come sopra, e cercare le parole che sono noti gli elementi nel database

Altri suggerimenti

Google Sets fa parte di questo, e c'è un po 'di discussione che cita superset. Tuttavia, non ho davvero visto qualsiasi dettaglio tecnico in là, solo idee e la discussione.

Forse questo potrebbe almeno aiutare la vostra ricerca ...

La domanda che fate è una intera area di ricerca chiamata categorizzazione del testo d'attualità. Una grande panoramica delle tecniche è "Apprendimento automatico nella categorizzazione di testo automatizzato" in sondaggi ACM Computing, dal Fabrizio Sebastiani. . Una delle tecniche più semplici (anche se non necessariamente le migliori prestazioni) è quella di avere numerosi (centinaia) esempi di frasi in ogni categoria, e quindi la formazione di un classificatore bayesiano Naive su quelle frasi di esempio. NLTK contiene un classificatore Bayesiano Naive nel nltk.classify.naivebayes modulo.

Si potrebbe dare un'occhiata a WordNet Domini delle risorse da persone provenienti da FBK. È un'estensione di WordNet che è progettato per essere utilizzato per la categorizzazione testo e disambiguazione di senso. Permette vari gradi di granularità.

http://wndomains.fbk.eu/

Uno dei possibili modi per applicarlo al vostro compito potrebbe essere quello di ottenere NP-pezzi dalle vostre frasi, ottenere le loro parole di testa e da loro ottenere categorie da domini WordNet.

Tenqyu risolto utilizzando Python e Machine Learning.

  1. Avere un set di dati di testo
  2. Applica vettorializzazione TF-IDF. Il peso di un termine che si verifica in un documento è
    semplicemente proporzionale alla frequenza termine. (Il Luhn Assunzione 1957) La specificità di un termine può essere quantificato in funzione inversa di il numero di documenti in cui si verifica.
  3. Un vettore spazio modello
  4. Multinomial Native Bayes Classificazione

Il processo in modo più dettagliato è qui: https://hackernoon.com/ how-to-meglio-classificare-Coachella-con-machine-learning-parte-1-dc84c53d1a9c

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