Java实现中文分词和词频统计按比例采样实践

文章原稿:
中国是世界四大文明古国之一,有着悠久的历史,距今约5000年前,以中原地区为中心开始出现聚落组织进而成国家和朝代,后历经多次演变和朝代更迭,持续较长的朝代有夏、商、周、汉、晋、唐、宋、元、明、清等。中原王朝历史上不断与北方游牧民族交往、征战,众多民族融合成为中华民族。20世纪初辛亥革命后,中国的君主政体退出历史舞台,取而代之的是共和政体。1949年中华人民共和国成立后,在中国大陆建立了人民代表大会制度的政体。中国有着多彩的民俗文化,传统艺术形式有诗词、戏曲、书法和国画等,春节、元宵、清明、端午、中秋、重阳等是中国重要的传统节日。

中文分词完成……
分词结果:
[中国] [是] [世界] [四] [大] [文明] [古] [国] [之一] [,] [有着] [悠久] [的] [历史] [,] [距] [今] [约] [5000] [年前] [,] [以] [中原] [地区] [为] [中心] [开始] [出现] [聚落] [组织] [进而] [成] [国家] [和] [朝代] [,] [后] [历经] [多次] [演变] [和] [朝代] [更迭] [,] [持续] [] [较] [长] [的] [朝代] [有] [夏] [、] [商] [、] [周] [、] [汉] [、] [晋] [、] [唐] [、] [宋] [、] [元] [、] [明] [、] [清] [等] [。] [中原] [王朝] [历史] [上] [不断] [与] [北方] [游牧] [民族] [交往] [、] [征战] [,] [众多] [民族] [融合] [成为] [中华民族] [。] [20] [世纪] [初] [辛亥革命] [后] [,] [中国] [的] [君主] [政体] [退出] [历史] [舞台] [,] [取而代之] [的] [是] [共和] [政体] [。] [1949年] [中华人民共和国] [成立] [后] [,] [在] [中国] [大陆] [建立] [了] [人民] [代表大会] [制度] [的] [政体] [。] [中国] [有着] [多] [彩] [的] [民俗] [文化] [,] [传统] [艺术] [形式] [有] [诗词] [、] [戏曲] [、] [书法] [和] [国画] [等] [,] [春节] [、] [元宵] [、] [清明] [、] [端午] [、] [中秋] [、] [重阳] [等] [是] [中国] [重要] [的] [传统] [节日] [。]

过滤单字完成……

统计词频完成……

词频排序完成……

采样完成……采样类型:高频 采样比率:30%.

采样结果如下:

词汇:[中国] 词性:[ns] 长度:[2] 词频:[4]
词汇:[历史] 词性:[n] 长度:[2] 词频:[3]
词汇:[政体] 词性:[n] 长度:[2] 词频:[3]
词汇:[朝代] 词性:[n] 长度:[2] 词频:[3]
词汇:[民族] 词性:[n] 长度:[2] 词频:[2]
词汇:[传统] 词性:[n] 长度:[2] 词频:[2]
词汇:[中心] 词性:[n] 长度:[2] 词频:[1]
词汇:[舞台] 词性:[n] 长度:[2] 词频:[1]
词汇:[文化] 词性:[n] 长度:[2] 词频:[1]
词汇:[国家] 词性:[n] 长度:[2] 词频:[1]
词汇:[演变] 词性:[v] 长度:[2] 词频:[1]
词汇:[节日] 词性:[n] 长度:[2] 词频:[1]
词汇:[成立] 词性:[v] 长度:[2] 词频:[1]
词汇:[戏曲] 词性:[n] 长度:[2] 词频:[1]

部分代码:

  /**
    * 按百分比取部分词汇(倒序为高频词汇、正序为低频词汇)
    * @param article 一篇文章
    * @param per  获取总数的百分比
    * @param desc 是否倒序取元素
    * @return
    */

      
       // 先进行中文分词
       System.out.println(“文章原稿:\n”+article);

       System.out.println(“中文分词完成……\n分词结果:”);
       for (Term t : list){
           System.out.print(“[” + t.getName() + “] “);
       }
       // 取长度2以上的词组,不考虑单字

       list = null;
       System.out.println(“过滤单字完成……”);
       // 按词性、字符长度、字面值为层次(索引)形成词汇组织结构

       list2w = null;
      
       // 根据分层级索引结构得到一个带词频的词汇表 (包含词性、字符长度)(未按词频排序)

       wordMapAll = null;
       System.out.println(“统计词频完成……”);
       // 得到一个按词频排序(按词频由低到高排序)的集合(同时可以获取词性、长度等信息)

       wordMap = null;
       System.out.println(“词频排序完成……”);
       // 按一定百分比取部分词汇(倒序为高频词汇、正序为低频词汇)

       map = null;       
       System.out.println(“采样完成……采样类型:” + (desc ? “高频” : “低频”) + ” 采样比率:” + per + “%.”);
       return newMap;
   }

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《Java实现中文分词和词频统计按比例采样实践
本文地址:https://www.zhiletu.com/archives-4213.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏


下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微