我在R中建立一个语言模型,根据前面的单词预测句子中的下一个单词。目前我的模型是Kneser-Ney平滑的简单ngram模型。它通过在训练集中找到具有最大概率(频率)的ngram来预测下一个单词,其中平滑提供了插值低阶ngram的方式,这在高阶ngram具有低频并且可能不提供可靠预测的情况下是有利的。虽然这种方法工作得相当好,但它在n-gram无法捕获上下文的情况下失败。例如,“外面温暖阳光充足,让我们去......”和“外面很冷,下雨,让我们去...”将会提出同样的预测,因为没有捕捉到天气的背景在最后的n-gram中(假设n < 5)。用R中的text2vec来预测下一个单词
我正在研究更先进的方法,并且我找到了text2vec包,它允许将单词映射到向量空间,其中具有相似含义的单词用类似(近似)向量表示。我有一种感觉,这种表示可以有助于下一个单词预测,但我无法弄清楚如何确切定义训练任务。我的问题是,如果text2vec是用于下一个单词预测的正确工具,并且如果是,那么可以用于此任务的合适的预测算法是什么?
你知道RNNLM是否有R实现? – Sasha
可能不会是我的猜测。 – Aaron