`
ipython
  • 浏览: 293945 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
社区版块
存档分类
最新评论

计算不同的词出现的次数

阅读更多

今天去笔试个java职位,要求写个统计不同词的出现次数,我java写不出来,写了几句py代码上去。
回来后,在群上讨论了一下,写了以下三个方法,前两种我写的,最后一种是别人写的
三种方法用时的比较:

0.405999898911
--------------------------------
1.32800006866
--------------------------------

0.905999898911

 

import random
import time

def make_case (n):
    library = ['aa','bb','cc','ee','dd','ff','gg','hello','google','world','ibm','facebook','sex','girl','program']
    #library = ['aa','bb','cc']
    result = []
    word_len = len(library)-1
    for i in range(n):
        result.append(library[random.randint(0,word_len)])

    return result

def wc1(ss):
  result = {}
  for i in ss:
    try:
      result[i] += 1
    except:
      result[i] = 1
  
  #for i in result:
    #print i,result[i]
    

def wc2(ss):
    ss.sort()
    num  = 1
    prev = 0
    for i in range(1,len(ss)):
        if ss[prev] == ss[i]:
            num += 1
        else:
           # print ss[prev],num
            num = 1
            prev = i
    #print ss[prev],num
    
def wc3(ss):
    temp = set(ss)
    for i in temp:
        #print i,ss.count(i)
        tem = ss.count(i)


def write_line():
    print '-----------------------------------'

def test():
    temp = make_case(1000000)

    t1 = time.time()
    wc1(temp)
    print time.time()-t1

    write_line()

    t2 = time.time()
    wc2(temp)
    print time.time()-t2

    write_line()

    t3 = time.time()
    wc3(temp)
    print time.time()-t3


if __name__ == "__main__":
    test()
 
分享到:
评论

相关推荐

    用链表计算单个词出现次数

    C编写,用链表实现单个词在文本中出现次数的计算。比较简单。

    易语言搜索编辑框中某文本出现次数

    2. **字符串查找**:要计算某文本出现的次数,我们需要用到字符串查找相关的函数。易语言提供了“字符串.查找”或“字符串.查找最后一个”命令,它们可以查找指定子字符串在目标字符串中的位置。通过循环查找,我们...

    Spark学习---统计文件单词出现次数

    统计本地文件中单词出现次数 二.操作流程 1.读取外部文件创建JavaRDD; 2.通过flatMap转化操作切分字符串,获取单词新JavaRDD; 3.通过mapToPair,以key为单词,value统一为1的键值JavaPairRDD; 4.通过reduceByKey...

    统计字符串中每个字符出现次数并排序工具

    例如,在中文文本中,如果一个字符出现频率极高,可能表明它是文章的主题词或者高频词汇。 标签中包含的"字数统计软件"、"字符统计工具"和"统计次数最多"进一步细化了这个工具的功能。字数统计软件通常是指能够计算...

    一个文本在另一个文本中出现的次数

    3. **字符串匹配**:一旦文本被预处理和分词,我们可以使用不同的字符串匹配算法来找出目标文本在大文本中的出现次数。最简单的方法是逐词对比,但这种方法效率较低。更高效的方法有Boyer-Moore算法、KMP算法或Rabin...

    中文分词及词语出现的次数计算.zip

    本项目“中文分词及词语出现的次数计算.zip”提供了这样的功能,它能够对中文文本文档进行分词,并统计每个词语在文档中出现的次数。以下是对这个程序涉及的技术和知识点的详细解释: 1. **中文分词算法**:中文...

    tfi-df计算特征词权重代码

    `TF(t,d) = (词t在文档d中出现的次数) / (文档d的总词数)` 2. **逆文档频率(Inverse Document Frequency, IDF)**:反映一个词的普遍重要性,即一个词越少见,其IDF值越高。计算公式为: `IDF(t,D) = log_e(总...

    词向量-中文文本相似度计算-采用text2vec词向量工具进行计算对比.zip

    在提供的资料中,可能包含多个实验对比,比如使用不同的词向量模型(如CBOW、Skip-gram)、不同的训练参数(如窗口大小、迭代次数)对文本相似度计算的影响。通过这些对比,我们可以深入理解不同模型和参数设置对...

    文本分类之词频统计(分词、词干提取、去停用词、计算词频,有界面)

    4. **计算词频**:词频统计是统计文本中每个词出现的次数,通过词频可以了解文本的主题分布。词频是衡量词语重要性的常用指标,高频词往往与文本主题紧密相关。可以使用字典数据结构或者pandas库的DataFrame来存储和...

    基于mapreduce词权重计算.zip

    词频(TF)表示词在文档中出现的次数,逆文档频率(IDF)则考虑了词在整个文档集合中的稀有程度。将这两者相乘,我们就可以得到一个词的TF-IDF值,用于识别文档的主题或关键词。 在Hadoop环境下执行这样的任务,...

    TF-IDF计算程序

    计算公式通常是该词在文档中出现的次数除以文档中所有词的总数。TF越高,表明这个词在文档中越重要。 **逆文档频率(IDF)**:IDF则用来降低常用词(停用词)的重要性,提高不常出现但具有区分性的词的权重。IDF的...

    最常见单词(出现次数最多的单词)1

    - 标点符号移除:为了正确计算单词出现次数,需要将标点符号替换为空格或删除。在`initPara()`函数中,使用条件判断将特定的标点符号替换为空格。 2. 哈希映射与数据结构: - 结构体数组:`Word`结构体用于存储...

Global site tag (gtag.js) - Google Analytics