从文本中计算字数.有可能用一个尝试吗?
word count from text..is it possible using a trie?
我知道单词计数Qs已经被问过很多次了,MAP似乎是一致的选择。
但是我觉得MAP可能会占用很多空间,如果文本非常大,并且唯一单词的数量非常多。那么为什么不用Trie呢?叶节点将存储每个单词的频率。
还是Map比trie更有优势?
请帮助我理解。
注:
从这里我们可以估计出英语中的单词约为1M。从这里我们得到了map的内存使用公式。现在我们可以计算出,如果你的文本是该语言的所有单词,你的映射将占用大约(平均字长6个字符)(32字节的短字符串(Windows) + 4字节int) * 1M +(可以忽略的开销)= 36M ~ 34MB内存。
所以我想说,除非你是在嵌入式系统中,否则你不必担心。
对我来说,trie似乎是一个非常合理的解决方案-对于大多数大型文本体来说,它确实具有更小的占用空间。还怀疑根据映射上的数据和内部工作,它可能会更快。真正唯一的反对意见是,这是一个有点多余的,因为唯一的单词计数不是可怕的处理器密集。
相关文章:
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 不计算一个范围内的完美数
- 3-3. 编写一个程序来计算每个不同单词在其输入中出现的次数
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 从另一个静态常量数组初始化静态常量数组(只需少量计算)
- 为什么我必须添加一个小数才能在C++中正确计算此数学
- 视觉我希望一个函数在另一个函数C++中进行计算
- 计算单词中的音节数,但考虑到单词中彼此相邻的任何元音都算作一个音节
- 如何使用条件计算 3D 网格中从一个点到另一个点的所有路径
- 计算在同一位置至少包含一个常用字符的不同字符串对
- 返回一个计算了参数的函数
- 我在c++中遇到了一个奇怪的错误,其中一个计算2个小整数加法的语句溢出到一个长值中
- 在C++中,是否可以编写一个条件的lambda,即只是一个计算结果为真或假的条件
- 你能在C++中制作一个计算的goto吗?
- 为什么需要 FPU 重置以防止 NaN 结果传播到下一个计算结果?
- 创建一个C++计算奇数、偶数和零数的程序
- 在C++中是否已经为文件系统迷你过滤器驱动程序编写了一个计算MD5哈希的函数
- 编写一个计算n的子程序.使用此子程序时,制作一个计算(a+b)的程序
- 将数组从C/C++传递给Fortran,并返回一个计算的数组
- 扩展一个计算线路频率的程序