首页 文章

来自文本的字数...是否可以使用特里?

提问于
浏览
3

我知道字数Qs已被多次询问,MAP似乎是它的一致选择 .

但我觉得如果文本很大并且独特单词的数量非常高,MAP可能会占用很多空间 . 那么为什么不使用Trie呢?叶节点将存储每个单词的频率 .

或者说,与特里相比, Map 是一个明显的赢家?

Plz帮助我理解 .

附:在SDE采访中被问到了 .

2 回答

  • 4

    here开始,我们可以将英语中的单词估计为大约1M . 从here开始,我们得到了 Map 内存使用的公式 . 现在,我们可以计算出,如果你的文字是语言的所有的话,你的 Map 将需要大约(平均字长6个字符)(32个字节的短字符串(Windows)中4个字节INT)* 1M(可忽略的开销)= 36M〜34MB记忆 .

    所以我要说除非你在嵌入式系统中,否则你不必担心 .

  • 3

    对我来说,trie似乎是一个非常合理的解决方案 - 对于大多数大型文本来说,它的占用空间肯定较小 . 还怀疑取决于映射的数据和内部工作,它可能更快 . 真正唯一的反对意见是,由于独特的字数不是非常严重的处理器密集,因此它有点过分 .

相关问题