This is a Codenames AI I wrote after getting the idea from Jule Schatz, who wrote one as well. This one uses word2vec semantic distances as well as associated words taken from ConceptNet.
It requires GoogleNews-vectors-negative300.bin, and an internet connection to access ConceptNet.