简单提供几个思路。
比较常见的做法是通过训练词向量,计算词向量的相似度。正如题主所说的word2vec就是最常见的是训练词向量的方法。
word2vec是Google的一个开源工具,通过将词转化成向量的形式,可以把对文本內容的处理简化为向量空间中的向量运算,往往会结合余弦相似度来计算向量空间上的相似度,來表示文本语意上的相似度。
例如:
word2vec训练词向量的方法是通过上下文去预测某个词或者通过一个词去预测上下文,所以除了得到语义相近的词,往往还会得到搭配比较多的关联词。所以word2vec是可行的。同理,其他训练词向量的方法也是可以的,比如glove或者fasttext等。而对于计算相似度的方法就更多了,就不概述了。
还有通过句子结构分析和词与词之间的事理关系也是可以得到一些关联词,比如存在“不仅A而且B”这种句式时,A和B是很有可能是关联词,甚至是近义词。除了并列,还有顺承,转折等关系也是可以寻找关联词的。
只从词本身看,有时候研究词与词的共现关系或者根据相同上下文相邻词的频数也可以挖掘关联词。