我正在尝试创建一个预测模型,该模型通过检查句子中单词的顺序来判断给定句子是否正确。该模型检查天气是否已经在庞大的语料库中出现了特定的单词序列,是否有意义。
我尝试使用word2vec模型进行此操作,并删除了两个句子的余弦相似度或WMD距离,但这仅基于单词向量相似度而不是单词顺序给出相似度。
因此,如果我们将输入内容设为2个句子:
句子1:“我要去商店”
句子2:“我要去商店”
输出应表明该句子无效或相似度小于或等于20%
而word2vec模型显示出100%的相似性,因为输入的单词相同,而与顺序无关。所以我想它不能用于比较词序。任何其他建议也可能很有帮助。
答案 0 :(得分:1)
我认为您还没有完全了解word2vec的工作原理。它被训练为语言模型,但事实并非如此。这是一种将自然语言单词编码为连续空间矢量的方法,以后可以用于进行包括其他任务在内的语言建模。
在上面的示例中,您获得100%的相似度,因为您使用的word2vec很可能已通过“词袋”方法进行了训练。它不关心单词出现的顺序,只关心上下文。
如果您需要开箱即用的功能,我建议您检查StanfordNLP(https://stanfordnlp.github.io/stanfordnlp/installation_download.html)中是否有可用的工具。