Answers:
看一下n-grams。一个n-gram是一个n
单词序列。在您的情况下,您想n
成为3
,因为您需要两个query words
和一个resulting word
。一个三克重的东西例如是“我累了”,另一个是“我很高兴”。
然后,您需要的是这些3克语言的集合,这些语言是通过您的目标语言(例如英语)收集的。由于您无法收集所有用英语写的东西,因此需要进行选择。选择具有代表性的文本称为corpus
。如果您的语料库良好,它将告诉您三个特定单词在英语中一起出现的频率。由此可以计算出3克的可能性。
收集此类数据是最困难的部分。获得所有3克列表及其概率后,您就可以将列表过滤为所有以“我是”开头的3克。然后,按照概率和预测对所有这些列表进行排序:您的预测。
n
列表越大,生成的列表越长,这将为您提供更精确的预测,但搜索起来也更加昂贵。因此,这是精度与计算时间之间的权衡。
看起来问题域是字符串搜索的子集。通过扩展单词以包括空格,可以在此处应用模糊字符串匹配。
除了字典外,您可能还希望在培训期间将所有用户输入视为一个单词。这使您可以建议下一个单词,也可以建议自动完成单词或短语。
这是模糊字符串搜索算法的汇编链接
http://ntz-develop.blogspot.com/2011/03/fuzzy-string-search.html
您正在寻找一种(统计的)语言模型。
统计语言模型
P(w_1,...,w_m)
通过概率分布将概率分配给m个单词的序列。在语音识别和数据压缩中,这种模型试图捕获语言的属性,并预测语音序列中的下一个单词。
n
可以产生很好的结果?它并不总是必须是被预测第三个单词,你看