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?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With