在现代快节奏的生活中,孩子们通常会面临各种各样的压力,无法放松自己的身心。因此,睡前讲故事成为了许多家长选择的方式,帮助孩子们放松心情,进入梦乡。讲故事既可以帮助孩子开阔思维,又能提高他们的阅读能力。
讲故事是一种沟通的方式,能够加强亲子关系。当父母为孩子讲故事时,他们会以孩子为中心,关注孩子的需求和兴趣。这种亲密的交流不仅可以加深亲子之间的感情,还能让孩子感受到温暖和安全。
讲故事有助于培养孩子的想象力和创造力。通过听讲故事,孩子们可以在大脑中形成丰富的画面,想象自己置身其中。他们可以在故事中扮演各种角色,发挥自己的想象力和创造力。这对孩子的思维发展非常有益。
睡前讲故事还可以帮助孩子发展语言和阅读能力。当孩子们听故事时,他们会接触到各种各样的词汇和语法结构。这些词汇和结构能够帮助孩子扩大词汇量,并提高自己阅读理解的能力。此外,睡前讲故事也能激发孩子对阅读的兴趣,让他们享受阅读的乐趣。
为了让睡前讲故事的效果更好,家长们需要一些有效的技巧和注意事项。
不同年龄段的孩子对故事的理解和接受能力不同,因此选择适合孩子年龄的故事非常重要。对于较小的孩子,选择一些简单易懂、富有想象力的故事;对于较大的孩子,可以选择一些更加有深度的故事,帮助他们思考人生和价值观。
一个好的故事情节能够吸引孩子的注意力,让他们更加投入故事中。在讲故事时,可以使用一些生动的细节和描写,帮助孩子形成更加清晰的画面。可以通过描述故事中的人物形象、场景背景以及事件设定等方式,让故事更加有趣。
在讲故事时,家长可以运用各种各样的声音和语气,为故事创造出专属的氛围。可以通过改变声音的高低、速度的快慢、音量的大小等方式,让故事更加生动有趣。此外,还可以使用适当的语气表达情感,帮助孩子更好地理解故事的情节。
讲故事并不仅仅是单方面的表达,在讲故事的过程中,家长还可以与孩子进行互动。可以让孩子参与到故事中,扮演故事中的角色,或者提出一些问题,让孩子思考和回答。这样既能增加孩子对故事的理解,又能培养他们的思维能力。
对于不知道讲哪些故事的家长们,下面列举了一些适合睡前讲的故事,供参考:
总之,讲故事是一种非常有效和有趣的方式,可以帮助孩子们放松自己,增强亲子关系,培养想象力和创造力,同时提高语言和阅读能力。家长们可以根据孩子的年龄和兴趣,选择适合的故事,通过一段美妙的讲故事时光,让孩子们享受每一个美好的梦境。
*这里分享给大家一些关于讲故事的内容。希望对您有所帮助,如果您有任何问题或想法,请随时在评论区留言。谢谢!*之前看了Mahout官方示例 20news 的调用实现;于是想根据示例的流程实现其他例子。网上看到了一个关于天气适不适合打羽毛球的例子。
训练数据:
Day Outlook Temperature Humidity Wind PlayTennis
D1 Sunny Hot High Weak No
D2 Sunny Hot High Strong No
D3 Overcast Hot High Weak Yes
D4 Rain Mild High Weak Yes
D5 Rain Cool Normal Weak Yes
D6 Rain Cool Normal Strong No
D7 Overcast Cool Normal Strong Yes
D8 Sunny Mild High Weak No
D9 Sunny Cool Normal Weak Yes
D10 Rain Mild Normal Weak Yes
D11 Sunny Mild Normal Strong Yes
D12 Overcast Mild High Strong Yes
D13 Overcast Hot Normal Weak Yes
D14 Rain Mild High Strong No
检测数据:
sunny,hot,high,weak
结果:
Yes=》 0.007039
No=》 0.027418
于是使用Java代码调用Mahout的工具类实现分类。
基本思想:
1. 构造分类数据。
2. 使用Mahout工具类进行训练,得到训练模型。
3。将要检测数据转换成vector数据。
4. 分类器对vector数据进行分类。
接下来贴下我的代码实现=》
1. 构造分类数据:
在hdfs主要创建一个文件夹路径 /zhoujainfeng/playtennis/input 并将分类文件夹 no 和 yes 的数据传到hdfs上面。
数据文件格式,如D1文件内容: Sunny Hot High Weak
2. 使用Mahout工具类进行训练,得到训练模型。
3。将要检测数据转换成vector数据。
4. 分类器对vector数据进行分类。
这三步,代码我就一次全贴出来;主要是两个类 PlayTennis1 和 BayesCheckData = =》
package myTesting.bayes;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.util.ToolRunner;
import org.apache.mahout.classifier.naivebayes.training.TrainNaiveBayesJob;
import org.apache.mahout.text.SequenceFilesFromDirectory;
import org.apache.mahout.vectorizer.SparseVectorsFromSequenceFiles;
public class PlayTennis1 {
private static final String WORK_DIR = "hdfs://192.168.9.72:9000/zhoujianfeng/playtennis";
/*
* 测试代码
*/
public static void main(String[] args) {
//将训练数据转换成 vector数据
makeTrainVector();
//产生训练模型
makeModel(false);
//测试检测数据
BayesCheckData.printResult();
}
public static void makeCheckVector(){
//将测试数据转换成序列化文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"testinput";
String output = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();
String[] params = new String[]{"-i",input,"-o",output,"-ow"};
ToolRunner.run(sffd, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("文件序列化失败!");
System.exit(1);
}
//将序列化文件转换成向量文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";
String output = WORK_DIR+Path.SEPARATOR+"tennis-test-vectors";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();
String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};
ToolRunner.run(svfsf, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("序列化文件转换成向量失败!");
System.out.println(2);
}
}
public static void makeTrainVector(){
//将测试数据转换成序列化文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"input";
String output = WORK_DIR+Path.SEPARATOR+"tennis-seq";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();
String[] params = new String[]{"-i",input,"-o",output,"-ow"};
ToolRunner.run(sffd, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("文件序列化失败!");
System.exit(1);
}
//将序列化文件转换成向量文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-seq";
String output = WORK_DIR+Path.SEPARATOR+"tennis-vectors";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();
String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};
ToolRunner.run(svfsf, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("序列化文件转换成向量失败!");
System.out.println(2);
}
}
public static void makeModel(boolean completelyNB){
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-vectors"+Path.SEPARATOR+"tfidf-vectors";
String model = WORK_DIR+Path.SEPARATOR+"model";
String labelindex = WORK_DIR+Path.SEPARATOR+"labelindex";
Path in = new Path(input);
Path out = new Path(model);
Path label = new Path(labelindex);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
if(fs.exists(label)){
//boolean参数是,是否递归删除的意思
fs.delete(label, true);
}
TrainNaiveBayesJob tnbj = new TrainNaiveBayesJob();
String[] params =null;
if(completelyNB){
params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow","-c"};
}else{
params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow"};
}
ToolRunner.run(tnbj, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("生成训练模型失败!");
System.exit(3);
}
}
}
package myTesting.bayes;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.PathFilter;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.mahout.classifier.naivebayes.BayesUtils;
import org.apache.mahout.classifier.naivebayes.NaiveBayesModel;
import org.apache.mahout.classifier.naivebayes.StandardNaiveBayesClassifier;
import org.apache.mahout.common.Pair;
import org.apache.mahout.common.iterator.sequencefile.PathType;
import org.apache.mahout.common.iterator.sequencefile.SequenceFileDirIterable;
import org.apache.mahout.math.RandomAccessSparseVector;
import org.apache.mahout.math.Vector;
import org.apache.mahout.math.Vector.Element;
import org.apache.mahout.vectorizer.TFIDF;
import com.google.common.collect.ConcurrentHashMultiset;
import com.google.common.collect.Multiset;
public class BayesCheckData {
private static StandardNaiveBayesClassifier classifier;
private static Map<String, Integer> dictionary;
private static Map<Integer, Long> documentFrequency;
private static Map<Integer, String> labelIndex;
public void init(Configuration conf){
try {
String modelPath = "/zhoujianfeng/playtennis/model";
String dictionaryPath = "/zhoujianfeng/playtennis/tennis-vectors/dictionary.file-0";
String documentFrequencyPath = "/zhoujianfeng/playtennis/tennis-vectors/df-count";
String labelIndexPath = "/zhoujianfeng/playtennis/labelindex";
dictionary = readDictionnary(conf, new Path(dictionaryPath));
documentFrequency = readDocumentFrequency(conf, new Path(documentFrequencyPath));
labelIndex = BayesUtils.readLabelIndex(conf, new Path(labelIndexPath));
NaiveBayesModel model = NaiveBayesModel.materialize(new Path(modelPath), conf);
classifier = new StandardNaiveBayesClassifier(model);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("检测数据构造成vectors初始化时报错。。。。");
System.exit(4);
}
}
/**
* 加载字典文件,Key: TermValue; Value:TermID
* @param conf
* @param dictionnaryDir
* @return
*/
private static Map<String, Integer> readDictionnary(Configuration conf, Path dictionnaryDir) {
Map<String, Integer> dictionnary = new HashMap<String, Integer>();
PathFilter filter = new PathFilter() {
@Override
public boolean accept(Path path) {
String name = path.getName();
return name.startsWith("dictionary.file");
}
};
for (Pair<Text, IntWritable> pair : new SequenceFileDirIterable<Text, IntWritable>(dictionnaryDir, PathType.LIST, filter, conf)) {
dictionnary.put(pair.getFirst().toString(), pair.getSecond().get());
}
return dictionnary;
}
/**
* 加载df-count目录下TermDoc频率文件,Key: TermID; Value:DocFreq
* @param conf
* @param dictionnaryDir
* @return
*/
private static Map<Integer, Long> readDocumentFrequency(Configuration conf, Path documentFrequencyDir) {
Map<Integer, Long> documentFrequency = new HashMap<Integer, Long>();
PathFilter filter = new PathFilter() {
@Override
public boolean accept(Path path) {
return path.getName().startsWith("part-r");
}
};
for (Pair<IntWritable, LongWritable> pair : new SequenceFileDirIterable<IntWritable, LongWritable>(documentFrequencyDir, PathType.LIST, filter, conf)) {
documentFrequency.put(pair.getFirst().get(), pair.getSecond().get());
}
return documentFrequency;
}
public static String getCheckResult(){
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String classify = "NaN";
BayesCheckData cdv = new BayesCheckData();
cdv.init(conf);
System.out.println("init done...............");
Vector vector = new RandomAccessSparseVector(10000);
TFIDF tfidf = new TFIDF();
//sunny,hot,high,weak
Multiset<String> words = ConcurrentHashMultiset.create();
words.add("sunny",1);
words.add("hot",1);
words.add("high",1);
words.add("weak",1);
int documentCount = documentFrequency.get(-1).intValue(); // key=-1时表示总文档数
for (Multiset.Entry<String> entry : words.entrySet()) {
String word = entry.getElement();
int count = entry.getCount();
Integer wordId = dictionary.get(word); // 需要从dictionary.file-0文件(tf-vector)下得到wordID,
if (StringUtils.isEmpty(wordId.toString())){
continue;
}
if (documentFrequency.get(wordId) == null){
continue;
}
Long freq = documentFrequency.get(wordId);
double tfIdfValue = tfidf.calculate(count, freq.intValue(), 1, documentCount);
vector.setQuick(wordId, tfIdfValue);
}
// 利用贝叶斯算法开始分类,并提取得分最好的分类label
Vector resultVector = classifier.classifyFull(vector);
double bestScore = -Double.MAX_VALUE;
int bestCategoryId = -1;
for(Element element: resultVector.all()) {
int categoryId = element.index();
double score = element.get();
System.out.println("categoryId:"+categoryId+" score:"+score);
if (score > bestScore) {
bestScore = score;
bestCategoryId = categoryId;
}
}
classify = labelIndex.get(bestCategoryId)+"(categoryId="+bestCategoryId+")";
return classify;
}
public static void printResult(){
System.out.println("检测所属类别是:"+getCheckResult());
}
}
1. 请介绍一下WebGIS的概念和作用,以及在实际应用中的优势和挑战。
WebGIS是一种基于Web技术的地理信息系统,通过将地理数据和功能以可视化的方式呈现在Web浏览器中,实现地理空间数据的共享和分析。它可以用于地图浏览、空间查询、地理分析等多种应用场景。WebGIS的优势包括易于访问、跨平台、实时更新、可定制性强等,但也面临着数据安全性、性能优化、用户体验等挑战。
2. 请谈谈您在WebGIS开发方面的经验和技能。
我在WebGIS开发方面有丰富的经验和技能。我熟悉常用的WebGIS开发框架和工具,如ArcGIS API for JavaScript、Leaflet、OpenLayers等。我能够使用HTML、CSS和JavaScript等前端技术进行地图展示和交互设计,并能够使用后端技术如Python、Java等进行地理数据处理和分析。我还具备数据库管理和地理空间数据建模的能力,能够设计和优化WebGIS系统的架构。
3. 请描述一下您在以往项目中使用WebGIS解决的具体问题和取得的成果。
在以往的项目中,我使用WebGIS解决了许多具体问题并取得了显著的成果。例如,在一次城市规划项目中,我开发了一个基于WebGIS的交通流量分析系统,帮助规划师们评估不同交通方案的效果。另外,在一次环境监测项目中,我使用WebGIS技术实现了实时的空气质量监测和预警系统,提供了准确的空气质量数据和可视化的分析结果,帮助政府和公众做出相应的决策。
4. 请谈谈您对WebGIS未来发展的看法和期望。
我认为WebGIS在未来会继续发展壮大。随着云计算、大数据和人工智能等技术的不断进步,WebGIS将能够处理更大规模的地理数据、提供更丰富的地理分析功能,并与其他领域的技术进行深度融合。我期望未来的WebGIS能够更加智能化、个性化,为用户提供更好的地理信息服务,助力各行各业的决策和发展。
这块您需要了解下stm32等单片机的基本编程和简单的硬件设计,最好能够了解模电和数电相关的知识更好,还有能够会做操作系统,简单的有ucos,freeRTOS等等。最好能够使用PCB画图软件以及keil4等软件。希望对您能够有用。
重阳节有登高的习俗。
金秋九月,天高气爽,
这个季节登高远望可达到,
心旷神怡、健身祛病的目的。
早在西汉《长安志》中,
就有汉代京城九月九日时人们游玩观景之记载。
1.快乐阅读,茁壮成长
2.我有七彩梦
3.弘扬红色文化,传承经典故事
4.童言童语
5.讲童话,润童心
6.绽放!我们的十年
7.我眼中的最美抗疫故事
8.不一样的童年故事
9.少年绘党恩,缤纷展童心
10我家的‘人世间’故事
11.童心向党 红色故事我来讲
12.童心永向党 筑梦新时代
13.阅读经典好书·讲好富蕴故事
14.童话王国觅童趣,故事赛中寻故声
15.讲英雄故事,传时代强音
16.我和党的故事
一、让你的故事有情节,带感情切忌,流水帐不是故事,好的故事必须要具备以下几点要素:时间,地点,人物,冲突,结局,最好带上自己的体会,升华,乔布斯就善于讲故事,他的演讲中,都会先出现坏蛋,让观众觉得这个坏蛋坏到极点,需要一个英雄挺身而出,这个时候,苹果就代表英雄出场,大败了坏蛋,因此大家记住了英雄,这个套路屡试不爽。
二、让你的故事会说话演讲的四大目的:传递信息,娱乐,说服和激励,讲故事也要有目的,不是为了讲而讲。大部分观众都不喜欢听大道理,他们喜欢听故事,因为故事听起来很真实,更有温度,也能够在一开始就建立与观众的链接,通过故事来讲道理,观众的接受程度会大很多。
三、让你的故事有画面感调动五感化语言:视觉,听觉,嗅觉,味觉和触觉,让观众记忆深刻。
四,让自己成为有故事的人很多人不会讲故事,最重要的一点是没故事可讲,就算讲故事也使别人的故事,没有新意。最好的故事就是自己的故事,让自己成为有故事的人,才是讲好故事的核心。如果你每天的工作和平淡,过着两点一线的生活,那么不妨做一些改变。结识一些厉害的牛人,去听有些牛人的故事,去做有挑战,与众不同的事,你会发现,突破舒适区后,你的人生会丰满很多,精彩很多。不去做,然并卵,努力去经历,喝最烈的酒,看最美的风景,见识更多有趣的人,因为,这才是人生!
在很久以前,有一年的立春前,当人们准备热热闹闹迎接立春时,不料,瘟疫四起,使得所有人都传染上了一种说不出的疾病。
立春前一天,一个老道打扮的人来到了一个村庄。他见村庄里静得听不到鸡鸣狗叫,更不见有人走动,觉得奇怪万分。他来到了村边的一户人家敲门.道人连呼几声没人应,后来他看到一个中年人,连声问究竟,中年人抬了一下眼皮,合着眼用微弱的声音,断断续续地说:“全村人都得了一种像我这样的病。”
啃春
道人一连闯了几家,情形都是一样。道人也莫名其妙。于是,他来到村东头的一棵古树下,面南盘坐,挑起单掌,合眼静坐,口中念念有词。原来,他向南海的观世音菩萨祈求医治瘟疫的方法。过了几个时辰,道人长嘘一口,猛然站起来,飞快地跑回观院,抡镐便刨,他刨出一袋贮藏的萝卜,又飞快地跑到了村庄。这时候,已是第二天大清早了,道人从村中一家找到一只芦花大公鸡,拔下几根鸡毛,扎在了地上。
游春
道人合眼祈告着,脑海中又出现了静坐时与观音菩萨对话的场面:观音菩萨告诉他,等地气通时,让乡人百姓每人啃吃几口萝卜,瘟疫便可自动解开。过了约莫有一袋烟的功夫,扎在地上的鸡毛突然动了起来,道人惊喜万分,他喊着:“地气通了,地气通了。”奔向了村庄的每家每户,让人们啃吃萝卜。结果,还真灵验,人们吃了萝卜之后,全都好了。
最终瘟疫解了,人们又过上了平静安乐的生活。但是人们不会忘记那位道人,更不会忘记让他们从苦难中解脱出来的萝卜。从此,乡人便在立春这天啃吃几片萝卜,以求平安。咬春的习俗也就形成了,持续至今。
传说二:打小锣
旧时湖南一带无业游民,在春节前后,敲打小锣、竹板等,唱着歌词,挨户索取钱财,叫做打春。
传说,在明朝年间,有个知府,在上任的头一年的春天,气候非常寒冷,而且时间也冷得很长,虽说立春已有个把月了,花草树木都未看见发芽。知府心想这不是一个好兆头,他急于想见到树草花木发的芽。于是,他立即下令,要百姓去寻找发了芽的树枝送到知府里。如谁送得早,就有奖赏。次日,便有一个姓吴的和一个姓周的两个人,找到了几枝发了芽的杨木,送到了知府的衙门。知府见了,心里自然大喜,认为是送来了吉祥。吴、周两人得到了知府的重赏。知府又要他们两人明年更早些来报春。恰巧,第二年因冬季比较暖和,正月初一立春,周、吴两人手持发了芽的杨柳,各入还拿了一面小锣半边特制的鼓,一齐来到知府衙门报春。他们一边敲锣,一边唱起自己编的一些好听的吉利奉承话。知府格外高兴,又给了周、吴二人双倍的奖赏。这样一来,周、吴受赏的消息传到了其他老百姓那里。
贴宜春字画
来年,其他百姓也仿照着周、吴二人的样,成群结队地上衙门报春。知府见到这样多的百姓都来了,他再也不拿出自己的银钱赏给百姓。知府便对大众说:“报春是件大喜事,一年之计在于春,春回大地早,是万民之福。你们可以拜吴、周二人为师,到各地村庄的乡亲们家里去报春。本府从今后,在立春时节办个盛大的迎春大会,与民同乐。”自从那时候起,各地都形成了打春的风俗。
立春不同地方有着不同的习俗:糊春牛、打春牛、游春、报春、贴宜春字画、戴春鸡等等。
一是态度上,要掌握理解故事,肯定和接受故事的思想内容,才有可能讲好这个故事;
二是方式上,要熟悉故事框架,根据自己的喜好和能力,选择适当的表现形式;
三是距离上,与孩子保持尽量近的距离,保证孩子们能直接看到讲述者,在故事中共进退;
四是声音动作上,要区分不同人物,表达出不同角色的特点,让故事生动有趣。
挑一个宝宝喜欢的故事,每天都讲一两遍给他听,每次讲完后再和宝宝一起回想故事的内容,帮着他复述出来,下次要宝宝讲这个故事给你听,这样下去宝宝几天就学会讲一个新故事了.