NLP: any easy and good methods to find semantic similarity between words?

后端 未结 7 1042
天命终不由人
天命终不由人 2021-01-30 23:22

I don\'t know whether StackOverflow covers NLP, so I am gonna give this a shot. I am interested to find the semantic relatedness of two words from a specific domain, i.e. \"imag

相关标签:
7条回答
  • 2021-01-30 23:52

    Take a look at Latent Semantic Indexing http://en.wikipedia.org/wiki/Latent_semantic_indexing it specifically addresses your problem. However you need to come up with some way to correlate these meta concepts with either positive or negative sentiments. Sentiment analysis http://en.wikipedia.org/wiki/Sentiment_analysis should help you.

    0 讨论(0)
  • 2021-01-30 23:54

    Re your comment:

    1. Classifiation through machine learning is being used for NLP all the time.
    2. Regarding semantic similarity between concepts, see Dekang Lin's information theoretic definition of similarity.

    Please also see these questions: finding related words,semantic similarity of two phrases.

    0 讨论(0)
  • 2021-01-31 00:01

    Word-Space is definitely the way to go here.If LSA is to slow for your application and if the semantics in random-indexing is too shallow the you should consider api.cortical.io . This REST API can give you the semantic fingerprint representation of any word. This semantic fingerprint contains all the different contexts to which the words belong. You can disambiguate any word wit one call like "organ" returns (muscle, piano, church, membership...) And for each of the contexts you can get contextual terms: "piano" will give (organ, clarinet, violin, flute, cello, compositions, harpsichord, orchestral) Concerning your last aspect, these semantic fingerprints are fully language independent. Currently cortical.io API covers: English, Spanish, French, German, Danish, Arabic, Russian, Chinese. More languages are being published until the end of 2014.

    0 讨论(0)
  • 2021-01-31 00:08

    In order to find semantic similarity between words, a word space model should do the trick. Such a model can be implemented very easily and fairly efficiently. Most likely, you will want to implement some sort of dimensionality reduction. The easiest one I can think of is Random Indexing, which has been used extensively in NLP.

    Once you have your word space model, you can calculate distances (e.g. cosine distance) between words. In such a model, you should get the results you mentioned earlier (distance between "focus" and "Details" should be higher than "camera weight" vs "flash").

    Hope this helps!

    0 讨论(0)
  • 2021-01-31 00:08

    I saw word2vec on HackerNews a couple of weeks ago, looks pretty close to what you want.

    0 讨论(0)
  • 2021-01-31 00:12

    You might want to take a look at the book Opinion mining and sentiment analysis. If you are only interested in similarity of words and phrases, this survey paper may help you: From Frequency to Meaning: Vector Space Models of Semantics

    0 讨论(0)
提交回复
热议问题