查找单词X

时间:2017-10-27 23:10:43

标签: nlp stanford-nlp data-mining word2vec linguistics

找出某个单词X附近经常出现哪些单词的最佳方法是什么? (注意:不是哪个单词与单词X最相似)

我有GloVe单词向量,因此每个向量代表不同环境中某个单词的分布(每个维度都是一个环境)。那么如何从每个环境中检索单词?换句话说,如何检索仅在其中一个维度上相似的单词?

我尝试只在一个维度上寻找更靠近X的单词,而忽略了其余部分,但这给了我垃圾话。

P.S。 到目前为止,我发现N个最接近的单词(通过余弦相似性)到单词X,然后将K-means聚类应用于这些单词。它工作得很好,但我担心N个最接近的单词不一定是出现在单词X附近的单词,而是出现在单词X环境中的单词。

编辑: 澄清:简单地收集n-gram计数是不够的,因为我一直在寻找一种方法,只使用向量,即无法访问语料库本身。原因是一些免费提供的预训练载体是在数据的数据上进行训练的。例如,如果以某种方式从预训练的矢量中获取这些信息,那么存储普通爬行的整个n-gram计数将是非常浪费的。

2 个答案:

答案 0 :(得分:0)

如果您真正想要的是“哪些单词出现在单词X附近”,那么您根本不需要来自word2vec / glove的那种“密集”单词向量。只需扫描您的语料库,并计算共现(在您感兴趣的窗口内)。

然后,您将获得确切的计数,而不是其他间接相关表示的估计值。

(如果您需要有关如何进行此类计数的更多指导,请搜索与[单词共生矩阵]相关的资源。)

答案 1 :(得分:0)

虽然我确实认为,对同现的简单计算会更好,你也可以使用许多嵌入方法来做到这一点。

Word2vec实际上构建了两个映射。编码器和解码器。

我们通常只使用编码器,两个矢量应该非常相似。但是为了找到共同出现的单词,显而易见的方法是使用编码器进行编码,然后在 decoder 中找到最相似的向量。因为这些模拟上下文

但要注意:大肆宣传的神经词汇嵌入"真正关注可替代性。我们可以用哪个词来代替。因此,您可能首先会看到同义词和这样的词,然后是具有相似上下文但其他角色的词。

使用简单的基于计数的方法,您可以更好地控制它们的作用:预测单词一起出现的概率。