如何预测给定句子的语法正确性?

时间:2019-04-10 04:18:27

标签: python nlp prediction word2vec language-model

我正在尝试创建一个预测模型,该模型通过检查句子中单词的顺序来判断给定句子是否正确。该模型检查天气是否已经在庞大的语料库中出现了特定的单词序列,是否有意义。

我尝试使用word2vec模型进行此操作,并删除了两个句子的余弦相似度或WMD距离,但这仅基于单词向量相似度而不是单词顺序给出相似度。

因此,如果我们将输入内容设为2个句子:

句子1:“我要去商店”

句子2:“我要去商店”

输出应表明该句子无效或相似度小于或等于20%

而word2vec模型显示出100%的相似性,因为输入的单词相同,而与顺序无关。所以我想它不能用于比较词序。任何其他建议也可能很有帮助。

1 个答案:

答案 0 :(得分:1)

我认为您还没有完全了解word2vec的工作原理。它被训练为语言模型,但事实并非如此。这是一种将自然语言单词编码为连续空间矢量的方法,以后可以用于进行包括其他任务在内的语言建模。

在上面的示例中,您获得100%的相似度,因为您使用的word2vec很可能已通过“词袋”方法进行了训练。它不关心单词出现的顺序,只关心上下文。

如果您需要开箱即用的功能,我建议您检查StanfordNLP(https://stanfordnlp.github.io/stanfordnlp/installation_download.html)中是否有可用的工具。