感谢我的领导和各位员工同事对我的信任,可以荣升为××,是在我的意料之外的,在今后的工作中我一定会继续努力的,谢谢大家
为你找到升职歌曲希望你听的愉快
Verse1
当我骄傲的抬起头在新买的座驾里
Shout to my team(致敬我的团队)对今天我也没有多诧异
我不想做CEO我就是不想没理由
我不会冲你挥起手 因为你们即将落下去
My boy fire gun (我的兄弟“火枪”)涨价团伙的loyalty(忠诚音乐团队的一员)
升值兄弟马上升值麻烦你们坐过去
I'll be Shining like a diamond(我将会像钻石一般闪耀)开拓新的大事业
我懒得点开你的歌找我合作的下次见
把你的脸色调整 I'm rock star (像是摇滚巨星)听摇滚
思维跳跃像脚本 下块版图已瞄准
Blingbling 在新世界划过的风景
听引擎 低沉的咆哮发动的轰鸣
听他们叫我极恶的世代(取自动漫《One Peice.》意为最年轻有为的一代)
赚更多为了更自由自在
搭上更早的航班我在飞机上睡
我有着大把你没有的才华拿来浪费
I'm back(取自迈克尔乔丹经典复出的语录)
慢慢的踏入了我们的漩涡 别干渴
c
别装了 你欣赏不了 那你最好关了
没什么难 别遮挡 时刻保持饥饿感
我生来就是为了告诉你这游戏怎么玩
Hook
我在构建着我的王国
这帮孩子长大以后的传说
我就像是比鲁斯在银河穿梭
迎面来的拳头绝不会闪躲
rise in price
我在构建着我的王国
这帮孩子长大以后的传说
你知道dragon Ball肯定不止三颗
不需要神龙我也不会翻车
rise in price
Verse2
我的高光时刻 我的嚣张时刻
在没包装过的demo可不止一个
在街上混出名堂 而不是地痞流氓
不爱听戏曲柔肠 叫你兄弟一起投降
uh Iron mic拿下的头个奖 开辟了新的游乐场
大多数根本没意义的篇幅达不到目的以柔克刚
Wow 你的作品就像Gold Chains 太低级
别用那副嘴脸看我收起你的坏脾气
uh没人宠着你 你最好迅速适应
搞不懂靠抄袭而来的“成名曲”非得说成致敬
ya这么唱我也会 别偷偷抹眼泪
你就像火箭队 的莫雷付出的代价有点贵 uh
对不对 嗯? 搞清楚规则 你最好自己配合
并不是只有真的战争 才会需要枪支火药
并不是我付出的汗水 你用句“天赋”就能抹掉
Hook
我在构建着我的王国
这帮孩子长大以后的传说
我就像是比鲁斯在银河穿梭
迎面来的拳头绝不会闪躲
rise in price
我在构建着我的王国
这帮孩子长大以后的传说
你知道dragon Ball肯定不止三颗
不需要神龙我也不会翻车
rise in price
bridge
升值兄弟已经就位
保持着上“升”同样让你“值”回票价
涨价团伙已经就位
上“涨”的水平像“价”值连城般浩大*2
Hook
我在构建着我的王国
这帮孩子长大以后的传说
我就像是比鲁斯在银河穿梭
迎面来的拳头绝不会闪躲
rise in price
我在构建着我的王国
这帮孩子长大以后的传说
你知道dragon Ball肯定不止三颗
不需要神龙我也不会翻车
对于广大建设银行员工来说,建行大学网络学习平台无疑是提升自身专业技能的重要渠道。这个线上学习平台为员工们提供了丰富多样的课程选择,涵盖了从基础理论到实操技巧的各个方面,助力他们在银行业务领域不断进阶。本文就将为大家深入解读建行大学网络学习的特色及其在职业发展中的重要意义。
建行大学网络学习平台自建立以来,就一直致力于为员工打造专业化、系统化的在线学习体系。其特色主要体现在以下几个方面:
对于建设银行的员工来说,建行大学网络学习平台无疑是职业发展的重要助力。通过在这个平台上系统学习,员工可以获得以下三大收益:
银行业是一个知识密集型行业,要想在激烈的竞争中脱颖而出,专业技能的不断提升至关重要。建行大学网络学习平台为员工提供了系统的职业培训,使他们能够紧跟行业前沿,掌握最新的业务知识和操作技能,从而增强自身的职业竞争力。
建行大学网络学习不仅有丰富的银行业务课程,也包括管理技能、通用技能等方面的培训。这为员工在职业发展道路上打开了新的选择,为他们未来的岗位晋升和角色转换奠定了基础。通过自主规划学习路径,员工可以根据自身的职业规划有针对性地提升相应的技能,增强自身的发展潜力。
建设银行作为国内最大的商业银行之一,一直重视员工的培养和发展。建行大学网络学习平台的建立,正是体现了公司对员工职业发展的高度重视。员工通过在这个平台上系统学习,不仅可以提升自身的专业素质,也能感受到公司对他们的重视和关怀,从而增强自己的企业归属感,为公司的长远发展贡献绵薄之力。
总的来说,建行大学网络学习平台为建设银行员工提供了一个系统化、专业化的在线学习渠道,帮助他们不断提升银行业务技能,开拓职业发展新路径,增强企业归属感。对于广大建行员工来说,利用好这个优质的学习资源,无疑是促进自身职业发展的明智之选。
感谢您阅读本文,希望通过这篇文章,您能更加全面地了解建行大学网络学习平台的特色和在职业发展中的重要意义。如果您有任何疑问或需求,欢迎随时与我们取得联系,我们将竭尽全力为您提供帮助。
阮郎归
良辰佳景列华筵 。
笙歌奏管弦 。
位居荣显子孙贤 。
功名事双全 。
庆祝寿,拜尊前 。
重重福禄坚 。
愿如彭祖寿齐年 。
金杯劝寿仙 。
生活节节高,事业向上靠;一年一个脚印,一个岗位更比一个岗位高;领导,恭祝你荣升为XX;在此,给你送上祝福,愿君事业高升,如同芝麻开花节节高。
听闻领导升职,心中快乐开了花;此时此刻,属下给你送上真挚的祝福,恭贺领导荣升XX职位,愿你在未来的岗位上大展鸿图,飞黄腾达。
领导,人往高处飞,人往低处流;在这个春风得意的此刻,愿你工作步步高升,在新的平台上,大展鸿图,创造更加辉煌的人生。
在职场的你,如果想要快速升职加薪,这篇文章一定不要错过。
工作只分两种,含金量高的工作和含金量低的工作。
你身边是否有这样的同事,上司交给她的任何工作,她都能取得优秀的成绩。就算失败了,上司也不会说是她的原因。升职加薪的队伍里总有她。
她升职的原因很简单,也很残酷。
因为她做着含金量高的工作,容易取得成果,而你做着含金量低甚至是没有含金量的工作。
每当她取得丰硕成果后,就会获得上司的高度评价、信赖,然后又会得到含金量高的工作,取得成果,得到同事的信赖,日积月累硕果累累,升职加薪是众望所归。
含金量高的工作的8个特征
① 期限宽松,有足够的时间思考
② 一开始就要求我们花一点心思,有挑战性
③ 成果可以体现出工作者的个别能力
④ 让工作者引以为豪,想告诉别人
⑤ 工作者觉得有价值,做得开心,愿意投入时间
⑥ 上司会期待并关注
⑦ 如果取得了优秀的成果,会归功于工作者
⑧ 因为工作有挑战性,失败了也不会归因于工作者
含金量低或没有含金量的工作的7个特征
① 时间期限紧
② 不用花心思
③ 不用特殊能力,谁干结果都一样
④ 没有兴趣对别人提
⑤ 做得不开心,不愿投入时间
⑥ 别人不会关注工作结果,因为结果是可预估的
⑦ 一旦失败,就会归因于工作者
比如,一个公司中,如果当前的任务是提高销售额,那么签单的销售员肯定比制造、配送商品的员工得到的评价更高。上司会赞扬整个团队,说大家干的好,正是因为大家团结一致,才获得了卓越的成果,但那只是口头说说而已,实际上上司不可能让整个团队的成员都获得晋升。
更残酷的是含金量高的工作与含金量低的工作的比例是1:9。
那么工作的分配就成了关键。
为什么学历高的人容易取得好业绩呢?
因为有学历高,这个前提使他们一开始就更容易比别人获得含金量高的工作。
沟通能力强的人也是如此,因为它们看起来很有工作激情,所以上司往往就会把含金量高的工作交给他们。
所以学会那些比自己优秀的人的特征,更容易取得含金量高的工作。
你的公司给你分配工作的是谁呢?他又是怎样分配的呢?
是看能力,还是看文凭,还是看个人印象?
含金量高的工作往往很重要,不能出岔子,上次小秘干的不错,所以与其交给别人,不如还是继续交给她吧。上司往往这么想。
然后到了年度评价KPI的时候分配工作的上司就会说怎么搞的?你们几个里面怎么就只有小秘取得了丰硕的业绩,他完全忘了这些工作是他分配的。
然后小秘和其他人的差距就会越来越大,她永远能拿到含金量高的工作。这就是每天都在发生,但又不为人知的不公平。
越是含金量低的工作,越是耗时间。
为什么你在喝了鸡汤后的激情,在睡了一晚之后就会消失呢?
一个是不知道具体的方法。
另外一个是你太忙了,没时间去做新的努力。
因为金量低的工作的工时都是固定的,所以上司不会给你多少宽裕时间。但是金量高的工作就连上司也不清楚需要多少时间,因此只好在时间设定上宽裕。
例如,输入1000字的报告,这个是可以计算出时间的。如果你在上司预计的时间内没有完成,你就是不合格的。而且每天8小时的工作都给你排得满满的。
但是金量高的工作就不一样了,比如上司问你有没有办法做COST DOWN?像这样的工作上司是不会规定具体时间的,能不能想出好主意,不在于这个人是不是有能力,而在于有没有给他充足的时间。
如果你一直无法取得含金量高的工作,只是一直在规定的时间内,不犯错的完成含金量低的工作的话,就永远无法翻身。
那么,如何从含金量低得工作的恶性循环中逃离出来呢?
唯一有效的方法就是把含金量低的工作变成含金量高的工作,也就是给它加上附加价值。
含金量低的工作本来就没有什么价值,所以大家往往只会应付过去,几乎都没有人会做得很投入。所以只要仔细想想,我们就很可能会找到工作中有待改进的地方。
例如:一份要花100分钟时间完成的含金量低的工作,你用10分钟完成了。
又比如,这个数据表很复杂,不容易理解,有没有方法使它更简洁易懂呢?
这样的机会大概每个人都碰到过,但是都无视了他们的存在。对含金量低的工作进行改革是逃离含金量低的工作的唯一方法。
因为同样的工作交给我就能拿出更好的成果,上司分配工作时就会分配更加有含金量的工作给我。
每家公司的根本目的是获得盈利,削减成本。任何事以这两点为出发点考虑,把公司当成自己的,你就会发现还有很多不足的地方。别认为自己是个小小的职员,这些事情超出了自己的权限,就不去做了。
再比如,你发现公司有资源的浪费情况,那么是否有方法可以避免呢?
如果这件事大家都没做,而你做了,而且帮公司节省了开支,你就是有资格获得含金量高的工作的员工。
另外,这种改革行动越早越好,如果等上司指出来再做就是完成任务了,没有功劳可言。
有人说这种改革太难发现了,的确缺乏行业经验的人是不容易发现的。
那么具体从哪几个方面下手呢。
一、超期待完成
从手头的日常工作开始,超预期的完成工作。
领导对日常工作的期待最高不过是,遵守期限,不犯错。如果你仅仅是保证这两点,那上司也认为是必须的,就算完成了也不会给你加分。所以明确上司的期待值,超期待值完成,获得青睐。
有一个夸赞别人的方式叫做:
明明。。。。却能。。。。
明天需要100分钟,小明却能在10分钟内完成。
二、 关注上司关心的事
在年度方针发表会上上司所关注的事是什么?想解决的问题是什么?
思考自己手头上的工作,能不能在这些方面做出一点贡献?
即使自己不能做贡献,上司知道你关注他的事,也会给你印象加分的。
三、 考虑工作成果的使用者和使用场景
上司要我做这个表格是用在哪里的?是谁使用的?
当自己不清楚用途是什么的时候,可以去使用者那里询问。这样做可以让人觉得你是一个认真负责的人。
同时你可以发现各种可以改善的地方,对方看这个表格,怎么看方便?怎么省时间?怎么可以避免对方的重复劳动?
比如做会议记录,会议记录可以按时间顺序记录,可以按发言人顺序记录,可以做个目录,方便对方查看,还可以将数据来源做个附录,供使用者查看。
总之,一直要把提供惊喜放在心上。
如果你觉得这些东西很难想到,那么就把它变得不用思考,成为“固定搭配”。
比如,提到做会议记录,就要想到做目录,做附录。就像提到下雨,你就会想到带伞。
四、 持续改善手头工作
工作的本质是解决问题,在工作中发现问题,独立思考解决,是员工的义务。
要想获得含金量高的工作,首先要解决日常工作中的问题点,提高工作的精度。
想象一下,如果这份工作交给最优秀的人做,他们会怎么做?
如果这份工作是别人交接给你的,你会看出哪些问题?
你是否每个月都在精简SOP?
每天的工作都要给自己找茬,想想那些故意挑你刺的人会怎么讲你?
你是否有通过数据化分析,发现原本看不见的变化点,并找到原因?
也许你担心一边做着手头的含金量低的工作,一边改革工作增加附加价值会感到疲倦,
但这个改革是由你自己决定期限的,而不是上司要求的,可以给自己留足时间思考。
差别化才是你的价值,做同一份工作跟别人做出不一样的效果。而且这个差距要大到让人一眼就能看出你跟别人不是一个级别的。
如果你做到了,却没有获得上司好评,记得问原因。
五、关注公司的六个目的
自己的公司是为了实现什么,或是以什么为目的而存在呢?
一般来说有六个,
① 实现理念
② 追求利润
③ 提高客户满意度
④ 提高员工满意度
⑤ 教育培养人才
⑥ 建立一个能让以上成果重复的体系
实现理念就需要时间,金钱,人力。②和③保证金钱,④和⑤保证人力,⑥保证企业长存。
六、时刻谨记努力的方向
工作方向必须符合上司的需求和公司的六大目的。
例如:疫情期间,大家都一致认为,公司目前最需要做的是消减成本,因此业务量减少也是无可奈何的时候,却有人突然跳出来说:要不要我们试试向国外发展吧?这种脱离正轨的话,就不要说了。
上面所做的一切都是为了提高自身的品牌价值。
一旦确立了不可动摇的品牌,你的工作就会变得越来越好做。你的创意和意见会变得更容易被人接受。你犯错的时候,别人的反应也会和以前不一样。甚至周围人看待你的眼光都会逐渐改变。
职场人的品牌价值由三大部分组成:成果,言论,人格魅力。其中成果是最重要的。
还有职场一直都是先交货再付款,先有成果,然后有升职加薪。
不要担心你的成果,没人发现。当你成果的数量足够多的时候,你的领导没有发现,其他部门的人也会发现它的。
如果你碰到一个糟糕的上司,那么恭喜你,你升职加薪的几率大大提高了。也许短时间内你并不会有什么好处,时间长了,周围的人肯定会发现这些都是你的功劳。而他的糟糕形象成了你的衬托。
<h2>建行转建行多久到账户</h2>
建设银行作为中国五大商业银行之一,服务范围广泛,一直以来受到广大客户的信赖。近年来,随着科技的发展和金融行业的创新,建行也不断推出一系列便捷的服务,其中就包括建行转建行快速到账服务。许多客户在使用这项服务时,非常关心转账的到账时间。那么,建行转建行多久才能到账户呢?下面我们来一起了解一下。
<strong>1. 一般情况下的到账时间</strong><br>
根据建设银行官方规定,建行转建行的电子汇款在正常情况下是即时到账的。也就是说,一旦发起转账,对方账户应当立即收到转账金额。这对于大部分日常交易来说,速度非常快,方便了广大客户的资金周转。
<strong>2. 影响到账时间的因素</strong><br>
虽然建行转建行的电子汇款一般是即时到账的,但有时也会受到某些因素的影响,导致到账时间延迟。主要影响到账时间的因素有以下几个方面:
建行定期进行系统维护,以确保系统的稳定性和安全性。在系统维护期间,银行可能会暂停部分或全部的服务,这就会导致建行转建行的电子汇款到账时间延迟。一般情况下,维护时间较短,不会给客户带来太大的影响。
在法定节假日以及银行规定的节假日,银行的工作时间会有所调整。这可能会影响建行转建行的到账时间。举例来说,如果转账在周末或者法定节假日进行,那么到账时间可能会延迟到下一个工作日。
一般来说,转账金额大额的话,由于需要进行资金安全审核,可能会导致到账时间相对较长。这是为了保障客户的资金安全,尽管在这个过程中会带来一定的等待时间,但也是有利于客户的。
如果转账在银行规定的某些特定时段进行,到账时间也可能会有所延迟。这些时段往往与银行日终结算、系统备份等事项有关。因此,为了确保转账能够及时到账,建议客户避开这些时段进行转账操作。
<strong>3. 如何加快到账速度</strong><br>
尽管建行转建行的电子汇款一般是即时到账的,但如果客户有较高的转账时效要求,还是有一些方法可以加快到账速度。
比如避开银行的高峰时段、法定节假日等,选择转账频率相对较低的时间段进行操作。这样一来,不仅可以降低系统负载,还有利于快速处理转账请求,提高到账速度。
在进行建行转建行电子汇款时,客户需要填写收款方的账户信息。这些信息包括账户名、账号等。因此,在填写时务必核对清楚,确保信息的准确无误。一旦填写错误,就可能导致到账延迟或者无法到账的情况发生。
对于每一笔建行转建行的电子汇款,客户应当详细记录下转账时间、金额、收款方账户等相关信息。这样一来,如果发生到账延迟或者其他问题,可以及时与银行联系核实,加快问题解决的速度。
<strong>4. 建行转建行到账时间查询</strong><br>
如果客户想要了解具体的建行转建行到账时间,可以通过以下几种方式进行查询:
客户可以通过建行官方网站登录个人网银,查询转账记录,了解是否已经成功到账。
如果客户安装了建行手机App或者电脑端客户端,也可以通过相关的功能模块查询转账记录以及到账情况。
如果仍然有疑问或者需要更详细的解答,客户可以直接拨打建行客服热线进行咨询,客服人员会提供专业的帮助。
总之,建行转建行的电子汇款一般是即时到账的,但也有可能因为某些因素导致到账时间延迟。为了加快到账速度,客户可以选择合适的转账时段,填写准确的转账信息,并记录相关的转账信息。如果需要查询具体的到账时间,可以通过建行网银、客户端或者客服咨询的方式进行。
之前看了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等软件。希望对您能够有用。