精华内容
下载资源
问答
  • 谁有中国汉字使用频率的统计情况的相关文献,就是最常用的字有多少,占比多少,想这样的文献,多谢
  • 统计拼音字母使用频率 python

    千次阅读 2016-01-20 12:53:09
    python 以《人民日报》为样本来源统计汉字拼音使用频率

    样本来源:《人民日报》

    工具:python 2.7.10

    环境:windows

    先贴上结果


    字母“i”使用频率最高,达到了13.5%;

    “n”的使用频率次之,为12.9%;

    最低的是“v”,即汉语拼音中的“yu”,使用频率为0.19%。

    其中 q 与 t ,m 与 r 差别较小,分别差0.01%和0.04%


    下面是详细步骤:

    1.取样

    用python编了个爬虫,把《人民日报上》半年的新闻标题和正文抓取下来,共287w个汉字。

    这是python爬虫的源码:

    需要注意的是《人民日报》中每篇文章的链接由两部分组成,但在每篇新闻页面的源代码中只有后半部分,所以需要我们将它与前半部分合在一起,所以代码中有url_base和url_org。


    得到的样本如下:


    这个样本里有大量的数字和英文字母,我们稍微处理一下,把里面的中文找出来


    正则表达式中 \x80-\xff 是UTF-8编码中,汉字和标点的集


    得到的结果是这样的:



    2.把汉字转化为拼音字母:

    在这感谢 "超江_"   大家请移步到  http://blog.csdn.net/g19920917/article/details/42963659

    安装他的 xpinyin库 后,运行如下代码

    得到的结果:



    提取字母:

    结果:



    3.统计拼音字母使用频数和频率

    运行结果:


    得到的数据在excel中稍微整理一下就能得到文章开头的结果。


    以上是不严谨的统计分析,仅供参考

    展开全文
  • 统计汉字使用频率

    千次阅读 2019-05-01 18:05:08
    3、利用hash表统计经典巨著《红楼梦》中所有汉字的使用次数。 4、利用数组,对所有汉字按使用次数进行排序。 二、要到的基础库 本练习要到Glib库,Glib是在C语言标准库的基础上实现的一套跨平台的功能强大的通用...

    一、主要内容

    1、学习什么是hash表,运用hash表解决问题。

    2、了解自动数组(根据存储内容自动调整大小),数组的排序。

    3、利用hash表统计经典巨著《红楼梦》中所有汉字的使用次数。

    4、利用数组,对所有汉字按使用次数进行排序。

    二、要到的基础库

    本练习要到Glib库,Glib是在C语言标准库的基础上实现的一套跨平台的功能强大的通用函数库。

    三、编程环境

    编程环境为Cygwin,安装方法见https://blog.csdn.net/sudsheng/article/details/88909066

    四、实现步骤

    1、识别汉字

    汉字通常采用GBK编码,GBK编码标准如下(https://www.qqxiuzi.cn/zh/hanzi-gbk-bianma.php


    GBK编码范围:8140-FEFE,汉字编码范围见第二节:码位分配及顺序。

    GBK编码,是对GB2312编码的扩展,因此完全兼容GB2312-80标准。GBK编码依然采用双字节编码方案,其编码范围:8140-FEFE,剔除xx7F码位,共23940个码位。共收录汉字和图形符号21886个,其中汉字(包括部首和构件)21003个,图形符号883个。GBK编码支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字。GBK编码方案于1995年12月15日正式发布,这一版的GBK规范为1.0版。

    一、字汇

    GBK 规范收录了 ISO 10646.1 中的全部 CJK 汉字和符号,并有所补充。具体包括:
    1. GB 2312 中的全部汉字、非汉字符号。
    2. GB 13000.1 中的其他 CJK 汉字。以上合计 20902 个 GB 化汉字。
    3. 《简化字总表》中未收入 GB 13000.1 的 52 个汉字。
    4. 《康熙字典》及《辞海》中未收入 GB 13000.1 的 28 个部首及重要构件。
    5. 13 个汉字结构符。
    6. BIG-5 中未被 GB 2312 收入、但存在于 GB 13000.1 中的 139 个图形符号。
    7. GB 12345 增补的 6 个拼音符号。
    8. 汉字“〇”。
    9. GB 12345 增补的 19 个竖排标点符号(GB 12345 较 GB 2312 增补竖排标点符号 29 个,其中 10 个未被 GB 13000.1 收入,故 GBK 亦不收)。
    10. 从 GB 13000.1 的 CJK 兼容区挑选出的 21 个汉字。
    11. GB 13000.1 收入的 31 个 IBM OS/2 专用符号。
    12.未录入《新华字典》上的一些字,如“韡”的简体。

    二、码位分配及顺序

    GBK 亦采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。

    全部编码分为三大部分:

    1. 汉字区。包括:
    a. GB 2312 汉字区。即 GBK/2: B0A1-F7FE。收录 GB 2312 汉字 6763 个,按原顺序排列。
    b. GB 13000.1 扩充汉字区。包括:
    (1) GBK/3: 8140-A0FE。收录 GB 13000.1 中的 CJK 汉字 6080 个。
    (2) GBK/4: AA40-FEA0。收录 CJK 汉字和增补的汉字 8160 个。CJK 汉字在前,按 UCS 代码大小排列;增补的汉字(包括部首和构件)在后,按《康熙字典》的页码/字位排列。
    (3) 汉字“〇”安排在图形符号区GBK/5:A996。

    2. 图形符号区。包括:
    a. GB 2312 非汉字符号区。即 GBK/1: A1A1-A9FE。其中除 GB 2312 的符号外,还有 10 个小写罗马数字和 GB 12345 增补的符号。计符号 717 个。
    b. GB 13000.1 扩充非汉字区。即 GBK/5: A840-A9A0。BIG-5 非汉字符号、结构符和“〇”排列在此区。计符号 166 个。

    3. 用户自定义区:分为(1)(2)(3)三个小区。
    (1) AAA1-AFFE,码位 564 个。
    (2) F8A1-FEFE,码位 658 个。
    (3) A140-A7A0,码位 672 个。
    第(3)区尽管对用户开放,但限制使用,因为不排除未来在此区域增补新字符的可能性。

    三、字形

    GBK 对字形作了如下的规定:
    1. 原则上与 GB 13000.1 G列(即源自中国大陆法定标准的汉字)下的字形/笔形保持一致。
    2. 在 CJK 汉字认同规则的总框架内,对所有的 GBK 编码汉字实施“无重码正形”(“GB 化”);即在不造成重码的前提下,尽量采用中国新字形。
    3. 对于超出 CJK 汉字认同规则的、或认同规则尚未明确规定的汉字,在 GBK 码位上暂安放旧字形。这样,在许多情况下 GBK 收入了同一汉字的新旧两种字形。
    4. 非汉字符号的字形,凡 GB 2312 已经包括的,与 GB 2312 保持一致;超出 GB 2312 的部分,与 GB 13000.1 保持一致。
    5. 带声调的拼音字母取半角形式。


    由以上红色字体可知,每个汉字占两个字节,取值范围为

    B0A1-F7FE

    8140-A0FE

    AA40-FEA0

    第一个字节按有符号数处理时为负数。

    2、选择合适的容器存放汉字以及其出现的次数

    统计过程如下:

    读取一个汉字 —> 在容器中查找该汉字 —> 如果查找到该汉字则将该汉字的计数加一;如果没有查找到则将该汉字新加入容器并将计数设置为1

    整个过程中,在容器中查找汉字将是最费时的部分,所以要选择查找速度快的容器,hash表无疑是最合适的。

    3、对汉字按次数进行排序

    hash表中存的汉字是无序的并且不能排序,如果需要按汉字使用的次数进行排序,则需要另一种容器数组或者链表。对于我们的问题数组和链表都可以,但是数组相对来讲需要的内存更少并且可以预先分配内存,更为合适。

    汉字和其次数已经存在hash表中,数组只需要保存指针即可。

    4、代码

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <errno.h>
    #include <unistd.h>
    #include <dirent.h>
    #include <glib.h>
    
    typedef struct _WordTimes WordTimes;
    
    struct _WordTimes
    {
        char word[3];
        int times;
    };
    
    static int cmp_func(gconstpointer a, gconstpointer b)
    {
        return (*(WordTimes **)b)->times - (*(WordTimes **)a)->times;
    }
    
    static void insert_array(gpointer key, gpointer value, gpointer user_data)
    {
        GPtrArray ** array = (GPtrArray **)user_data;
        WordTimes * word_times = (WordTimes *)key;
    
        g_ptr_array_add(*array, word_times);
    }
    
    static void free_word_times(gpointer data)
    {
        g_slice_free(WordTimes, data);
    }
    
    static void print_word_times(gpointer data)
    {
        printf("%s : %d\n", ((WordTimes *)data)->word, ((WordTimes *)data)->times);
    }
    
    int main(int argc, char* argv[])
    {
    
        GHashTable * h;
        FILE * fp;
        char word[4] = {0};
        char buf[4096] = {0};
        WordTimes * word_times = NULL;
        unsigned short u16_word;
        GPtrArray * array = NULL;
        int i = 0;
    
        fp = fopen(argv[1], "r");
    
        if (NULL == fp)
        {
            printf("文件%s不存在!\n", argv[1]);
        }
    
        h = g_hash_table_new_full ((GHashFunc)g_str_hash, (GEqualFunc)g_str_equal, free_word_times, NULL);
    
        while (NULL != fgets(buf, sizeof(buf), fp))
        {
            for (i = 0; buf[i] != 0; i ++)
            {
                if (buf[i] < 0)
                {
                    word[0] = buf[i++];
                    word[1] = buf[i];
                    word[2] = 0;
    
                    *(char *)&u16_word = word[1];
                    *((char *)&u16_word + 1)= word[0];
    
                    if (((u16_word >= 0xB0A1) && (u16_word <= 0xF7FE))
                            || ((u16_word >= 0x8140) && (u16_word <= 0xA0FE))
                            || ((u16_word >= 0xAA40) && (u16_word <= 0xFEA0)))
                    {
                        if (g_hash_table_lookup_extended(h, word, (gpointer *)&word_times, NULL))
                        {
                            (word_times->times) ++;
                        }
                        else
                        {
                            word_times = g_slice_new(WordTimes);
                            word_times->times = 1;
                            strcpy(word_times->word, word);
                            g_hash_table_insert (h, word_times, NULL);
                        }
                    }
                }
            }
        }
        fclose(fp);
    
        array = g_ptr_array_sized_new(4096);
        g_hash_table_foreach(h, insert_array, &array);
        g_ptr_array_sort(array, cmp_func);
        for (i = 0; i < array->len; i++)
        {
            print_word_times(g_ptr_array_index(array, i));
        }
        g_ptr_array_free(array, 0);
        g_hash_table_destroy(h);
    
        return 0;
    }
    
    

    5、运行结果

    前20个                             后20个

         

    展开全文
  • 26英文字母使用频率的大样本分析

    千次阅读 2014-08-13 21:41:25
    大样本分析26个英文字母的使用频率。样本取自1000部世界名著。

    样本:英文世界名著(1000部)

    样本容量:1.4亿(包含6918个文件,366M)


    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int CountL[26];
    
    int CheckL(char c)
    {
        int index;
        char i, j;
        int flag = 0;
    
        for(i = 'A', j = 'a'; i <= 'Z', j <= 'z'; i++, j++)
        {
            if(i == c)
            {
                CountL[i - 65]++;
                flag = 1;
                break;
            }
            if(j == c)
            {
                CountL[j - 97]++;
                flag = 1;
                break;
            }
        }
    
        return flag;
    }
    
    long LetterScan(char *filepath)
    {
        FILE *fp;
        long AllCount = 0;
        char c;
    
        if((fp = fopen(filepath, "r")) == NULL)
        {
            perror("Can't open!");
            exit(1);
        }
    
        while(!feof(fp))
        {
            c = fgetc(fp);
            if(CheckL(c))
            {
                AllCount++;
            }
        }
    
        fclose(fp);
        return AllCount;
    }
    
    char *SortL()
    {
        int i, j, t;
        char c;
        char *Letter;
    
        Letter = (char *)calloc(26, sizeof(char));
    
        for(i = 0; i < 26; i++)
        {
            Letter[i] = i + 97;
        }
    
        for(i = 0; i < 25; i++)
        {
            for(j = 0; j < 25 - i; j++)
            {
                if(CountL[j] < CountL[j + 1])
                {
                    t = CountL[j];
                    c = Letter[j];
                    CountL[j] = CountL[j + 1];
                    Letter[j] = Letter[j + 1];
                    CountL[j + 1] = t;
                    Letter[j + 1] = c;
                }
            }
        }
    
        return Letter;
    }
    
    int main()
    {
        char *FilePath = "/share/test/doc/test.txt";
        int i;
        long count = 0;
        char *Letter;
    
        Letter = (char *)calloc(26, sizeof(char));
        system("rm -rf doc/test.txt");
        system("cat doc/*txt > doc/test.txt");
    
        count = LetterScan(FilePath);
        Letter = SortL();
    
        printf("测试文本包含有效英文字母总数:%ld\n", count);
        for(i = 0; i < 26; i++)
        {
            printf("%c共出现%d次,概率是%f\n", Letter[i], CountL[i], (float)CountL[i] / count);
        }
        free(Letter);
        return 0;
    }
    


    展开全文
  • 给定一篇英文文章,找出其中使用频率最高的英语单词。 这道题,对于学java的练习的学友来说是一道不可缺少的题目,这一道题,我刚一开始接触的时候认为挺简单的一道题,但是在做的时候发现了很多问题,其中对于map的...

      这道题,对于学java的练习的学友来说是一道不可缺少的题目,这一道题,我刚一开始接触的时候认为挺简单的一道题,但是在做的时候发现了很多问题,其中对于map的运用,对于遍历的操作,以及对键值对的理解等。
      

    “`
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.security.KeyStore.Entry;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import java.util.StringTokenizer;

    public class Map_t {

    public static void main(String[] args) throws Exception {
    
        BufferedReader reader = new BufferedReader(new FileReader("1.txt"));//1.txt是在同一目录下的。
        StringBuffer buffer = new StringBuffer();
        String line = null;
        while ((line = reader.readLine()) != null) {
            buffer.append(line);
        }
        reader.close();//以上是对文件的读取,就是读取文章
        String string = buffer.toString();
        String[] word = new String[1000];//定义一个数组,来储存文章中的单词,没有用List,感觉用集合的话更好,这里有限制,是1000.
        StringTokenizer st = new StringTokenizer(string,";!., ");//去除文章中的几个符号,当然这只是一些符号,还有一些没有写上,所以不全面。
        Map<String,Integer>m = new HashMap<String,Integer>();
        int x = 0;
        while( st.hasMoreElements() ){
            String w = st.nextToken();
            word[x] = w;
            m.put(w, 0);//哈希的方法将重复的单词去除,存入m中。
            x++;
        }
       Set<String> set = m.keySet();
        for(int i=0;word[i]!=null;i++){
            Iterator<String> it = set.iterator();
             while(it.hasNext()){//遍历找出每个单词有多少个
                  String k = it.next();
                  if(word[i].equals(k)){
                        int c = m.get(k);                  
                        c++;
                        m.put(word[i],c);
    
                  }
             }
    
       }
        int value=0;
        String maxKey = null;
        Iterator itor=m.entrySet().iterator();   
        List list=new ArrayList();
        while(itor.hasNext()){ //在遍历让找出最多的单词有几个。  
    
            Map.Entry<String,Integer> entry=(Map.Entry<String,Integer>)itor.next();   
            list.add(entry.getValue());
    
            Collections.sort(list);
    
            value = Integer.parseInt(list.get(list.size()-1).toString());
        }
    
        Iterator it=m.entrySet().iterator();
        while (it.hasNext()){//遍历找出最多的数对应的单词。 
            Map.Entry mapentry = (Map.Entry) it.next(); 
            if((int)mapentry.getValue()==value){
                System.out.println(mapentry.getKey() ``
    

    “/” + mapentry.getValue());
    }
    }

    }
    

    }

    “`上面是代码,当然还是有一定的不足,我认为写的有点复杂了,暂时没有想到更好的方法,也希望谁有更好的方法告诉我,其中运用了很多集合中的知识。学到的也挺多。

    展开全文
  • 对讲机的功能与使用频率范围

    万次阅读 2016-06-29 13:54:31
    在日常对讲机的使用中,根据中国无线电管理委员会规定,对讲机频率一般做如下划分: 专业对讲机:V段136-174MHZ;U段400-470MHZ; 武警公安用:350-390MHZ; 海岸用:220MHZ; 交通信号灯监控、防空警报器:223....
  • 用新浪微博API积累了微博广场的1.4万条数据,我选择了21个字段输出为TXT文件,想用Python稍微处理一下,统计一下这1.4万条微博里面表情使用情况,统计结构在最后。
  • 用来描述使用频率的词语

    千次阅读 2011-06-15 10:45:00
    我们在日常生活中会碰到一些... 在中文中,我们会使用‘一般’‘经常’‘偶尔’‘很少’‘基本不’‘绝不’‘从来都不’‘非常频繁’‘极度频繁’‘一直’等这些词汇或者词汇组合来描述我们对某一种事情发生频率的概括
  • Route::any(‘store’,’ApiController@store’)-&gt;middleware(‘throttle:5’); 需要注意这是对每分钟的限制
  • 安卓统计各个App的使用频率

    千次阅读 2014-10-05 19:36:03
    目的:列出系统内所有应用的图标,名称,使用次数 实现方法: 1.用 getInstalledPackages(0) 获取所有应用,并 过滤掉没有图标不显示在应用列表里的应用,然后存进数据库 Intent intent=pm....
  • 如何获取安卓用户的app使用频率

    千次阅读 2016-01-19 09:03:28
    显示器上的四个色块还没有散去,便听见一个清脆甜美却又略带忧郁的声音说:“如果我能知道每个安卓用户手机中app每天的使用频率,就可以向用户精准的投放一些运营push,不知道哪位开发GG可以帮下忙获取下这个数据嘛~...
  • 有5个字符,根据其使用频率设计对应的哈夫曼编码,以下(ABC)是可能的哈夫曼编码。【武汉大学 2006】 A.000, 001,010, 011, 1 B.0000, 0001, 001,01,1 C.000, 001,01,10, 11D.00, 100, 101,110, 111 哈夫曼树都...
  • 1. Tcode:SM59 RFC的连接配置
  • 这道题目为什么选A呢 其实A并不违反前缀码的法则 我们想一想哈夫曼编码的过程可以知道,两个最小的作为左右子树,结点为两个最小的和,不断递归到root 因此哈夫曼树所有节点的度都为0或者2。...
  • ubuntu下使用CPU频率控制

    千次阅读 2018-09-12 09:08:42
    ubuntu下使用CPU频率控制  () 1、下载CPU频率控制模块:sudo apt-get install cpufrequtils   2、使用方法,查看cpu当前频率信息: sudo cpufreq-info   3、设置模式:cpufreq-set -g {powersave, ...
  • 使用 STM32 测量频率和占空比的几种方法

    万次阅读 多人点赞 2017-11-01 15:26:30
    以前在本科时写的教程文章,主要是把自己当时参赛的...【教程】使用STM32测量频率和占空比的几种方法(申请置酷!) 这几天在论坛上面解答了好几个询问STM32测量频率的贴子,觉得这种需求还是存在的(示波器、电机
  • 使用matlab播放特定频率的声音

    千次阅读 2018-12-03 11:23:31
    A=2;%振幅 f_0=397%声音频率 fs=10000; %采样频率 N=3000; % 信号样点数,播放时长 y=A*sin(2*pi*f_0*(0:N-1)/fs); %单频信号 sound(y,fs); %通过声卡放音
  • PWM频率与马达频率辨析

    千次阅读 2020-05-23 17:18:45
    使用树莓派的GPIO调制PWM时,新建一个PWM实例 p = GPIO.PWM(channel, frequency) 这里设置的频率,是脉冲的频率,也就是一秒钟输出多少个上文所述的周期。 交流电机的频率 就是交流电的频率,这个频率影响马达的...
  • 使用STM32输入捕获测量频率问题

    万次阅读 2018-12-18 18:26:19
    使用STM32输入捕获测量频率问题 使用芯片:STM32F030RCT6 在使用输入捕获对外部信号脉冲进行计数的时候,当检测到输入脉冲时单片机会进入中断,此时不能在中断中做耗时的动作,如延时或打印计数值等,否则会对...
  • 滤波器频率范围选择

    千次阅读 2017-12-29 13:30:36
    滤波器主要使用频率范围参考通过相应数据手册或规格书!!!   低通滤波器:SLFL31-0R530G-01TF 通过参数可以看到带宽从0到530MHz损耗1dB,700MHz损耗达到3dB ps:滤波器参数中DC表示0Hz,700M之内均能较好通过...
  • 使用spring拦截器做频率限制

    千次阅读 2016-01-05 00:07:20
    基于spring做的访问频率限制
  • java 使用RateLimiter控制访问频率

    千次阅读 2018-06-23 10:57:11
    //频率检查通过,执行业务代码 System.out.println("业务执行中..."); } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); } System.out.println("wait..."); Thread.sleep(5000);...
  • 共振频率与固有频率

    万次阅读 2016-04-17 21:13:28
    共振频率与固有频率是不是同一个? 从数值上来说,它们是相等的。但是两个概念是不同的。 当一个装置成型时,他本身发生的振动的频率是固定的,这一频率就是固有频率。比如一个单摆做好后,他的振动频率等于2*Pi*...
  • 采样频率、采样点数、频率分辨率

    万次阅读 多人点赞 2018-12-01 09:07:43
    解释一:频率分辨率可以理解为在使用DFT时,在频率轴上的所能得到的最小频率间隔f0=fs/N=1/NTs=1/T,其中N为采样点数,fs为采样频率,Ts为采样间隔。所以NTs就是采样前模拟信号的时间长度T,所以信号长度越长,频率...
  • 频率调制

    万次阅读 2017-09-19 17:06:04
    频率调制(FM)中,是利用调制信号将载波的频率调高、降低或保持不变。本节将进一步介绍FM,并分析AM与FM接收器的差异。  在频率调制(FM)信号中,载波频率随着调制信号增加或减少。其偏离载波频率频率偏移量,与...
  • 怎么使用spinOnce以一定频率发布消息

    千次阅读 2015-03-11 20:45:17
    使用ros以一定的频率发布消息到topic上。这样可以使用spinOnce来实现。方法如下: int main(int argc, char **argv) { ros::init(argc, argv, "node_name"); ros::NodeHandle n; //定义一个Publisher ros::...
  • 如何使用定时器产生两路频率可调的PWM波

    千次阅读 多人点赞 2019-03-04 22:24:38
    使用定时器来产生PWM波大家应该都很熟悉,但是如何使用定时器产生频率可调的PWM波呢?这就需要使用定时器的输出比较翻转模式TIM_OCMode_Toggle。 先大概介绍一些这个模式是如何工作的: 输出比较翻转,顾名思义,...
  • 5G明确C波段频率使用规划的5层意义

    千次阅读 2017-11-17 14:57:20
    近日,工信部发布了5G系统在3000-5000MHz频段(中频段)内的频率使用规划,明确了3300-3400MHz(原则上限室内使用)、3400-3600MHz和4800-5000MHz频段作为5G系统的工作频段。 我国成为国际上率先发布5G系统在中频段...
  • 如何使用R绘制简单的频率直方图?

    千次阅读 2018-08-30 18:53:06
    v&lt;-read.table("aa.txt") 读取文件中的内容  hist(v[,1],xlab = "..., ylim = c(0,20),breaks=200) 绘制频率直方图 v[,1] 查看文件中的内容 *文件格式内容如下:  ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 614,582
精华内容 245,832
关键字:

使用频率