chi*_*org 11 algorithm text nlp autocomplete probability
简单单词自动填充只显示与已键入的字符匹配的单词列表.但我想根据出现的单词的概率,根据之前输入的单词,依据文本语料库的统计模型,对自动完成列表中的单词进行排序.我需要什么算法和数据结构?你能给我一些好的教程链接吗?
Fre*_*Foo 11
您不需要自动完成的概率.相反,构建一个前缀树(也称为trie),将语料库中的单词作为键,将其频率作为值.当你遇到一个部分字符串时,尽可能地走trie,然后从你到达的点生成所有后缀并按频率对它们进行排序.
当用户输入以前看不见的字符串时,只需将其添加到频率为1的trie中; 当用户输入您看到的字符串时(可能通过从候选列表中选择它),增加其频率.
[注意,你不能用概率模型进行简单的增量; 在最坏的情况下,你必须重新计算模型中的所有概率.
如果你想深入研究这种算法,我强烈建议你阅读Jurafsky和Martin的语音和语言处理(第一章).它非常详细地处理语言处理的离散概率.