精华内容
下载资源
问答
  • 河北省高碑店市第三中学高中英语 unit 1 Festivals around the world单词 新人教版必修3
  • 02-Storm之Hello World单词统计

    千次阅读 2016-10-14 14:59:37
    1、说明设计一个topology,来实现对一个句子里面的单词出现的频率进行统计。整个topology分为三个部分: RandomSentenceSpout:数据源,在已知的英文句子中,随机发送一条句子出去。 SplitSentenceBolt:负责将单行...

    1、说明

    设计一个topology,来实现对一个句子里面的单词出现的频率进行统计。

    整个topology分为三个部分:
    RandomSentenceSpout:数据源,在已知的英文句子中,随机发送一条句子出去。
    SplitSentenceBolt:负责将单行文本记录(句子)切分成单词
    WordCountBolt:负责对单词的频率进行累加

    2、TopologyMain 驱动类

    package wordcount2;
    
    import backtype.storm.Config;
    import backtype.storm.LocalCluster;
    import backtype.storm.StormSubmitter;
    import backtype.storm.generated.AlreadyAliveException;
    import backtype.storm.generated.InvalidTopologyException;
    import backtype.storm.topology.TopologyBuilder;
    import backtype.storm.tuple.Fields;
    import wordcount.SplitBolt;
    
    /**
     * Created by Cage on 2016/10/14.
     */
    public class TopologyMain {
        public static void main(String[] args) throws AlreadyAliveException, InvalidTopologyException {
            //Storm框架支持多语言,在Java环境下创建一个拓扑,需要使用TopologyBuilder进行构建
            TopologyBuilder builder = new TopologyBuilder();
            //RandomSentenceSpout类,在已知的英文句子中,随机发送一条句子出去
            builder.setSpout("spout1",new RandomSentenceSpout(),3);
            //SplitSentenceBolt类,主要是将一行一行的文本内容切割成单词
            builder.setBolt("split1",new SplitSentenceBolt(),9).shuffleGrouping("spout1");
            //WordCountBolt类,对单词出现的次数进行统计
            builder.setBolt("count2",new WordCountBolt(),3).fieldsGrouping("split1",new Fields("word"));
            //启动topology的配置信息
            Config conf = new Config();
            //TOPOLOGY_DEBUG(setDebug),当他被设置成true的话,storm会记录下每个组件所发射的每条消息
            //这在本地环境调试topology很有用。但是在线上这么做的话,会影响性能
            conf.setDebug(false);
            //storm的运行模式有两种:本地模式和分布式模式
    //        if(args != null || args.length>0){
    //            conf.setNumWorkers(3);
    //            //向集群提交topology
    //            StormSubmitter.submitTopologyWithProgressBar(args[0],conf,builder.createTopology());
    //        }else{
                conf.setMaxTaskParallelism(3);
                LocalCluster cluster = new LocalCluster();
                cluster.submitTopology("word-count",conf,builder.createTopology());
    //        }
        }
    }
    

    3、RandomSentenceSpout

    package wordcount2;
    
    import backtype.storm.spout.SpoutOutputCollector;
    import backtype.storm.task.TopologyContext;
    import backtype.storm.topology.OutputFieldsDeclarer;
    import backtype.storm.topology.base.BaseBasicBolt;
    import backtype.storm.topology.base.BaseRichSpout;
    import backtype.storm.tuple.Fields;
    import backtype.storm.tuple.Values;
    
    import java.util.Map;
    import java.util.Random;
    
    /**
     * Created by Cage on 2016/10/14.
     */
    public class RandomSentenceSpout  extends BaseRichSpout{
    
        //用来收集Spout输出的tuple
        private SpoutOutputCollector collector;
        private Random random;
    
    
        //该方法调用一次,主要由storm框架传入SpoutOutputCollector
        public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) {
            this.collector = collector;
            random = new Random();
            //连接kafka mysql ,打开本地文件
        }
    
        /**
         * 上帝之手
         * while(true)
         *      spout.nextTuple()
         */
        public void nextTuple() {
            String[] sentences = new String[]{"the cow jumped over the moon","the dog jumped over the moon",
                    "the pig jumped over the gun","the fish jumped over the moon","the duck jumped over the moon",
                    "the man jumped over the sun","the girl jumped over the sun","the boy jumped over the sun"};
            String sentence = sentences[random.nextInt(sentences.length)];
            collector.emit(new Values(sentence));
            System.out.println("RandomSentenceSpout 发送数据:"+sentence);
        }
    
        //消息源可以发射多条消息流stream
        public void declareOutputFields(OutputFieldsDeclarer declarer) {
            declarer.declare(new Fields("sentence"));
        }
    }
    

    4、SplitSentenceBolt

    package wordcount2;
    
    import backtype.storm.task.TopologyContext;
    import backtype.storm.topology.BasicOutputCollector;
    import backtype.storm.topology.OutputFieldsDeclarer;
    import backtype.storm.topology.base.BaseBasicBolt;
    import backtype.storm.tuple.Fields;
    import backtype.storm.tuple.Tuple;
    import backtype.storm.tuple.Values;
    
    import java.util.Map;
    
    /**
     * Created by Cage on 2016/10/14.
     */
    public class SplitSentenceBolt extends BaseBasicBolt {
    
        /**
         * 该方法只会被调用一次,用来初始化
         * @param stormConf
         * @param context
         */
        @Override
        public void prepare(Map stormConf, TopologyContext context) {
            super.prepare(stormConf, context);
        }
    
        /**
         * 接收的参数是RandomSentenceSpout发出的句子,即input的内容是句子
         * execute 方法将句子切割形成的单词发出
         * @param input
         * @param collector
         */
    
        public void execute(Tuple input, BasicOutputCollector collector) {
            String sentence = (String) input.getValueByField("sentence");
            String[] words = sentence.split(" ");
            for(String word:words){
                word = word.trim();
                if(!word.equals("") || word!=null){
                    word = word.toLowerCase();
                    System.out.println("SplitSentenceBolt 切割单词:"+ word);
                    collector.emit(new Values(word,1));
                }
            }
        }
    
        /**
         * 消息源可以发射多条消息流stream,多条消息可以理解为多种类型的数据
         * @param declarer
         */
        public void declareOutputFields(OutputFieldsDeclarer declarer) {
            declarer.declare(new Fields("word","num"));
        }
    }
    

    5、WordCountBolt

    package wordcount2;
    
    import backtype.storm.task.TopologyContext;
    import backtype.storm.topology.BasicOutputCollector;
    import backtype.storm.topology.OutputFieldsDeclarer;
    import backtype.storm.topology.base.BaseBasicBolt;
    import backtype.storm.tuple.Tuple;
    
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * Created by Cage on 2016/10/14.
     */
    public class WordCountBolt extends BaseBasicBolt {
    
        private Map<String,Integer> counters = new HashMap<String, Integer>();
    
        //该方法只会被调用一次,用来初始化
        @Override
        public void prepare(Map stormConf, TopologyContext context) {
            super.prepare(stormConf, context);
        }
    
        /**
         * 将collector中的元素存放在成员变量counters(Map)中
         * 如果counters中已经存在钙元素,getValue并对value进行累加操作
         * @param input
         * @param collector
         */
        public void execute(Tuple input, BasicOutputCollector collector) {
            String str = (String)input.getValueByField("word");
            Integer num = input.getIntegerByField("num");
            System.out.println("----------------------"+Thread.currentThread().getId() + "    "+ str);
            if(!counters.containsKey(str)){
                counters.put(str,num);
            }else{
                Integer c = counters.get(str) + num;
                counters.put(str,c);
            }
            System.out.println("WordCountBolt 统计单词:"+counters);
        }
    
        public void declareOutputFields(OutputFieldsDeclarer declarer) {
    
        }
    }
    

    6、运行结果

    SplitSentenceBolt 切割单词:cow
    14:32:24.292 [split1:7-BoltExecutors] INFO  com.alibaba.jstorm.utils.RotatingMap - key:TupleImplExt[targetTaskId=7,creationTimeStamp=1476426729517,values=[the fish jumped over the moon],taskId=8,streamId=default,context=backtype.storm.task.TopologyContext@772e95e8,id={},_meta=<null>,_processSampleStartTime=<null>,_executeSampleStartTime=<null>,_outAckVal=0,_map=<null>]   value:2
    SplitSentenceBolt 切割单词:jumped
    14:32:24.292 [count2:2-BoltExecutors] INFO  com.alibaba.jstorm.utils.RotatingMap - key:TupleImplExt[targetTaskId=2,creationTimeStamp=1476426743859,values=[over, 1],taskId=6,streamId=default,context=backtype.storm.task.TopologyContext@4f72bcb4,id={},_meta=<null>,_processSampleStartTime=<null>,_executeSampleStartTime=<null>,_outAckVal=0,_map=<null>]   value:1476426744292
    ----------------------106    over
    14:32:24.292 [count2:1-BoltExecutors] INFO  com.alibaba.jstorm.utils.RotatingMap - key:TupleImplExt[targetTaskId=1,creationTimeStamp=1476426744291,values=[dog, 1],taskId=7,streamId=default,context=backtype.storm.task.TopologyContext@3967ba17,id={},_meta=<null>,_processSampleStartTime=<null>,_executeSampleStartTime=<null>,_outAckVal=0,_map=<null>]   value:1476426744292
    WordCountBolt 统计单词:{over=41261, moon=20716, fish=5129, duck=5158, the=82520, boy=5113, gun=5269, sun=15274}
    14:32:24.292 [pool-15-thread-4] INFO  com.alibaba.jstorm.utils.RotatingMap - key:TupleImplExt[targetTaskId=7,creationTimeStamp=1476426729517,values=[the dog jumped over the moon],taskId=8,streamId=default,context=backtype.storm.task.TopologyContext@772e95e8,id={},_meta=<null>,_processSampleStartTime=<null>,_executeSampleStartTime=<null>,_outAckVal=0,_map=<null>]   value:641555521649770099
    ----------------------112    dog
    14:32:24.292 [pool-15-thread-1] INFO  com.alibaba.jstorm.utils.RotatingMap - key:TupleImplExt[targetTaskId=6,creationTimeStamp=1476426729515,values=[the dog jumped over the moon],taskId=10,streamId=default,context=backtype.storm.task.TopologyContext@5782b51a,id={},_meta=<null>,_processSampleStartTime=<null>,_executeSampleStartTime=<null>,_outAckVal=0,_map=<null>]   value:2
    WordCountBolt 统计单词:{jumped=42463, cow=5394, dog=5340, pig=5434}
    
    展开全文
  • 你好,世界 你好单词库描述只是为了测试目的添加了第4行添加了第4行添加了第5行添加了新文件和目录
  • 河北省高碑店市第三中学高中英语 unit 2 Festivals around the world重点单词 新人教版必修3
  • 世界_幸福_EDA 单词幸福中的数据分析
  • Coffee”,将此字符串拆分成Hello,World,Coffee三个单词 * @author 马涛 * * April 14th,2009*/public class SplitDemo{ public static void main(String[] args) { String str = "Hello World !

     /** 定义一个字符串“Hello World  ! Coffee”,将此字符串拆分成Hello,World,Coffee三个单词
     * @author 马涛
     *
     * April 14th,2009
    */
    public class SplitDemo
    {
      public static void main(String[] args)
      {
         String str = "Hello World  ! Coffee";
         //正则表达式/p{Punct} 代表标点符号:!"#$%&'()*+,-./:;<=>?@[/]^_`{|}~
         //正则表达式/p{Space} 代表空格
         String[] str1 =str.split("
    //p{Punct}|//p{Space}|!");
         //String[] str1 =str.split("
    //W+"); /W是数字1-9 字母a-z A-Z   /W+字母或连续的字母或数字
         String[]
         for(int i =0; i<str1.length; i++)
         {
           System.out.println(str1[i]);
         }
      }
    }

    展开全文
  • public class TestString88 { public static void main(String[] args) { ...System.out.println(reverse("Hello the world")); System.out.println(reverse("a sdfsdf sdfsadf sdfsdfsadf sdf中")); } public
    public class TestString88 {
    
    public static void main(String[] args) {
    System.out.println(reverse("Hello the  world"));
    System.out.println(reverse("a sdfsdf sdfsadf sdfsdfsadf sdf中"));
    }


    public static String reverse(String str) {
    String temp = "";
    StringBuffer buf = new StringBuffer();
    for (int i = str.length() - 1; i >= 0; i--) {
    char c = str.charAt(i);
    if (c == ' ') {
    buf.append(temp);
    buf.append(c);
    temp = "";
    } else {
    temp = c + temp;
    }
    }
    buf.append(temp);
    return buf.toString();
    }
    }
    展开全文
  • 最长单词2

    千次阅读 2015-10-11 17:37:41
    问题描述 一个以’.’结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式 最长单词2

    问题描述
    一个以’.’结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式
    输入
    一个以’.’结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式
    输出
    该句子中最长的单词。如果多于一个,则输出第一个
    输入示例

    第一组
    I am a student of Peking University.
    第二组
    Hello world.

    输出示例

    第一组
    University
    第二组
    Hello

    源码

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int i = 0;
        char sentence[500] = {0}, word[50] = {0};
        cin.getline(sentence, 500);
        int j = 0, sizeWord = 0;
        while (i < 500 && sentence[i] != '.')
        {
            if (sentence[i] == ' ')
            {
                if (j > sizeWord)
                {
                    sizeWord = j;
                    for (int k = 0; k < j; k++)
                    {
                        word[k] = sentence[i-j+k];
                    }
                }           
                j = 0;
            } 
            else
            {
                j++;
            }
            i++;
        }
        if (sentence[i] == '.')
        {
            if (j > sizeWord)
            {
                for (int k = 0; k < j; k++)
                {
                    word[k] = sentence[i-j+k];
                }
            }       
        }
        cout << word << endl;
        return 0;
    }
    展开全文
  • 单词统计处理

    2015-03-29 12:24:18
    对读入的某个文本文件input.txt中,拆出英文单词,输出一个按字典顺序排列的单词表,结果输出在文本文件output.txt中,每个单词一行,并在单词后输出该单词出现的个数,两个字段之间用逗号分隔。约定单词仅由英文...
  • 单词统计

    千次阅读 2015-07-12 13:45:52
    单词统计 题目描述: 输入一段英文文本,用程序统计出现频率最高和最低的两个单词;  英文文本中仅出现这四类字符:空格( )、英文逗号(,)、英文句号(.)、英文大小写字母(a-z、A-Z)  单词之间的分隔符仅考虑这三...
  • 单词翻转

    2020-05-05 15:06:15
    描述 输入一个句子(一行),将句子中的每一个单词翻转后输出。 输入 只有一行,为一个字符串,不超过...hello world 样例输出 olleh dlrow #include<stdio.h> #include<string.h> char s[600];int i; ...
  • 计算机常见单词

    万次阅读 多人点赞 2018-03-30 16:25:42
    1.单词说明:  command n. 命令,指令 [kə’mɑ:nd] ... 提示:着重记忆单词对应的意思,有能力最好词性也记忆。 2.词性说明: n v vi vt conj prep pron adj adv 名词 动词 非及物动词 及物动词 连...
  • 以前听说学习编程不需要记太多的英语单词,但是我在学习的时候还是碰到许多重要的编程单词,这里给大家稍微整理了一下,非常适合我们这些萌新!༼ つ ˵ ╥ ͟ʖ ╥ ˵༽つ 一、java入门基础学习单词 第一篇 public...
  • 单词计数是最简单也是最能体现 MapReduce 思想的程序之一,可以称为 MapReduce 版“Hello World”。单词计数的主要功能是统计一系列文本文件中每个单词出现的次数。本节通过单词计数实例来阐述采用 MapReduce 解决...
  • split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解。separator 不作为任何数组元素的部分返回。 import java.util.Scanner;public class Main{ public static void main...
  • ello世界 Ello在那儿,我们在这里 ACP (添加 git添加README.md (犯罪 git commit-m“添加到我的ello-world readme.md文件中” (推 git push origin主 目录 - - - - -这些是单词
  • c#_world_C#_源码

    2021-10-04 09:05:03
    某文件名为“*.txt”,其中*可能由若干个英文单词组成。将此文件名改为“*.dat”,并且单词之间用下划线连接,例如: hello world.txt,改为hello_world.dat
  • MapReduce版的HelloWorld

    2017-12-03 16:35:22
    一个MapReduce版的单词计数程序,相当于MapReduce的HelloWorld,用装有Maven插件的Eclipse打开
  • 用不同的语言说声Hello World 700种编程语言 维基百科声称大约有700种编程语言,而其他人则说接近9000种! 事实是,在整个历史中已经创建了无数种编程语言。 但是,就像口头语言一样,根据其流行程度和使用情况,...
  • HelloWorld实例

    2021-01-07 19:17:21
    //第一行的第三个单词必须和所在的文件名称完全一样,大小写也要一样 //public class后面代表定义一个类的名称,类是Java当中所有源代码的基本组织单位。 代码:public class HelloWorld{ //第二行的内容是...
  • 你知道Hello World程序的由来吗?

    万次阅读 热门讨论 2016-09-26 20:56:33
    Hello World是一个最著名的程序。...对程序员来说,看到这两个单词显示在电脑屏幕上,往往表示他们的代码已经能够编译、装载以及正常运行了,这个输出结果就是为了证明这一点。这个测试程序在一定程度上具有特
  • 单词翻转(C程序设计进阶第3周)

    千次阅读 2015-11-09 18:52:42
    问题描述 输入一个句子(一行),将句子中的每一个单词翻转后输出。 输入 只有一行,为一个字符串,不超过500个...样例输入hello world样例输出olleh dlrow提示 无。 源码#include #include using namespace s
  • HelloWorld

    千次阅读 2021-06-14 22:20:45
    随便新建一个文件夹,存放代码 新建一个Java文件 ... System.out.print("Hello,World!"); } } 编译 javac java文件,会生成一个class文件 运行class文件,java class文件 可能会遇到的情况 每.
  • 文章目录leetcode58:[58. 最后一个单词的长度](https://leetcode-cn.com/problems/length-of-last-word/)题目描述solution idea一次遍历参考文献 leetcode58:58. 最后一个单词的长度 ...输入:Hello World 输出: 5
  • 例如,“wrr” 是 “warrior” 的子集,但不是 “world” 的子集。 如果对 B 中的每一个单词 b,b 都是 a 的子集,那么我们称 A 中的单词 a 是通用的。 你可以按任意顺序以列表形式返回 A 中所有的通用单词。 示例 1...
  • iTeach.world-crx插件

    2021-03-08 17:39:25
    建立在自然语言处理技术之上,iTeach.world会提示用户学习新单词,并将这些单词保存到单词集中以供日后查看。 他们可以使用自动生成的抽认卡和测验来练习单词。 基本功能是免费的! 怎么运行的? 阅读是增加词汇量的...
  • var dictionary = [ 'hello' , 'world' ] ; var word = 'hallo' ; propose ( word , dictionary ) ; //hello 选项 threshold [0〜1]仅指定相似度等于或高于该值的单词 var propose = require ( 'propose' ) ; var ...
  • Java Beginners的第一个示例程序用于打印Hello World。... 如果您理解了该程序中的每个单词,那么您就可以开始学习Java概念了。 2. Java Hello World程序 以下是该程序的基本介绍性程序 新生或研究生 。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 89,651
精华内容 35,860
关键字:

world单词什么意思