如何用word2vec找到与世界相关的常见形容词?



我需要在Python中训练一个基于word2vec或其他模型的模型,以便获得语义上接近世界的形容词。

例如,给模特一个像"猫"这样的词,然后收到像"可爱"、"漂亮"等形容词。

有办法吗?

使用任何word2vec模型-无论你是在自己的数据上训练它,还是下载别人的预训练模型-你可以给它一个像cat这样的词,并收到一个在其坐标系统中被认为是"相似"的词的排名列表。

然而,这些通常并不局限于形容词,因为典型的word2vec模型不记录单词的词性。因此,要过滤到只有形容词,一些选项可以包括:

  • 使用一个典型的word2vec向量集,它忽略词性,但使用一些外部引用(比如WordNet)来检查每个返回的单词,并丢弃那些不能是形容词的单词
  • 预处理一个合适的训练语料库,在word2vec训练之前用词性标记单词,有时这样做。然后,模型的令牌将在其中包含声明的词性。例如,您将不再单独使用单词good作为标记,而是(取决于您使用的约定)标记标记,如good/NOUN&good/ADJ代替。然后,过滤最接近形容词的单词是一个简单的问题,检查所需的字符串模式。

但是,您从基于word2vec的任何此类处理中接收到的单词可能不是您想要的。word2vec坐标捕捉到的"语义相似性"的种类取决于在模型的限制下,单词对附近其他单词的预测程度。这些是否能满足你的需求是你必须尝试的事情;可能会有惊喜。

例如,人类认为是反义词的单词,如hot&cold,在word2vec模型中仍然相对接近,因为它们都描述了事物的相同方面(温度),并且经常出现在相同的周围词上下文中。

并且,取决于培训文本&模型训练参数,不同的word2vec模型有时会在它们的排名中强调不同的相似性。例如,一些人建议,使用较小的window可以倾向于将直接替代的词(相同的句法角色)更紧密地放在一起,而较大的window则更多地将同一主题领域中使用的词聚集在一起(即使它们不是同一类型)。哪种相似性更符合你的需求?我不确定;如果你有时间/资源,你可以比较多个对比模型的结果质量。

最新更新