Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to disambiguate words in Conceptnet

Conceptnet contains two basic types of nodes, words (e.g. /c/en/cat) and senses (e.g. /c/en/cat/n/domestic_cat). Unfortunately, the vast majority of edges use word nodes. This makes inferring difficult, because I can't be sure which sense a word-to-word edge is referring to.

For example, Conceptnet contains 9 senses that use the word "cat", most being proper nouns (/c/en/cat/n/musical, /c/en/cat/n/magazine, /c/en/cat/n/a_spiteful_woman_gossip, etc). If an edge says "/c/en/cat /r/HasA /c/en/tail", I know by using my own experience that that's probably referring to /c/en/cat/n/domestic_cat and no other senses. Whereas if I see an edge that says "/c/en/cat /r/IsA /c/en/fun_to_watch", I know it's probably referring to /c/en/cat/n/musical, but it also still might be referring to /c/en/cat/n/domestic_cat.

How do I automate this process? How do I translate edges that only use word nodes so that they use sense nodes?

like image 488
Cerin Avatar asked Aug 22 '14 14:08

Cerin


1 Answers

ConceptNet doesn't appear to include any word sense disambiguation, see their FAQ:

ConceptNet does only the bare minimum to distinguish word senses so far -- in the built graph of ConceptNet 5.5, word senses are only distinguished by their part of speech (similar to sense2vec). WordNet has a large number of senses for every word, though some of them are difficult to distinguish in practice.

like image 99
oregano Avatar answered Oct 03 '22 02:10

oregano