Come posso ottenere una misura della somiglianza semantica delle parole?


20

Qual è il modo migliore per capire la somiglianza semantica delle parole? Word2Vec va bene, ma non è l'ideale:

# Using the 840B word Common Crawl GloVe vectors with gensim:

# 'hot' is closer to 'cold' than 'warm'
In [7]: model.similarity('hot', 'cold')
Out[7]: 0.59720456121072973

In [8]: model.similarity('hot', 'warm')
Out[8]: 0.56784095376659627

# Cold is much closer to 'hot' than 'popular'
In [9]: model.similarity('hot', 'popular')
Out[9]: 0.33708479049537632

I metodi Wordnet di NLTK sembrano rinunciare a:

In [25]: print wn.synset('hot.a.01').path_similarity(wn.synset('warm.a.01'))
None

Quali sono le altre opzioni?


1
Puoi dire perché word2vec non è l'ideale? Word2vec è progettato per catturare la somiglianza semantica delle parole, quindi perché non è l'ideale?
SHASHANK GUPTA,

3
Sì, ecco perché ho fornito gli esempi nella domanda. Per ribadire: "caldo" e "freddo" sono contrari, ma sono più simili (secondo word2vec) rispetto a "caldo" e "caldo" che sono molto più vicini ai sinonimi. "Caldo" può anche significare "popolare" (ad esempio, un "oggetto caldo") ma di nuovo "caldo" e "freddo" sono più vicini l'uno all'altro di quanto lo siano "caldo e" popolare ". Quindi word2vec non è l'ideale perché segna contrari (che sono opposti semantici) come più simili dei sinonimi (che sono semanticamente equivalenti).
Thomas Johnson

Risposte:


11

Word2vec non cattura la somiglianza basata su contrari e sinonimi. Word2vec darebbe una somiglianza più elevata se le due parole hanno un contesto simile. Ad esempio, il tempo in California era _____. Il bianco potrebbe essere riempito sia da caldo che da freddo, quindi la somiglianza sarebbe maggiore. Questo concetto si chiama relazioni paradigmatiche.

Se sei interessato a catturare relazioni come hypernyms, iponimi, sinonimi, contrari dovresti usare qualsiasi misura di somiglianza basata su wordnet. Esistono molte misure di somiglianza basate su wordnet. Puoi controllare questo link http://ws4jdemo.appspot.com/


7

In Strumenti di analisi del testo per la somiglianza semantica , hanno sviluppato un algoritmo per trovare la somiglianza tra 2 frasi. Ma se leggi da vicino, trovano la somiglianza della parola in una matrice e si sommano per scoprire la somiglianza tra le frasi. Quindi, potrebbe essere uno sparo per verificare la somiglianza delle parole.

Anche in SimLex-999: valutazione di modelli semantici con stima (di autenticità) della somiglianza , spiegano la differenza tra associatione similarityche probabilmente è anche la ragione della tua osservazione. Ad esempio, caffè e una tazza. Non sono simili ma sono associativi. Quindi solo considerare la somiglianza darebbe un risultato diverso. Gli autori suggeriscono vari modelli per stimarli.


Link interrotto, "Strumenti analitici di testo per la somiglianza semantica".
xtian l'

2

Word2vec è un buon punto di partenza per la maggior parte degli scenari. Si fa semantica cattura mediante predizione utilizzando il metodo CBOW. Permette traduzioni (come l'esempio più ripetuto che posso mettere di nuovo qui), V (Re) - V (Regina) ~~ V (uomini) - V (donne) e così via.

Quindi qual'è il problema? Il problema sta nell'ambiguità del senso delle parole. Ogni volta che la parola stessa ha due significati diversi in due diversi contesti, la parola vettore tenderà ad essere davvero lontana da entrambi i contesti. Python ~ Boa (entrambi i serpenti) e Python - Java (entrambi i linguaggi di programmazione) ..

Qualche alternativa?

Per lo scopo molto specifico di "sinonimi", se si desidera Wordnet sarebbe il posto ideale. Cattura una relazione esplicita di due parole anziché una relazione implicita basata sull'uso e sulle occorrenze.

Wordnet è per lo più realizzato come un dizionario - dove word2vec è estratto dall'uso.


0

In una grammatica libera dal contesto, penso che sia davvero impossibile determinare la vicinanza delle parole. Quello che puoi fare è usare i vettori di lessico e quindi se una parola è vicina in valori tra due lessici, allora il valore dovrebbe essere vicino.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.