2010-03-14 20 views
19

Non so se StackOverflow copre NLP, quindi ho intenzione di dare una possibilità. Sono interessato a trovare la relazione semantica di due parole da un dominio specifico, ad esempio "qualità dell'immagine" e "rumore". Sto facendo qualche ricerca per determinare se le recensioni di fotocamere sono positive o negative per un particolare attributo della fotocamera. (come la qualità dell'immagine in ciascuna delle recensioni).NLP: qualsiasi metodo facile e buono per trovare la somiglianza semantica tra le parole?

Tuttavia, non tutti usano il testo esatto stessa "qualità delle immagini" nel messaggio, quindi sono fuori per vedere se c'è un modo per me di costruire qualcosa di simile:

"qualità delle immagini", che comprende ("rumore", "colore", "nitidezza", ecc. ecc.) così posso avvolgere tutto in un unico grande ombrello.

Sto facendo questo per un'altra lingua, quindi Wordnet non è necessariamente utile. E no, non lavoro per Google o Microsoft, quindi non ho dati dal comportamento di click delle persone come dati di input.

Tuttavia, ho un sacco di testo, pos-targhette, ecc segmentati

+0

Sarebbe utile se si potesse dire di più sui dati si sta lavorando con e il compito esatto che si desidera eseguire. Stai cercando di classificare i contenuti delle singole recensioni come positive o negative? Oppure, stai assumendo che le recensioni siano già etichettate come positive o negative e stai cercando di capire quali attributi della fotocamera portano a sentimenti di un utente sul prodotto (ad esempio, il prodotto ha ricevuto 1 su 5 stelle e il l'utente cita 'la qualità dell'immagine' nella recensione, quindi deduci che la qualità dell'immagine è cattiva)? – dmcer

+0

Oops. Confused NLP/Natural Language Processing con PNL/Programmazione Neuro-Linguistica. Colpa mia. –

+0

1) Mi piacerebbe trovare la classificazione ombrello dei termini: come il modo in cui più attributi appartengono alla stessa categoria (immagino che questa sia la classificazione allora?) Ho solo affrontato la classificazione tramite il metodo di apprendimento automatico, che dubito fortemente essere applicato a NLP 2) voglio fondamentalmente qualcosa da dirmi la somiglianza tra due termini di concetto: "focus" vs "Dettagli" dovrebbe essere superiore a "peso della fotocamera" vs "flash" – sadawd

risposta

2

Date un'occhiata a Latent Semantic Indexing http://en.wikipedia.org/wiki/Latent_semantic_indexing affronta specificamente il problema. Tuttavia è necessario trovare un modo per correlare questi concetti meta con sentimenti positivi o negativi. L'analisi del sentimento http://en.wikipedia.org/wiki/Sentiment_analysis dovrebbe aiutarti.

+1

Qui è una buona risorsa per davvero imparare LSI (se sei disposto a mettere un po 'di lavoro) http://nlp.stanford.edu/IR-book/pdf/18lsi.pdf – bernie2436

5

Partenza distanza google somiglianza - http://arxiv.org/abs/cs.CL/0412098 ad es. se molte pagine web li includono entrambi, probabilmente sono correlati.

programma demo in http://mechanicalcinderella.com

Oltre a questo, si potrebbe provare a tradurre un progetto come wordnet ((Google traduttore potrebbe aiutare), o avviare un'ontologia di collaborazione.

+0

Su quella demo la connessione di (programmazione, animale) è più forte che la connessione di (programmazione, html)) http://www.mechanicalcinderella.com/index.php?inset%5B%5D=animal&inset%5B%5D=html E inserto% 5B% 5D = & inserto% 5B% 5D = & inserto% 5B% 5D = & inatr% 5B% 5D = programmazione e inatr% 5B% 5D = & inatr% 5B% 5D = & inatr% 5B% 5D = & inatr% 5B% 5D = & domena = #results – Mher

+0

http://mechanicalcinderella.com rotto ora –

4

Al fine di trovare similarità semantica tra parole, un word space model dovrebbe fare il trucco.Questo modello può essere implementato molto facilmente ed abbastanza efficientemente.Probabilmente, vorrete implementare una sorta di riduzione della dimensionalità.Il più semplice che posso pensare è Random Indexing, che è stato ampiamente utilizzato in PNL

Una volta ottenuto il modello spaziale delle parole, è possibile calcolare le distanze (ad es. distanza coseno) tra le parole. In tale modello, dovresti ottenere i risultati che hai menzionato in precedenza (la distanza tra "messa a fuoco" e "Dettagli" deve essere superiore a "peso della fotocamera" o "flash") "".

Spero che questo aiuti!

+0

entrambi i link interrotti ora – snoram

2

ho visto word2vec su HackerNews un paio di settimane fa, sembra piuttosto vicino a quello che si vuole.

1

Word-Space è sicuramente il modo per andare qui. Se LSA rallenterà la tua applicazione e se la semantica in indicizzazione casuale è troppo bassa, dovresti considerare api.cortical.io. Questa API REST può fornire la rappresentazione semantica delle impronte digitali di qualsiasi parola. Questa impronta digitale semantica contiene tutti i diversi contesti a cui appartengono le parole. Puoi disambiguare qualsiasi parola con una chiamata come "organo" restituisce (muscoli, pianoforte, chiesa, appartenenza ...) E per ciascuno dei contesti puoi ottenere termini contestuali: "pianoforte" darà (organo, clarinetto, violino, flauto, violoncello, composizioni, clavicembalo, orchestra) Per quanto riguarda il tuo ultimo aspetto, queste impronte digitali semantiche sono completamente indipendenti dal linguaggio. Attualmente cortical.io cover API: inglese, spagnolo, francese, tedesco, danese, arabo, russo, cinese. Più lingue sono stati pubblicati fino alla fine del 2014.

Problemi correlati