前言:之前做了好多爬虫例子,就是为了获取大量数据,然后,就没有然后了,说好的数据挖掘了?
思路:
使用爬虫爬取某日头条所有关于java的文章资料文本信息
对文本进行分词处理,计算词频
使echarts作可视化报告
结果:
144篇头条文章文本
共计65405个字符
排名前20的高频词汇:
1—:java_3804
2—:开发_1808
3—:我们_1317
4—:学习_1076
5—:可以_983
6—:技术_942
7—:架构_880
8—:使用_797
9—:li>_781
10—:数据_765
11—:服务_760
12—:框架_724
13—:实现_710
14—:p3.pstatp.com_700
15—:自己_700
16—:代码_677
17—:调用_656
18—:设计_611
19—:公司_604
20—:需要_590
【开发】一词出现了1808次,词频为2.76%,高居榜首。
java广泛应用于各大领域,从互联网电子商务到金融行业的服务器应用程序,从安卓系统上的APP到企事业单位的OA系统,从大数据到桌面应用程序等等,举不胜举。
java和java开发工程师现状
1、互联网电商和Web应用程序
java在互联网电商和Web应用程序上是当之无愧的编程语言老大。通过Spring MVC、Struts 2.0和类似框架,可以创建大量的Rest full服务,亚马逊、淘宝、京东等大型电商品牌都在使用java来处理庞大的线上交易数据。
2、金融行业的服务器应用程序
很多全球性的金融机构如花旗银行、高盛等都是使用java来编写前端和后端的电子交易系统、结算和确认系统、数据处理系统及服务器端应用程序。
3、安卓APP
在公交,在地铁,在饭桌,你最常做的事是什么?一定是低头玩手机,如果你用的是安卓手机,几乎每个看到的APP都是用java语言来开发的,现在的很多安卓开发人员,其实就是java开发工程师。
4、大数据
随着信息技术发展,大数据已深入到各行各业,很多大数据处理技术都需要用到java,这方面的java人才需求也是巨大的。
5、科学应用
Java在科学应用中是最好选择,包括自然语言处理,最主要的原因是因为java相对C++或者其他语言的安全性、便携性、可维护性以及其他高级语言的并发性更好。
男女词汇比例为113:5
代码:
/**
* 提取关键字方法
* @param article
* @param a
* @param n
* @return
* @throws IOException
*/
public static _words getKeyWords(String article,Integer a,Integer n) throws IOException {
_words _ws = new _words();
_word _w = extract(article,a); //调用提取单词方法
List<String> keyWordsList= _w.getKeyword();
Map<String, Integer> map=list2Map(keyWordsList); //list转map并计次数
//使用Collections的比较方法进行对map中value的排序
ArrayList<Entry<String, Integer>> list = new ArrayList<Entry<String,Integer>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return (o2.getValue() - o1.getValue());
}
});
if (list.size()<n) n=list.size(); //排序后的长度,以免获得到null的字符
String[] keyWords=new String[n]; //设置将要输出的关键字数组空间
for(int i=0; i< list.size(); i++) { //循环排序后的数组
if (i<n) { //判断个数
keyWords[i]=list.get(i).getKey()+"_"+list.get(i).getValue(); //设置关键字进入数组
}
}
_ws.setKeyword(keyWords);
_ws.setWordNum(_w.getWordNum());
return _ws;
}
/**
* 查找某个单词在段落中出现次数的方法
* @param str
* @return
*/
public static int serachWord(String str,String key) {
//记录查找次数
int count = 0;
//记录每次查找的下标位置,初始化
int index = 0;
//定义循环,如果index的位置不是-1,就一值查找
while((index = str.indexOf(key,index))!=-1){
//每循环一次就要明确下一次查找的位置
index = index+key.length();
//每查找一次计数器自增
count ++;
}
return count;
}