我需要使一个程序,计数频率的每一个字在一个文本,另外,我需要能够返回一个列表的n个最经常的字(如果更多的字有相同的频率,他们排序的字母顺序)。还有一个单词列表是不被计算的(停止单词)。
总体而言,什么方法更有效?
附言。@主持人我知道有一个类似的问题,但我有一个不同的约束,需要不同的结构。
树状图
由于映射中的单词不能超过m
,因此每次更新/插入都要花费O(log m)
,总运行时间为O(k log m)
。
HashMap
每次更新/插入都将花费预期的O(1)
,对所有单词取O(k)
。
然后,由于映射中将有m
单词,因此排序将采用O(m log m)
。
但是我们可以做得比排序更好--我们可以遍历HashMap
并维护N
最频繁单词的堆(PriorityQueue
)(主要按频率排序,其次按字母排序)。每次插入堆后,如果大小大于n
,我们将删除最不频繁的单词。这将采用O(m log n)
。
因此,总运行时间为O(k+m log n)
。
比较
由于n<=m
和m<=k
,我们知道m log n<=k log m
,假设有大量重复项,或者n
比m
k+m log n<=k log m
,因此hashmap
通常是首选。
问题内容: 何时使用哈希图或树图? 我知道可以在需要对元素进行排序时使用TreeMap对其进行迭代。只是吗?当我只想查阅地图或某些最佳特定用途时,没有优化? 问题答案: 哈希表(通常)执行搜索操作(查找),其复杂度限制为,平均情况复杂度为;但是,二进制搜索树(BST)执行搜索操作(查找),其复杂度限制为,平均情况复杂度为。(您自己)应该了解每个(每个)数据结构的实现,以了解其优缺点,操作时间复杂度
问题内容: 我正在尝试使用solr获得单词的频率。当我给这个查询: solr给我类似的频率; 但是当我数数单词时;我发现word2的实际计数值为13。Solr在字段中将相同的单词计数为1。 例如; 字段文字包括;。Solr不返回word2的计数2,而是返回1。它为下面两个句子的word2计数返回1; 因此频率返回错误。我检查了构面字段,但没有找到合适的参数。我该如何解决它,使句子中的单词数相同?
我有一个Hazelcast地图的HashMap作为我下面所示的值。 我想使用谓词/SQLPredicate执行查询。我该怎么做? 请帮帮我。
我刚刚在doc2vec模型词汇表中遇到了这篇关于单词计数的StackOverflow帖子。我想知道是否有其他方法来检索词频,除了 也许有一种更优雅的方式通过gensim库(即在txt文件中输出单词和频率)?
问题内容: 我想在elasticsearch中更改评分系统,以摆脱对一个术语的多次出现计数的麻烦。例如,我想要: “德克萨斯州德克萨斯州” 和 “得克萨斯州” 得分相同。我发现elasticsearch表示该映射将禁用词频统计,但是我的搜索结果却不一样: } 任何帮助将不胜感激,我无法找到很多有关此的信息。 编辑: 我正在添加搜索代码,并在使用解释时返回了什么。 我的搜索代码: 当我搜索解释时,我
本文向大家介绍Python英文文章词频统计(14份剑桥真题词频统计),包括了Python英文文章词频统计(14份剑桥真题词频统计)的使用技巧和注意事项,需要的朋友参考一下 Python剑桥真题词频统计 最好还是要学以致用,自主搜集了19年最近的14份剑桥真题之后,通过Python提供的jieba第三方库,对所有的文章信息进行了词频统计,并选择性地剔除了部分简易词汇,比如数字,普通冠词等,博主较懒,