【问题标题】:Swiftkey like Text prediction (next word prediction) in Java [closed]Swiftkey,如 Java 中的文本预测(下一个单词预测)[关闭]
【发布时间】:2016-04-05 06:07:11
【问题描述】:

我正在研究一种算法来预测句子中的下一个单词,例如 SwiftKey 应用程序。

我认为使用此处描述的 N-Grams 模型 (https://lagunita.stanford.edu/c4x/Engineering/CS-224N/asset/slp4.pdf) 可以的。

但我想知道是否有任何现有的库可以进行下一个单词预测? (我查看了 OpenNLP 和 Stanford CoreNLP 并发现他们没有对该功能的开箱即用支持)

或者您能否建议一些在 java 中构建高度可扩展的文本预测的建议。

非常感谢您的帮助

【问题讨论】:

标签: java text machine-learning nlp prediction


【解决方案1】:

根据您所说的“高度可扩展”的含义,对语言进行建模的一种方法是使用循环神经网络。要训​​练这样的神经网络,您基本上将一系列单词传递给网络,并在每个单词处预测下一个单词。 http://colah.github.io/posts/2015-08-Understanding-LSTMs/ 是开始阅读特别是 LSTM 的好地方,https://www.tensorflow.org/versions/master/tutorials/recurrent/index.html#lstm 是一个教程,其中包含工作代码和代码如何工作的解释。它是在 python 中使用 tensorflow,但我指出这一点的一个原因是,有了这个,您至少可以看到准确性是否足以满足您的需求。训练需要一段时间,但模型训练时的预测不会那么慢。

在 java 中,http://deeplearning4j.org/recurrentnetwork.html 谈论循环神经网络和 lstms,但您可能需要做一些工作才能设置它。 http://deeplearning4j.org/word2vec.html#just 也可能感兴趣。但是,它们并不像导入库那样“开箱即用”,因此它们可能不是您正在寻找的。​​p>

【讨论】:

    猜你喜欢
    • 2018-06-20
    • 2019-06-04
    • 2018-10-23
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    相关资源
    最近更新 更多