今年7月-8月,从学校跑出去去实习,上周刚刚离职,算是一段历程的结束,突然间发现时间过得很快,两个月很短,我完全想不到在这两个月的时间里我到底学到了什么,这听起来挺惨,同时想了想对于技能的提升也很迷茫,但是还是想,应该要好好总结,希望自己在以后的生活和学习上有着更加明确的方向.
1:期待的生活
今年的3月份就已经确定好了实习,后来自己也在陆陆续续的做一些准备,本来想你进入公司实习,会有师傅带你培训,会手把手教你,然后完成任务,刷刷刷的写代码.然后准时下班,美滋滋.
2:实际上的生活
首先进公司,旁边工位的同事帮我帮我配置下环境,然后给我讲了下代码的版本控制方式(公司用的SVN),然后粗略的讲了一下代码,然后就是按照工作的需求开始干了,这是自己想不到的,YY的培训似乎并没有.
大牛们分享经验,在这两个月,公司内有一次分享会,自己也听了一些,但是说实话,光听几次分享是不行的,不是大牛们不想分享,还是开发经验本身是一个积累的过程,自己多写代码,多爬坑,多积累,最后自己就有经验了(这两个月用的最多的是Google,被程序报错吓怕了)
同事们之间的关系,其实大多数时候我们部门是非常安静的,讨论也都在讨论自己的工作业务,一切其乐融融,作为一个实习生,同事也对我没啥偏见,也都十分全心全意的帮助我,这点我很感谢.
3:自己做了点什么
总的来说,这两个月主要做了三个事,一是处理数据,特征提取,二是写文档,归纳总结,三是标记数据.
一:处理数据,特征处理
这一部分主要是根据语料进行处理,我从数据库导出来的数据是一些垃圾短信文本,垃圾短信本身我们知道,有一些很奇奇怪怪的符号,也有很多的同音字,同义词,这些特征的出现其实就是为了干扰我们的系统对其进行处理,这一方面其实是这两个月最有挑战性的一件事,期间测试了很多的模型,包括doc2vec,lda这些比较经典的,也尝试了CNN和RNN深度学习的模型,最后还是选用了word2vec,在此产生词向量的基础上,使用CNN去最终生成句向量sentence embedding,这一点主要参考了的论文,还是提供了不少的思路,最后想去尝试下RNN,但是做了有一半又来了新的任务,没能完成,还是挺遗憾,有时间继续尝试一下.
期间自己也产生了一些疑问和产生了一些小trick,比如为什么使用CNN去产生句向量效果会比较好,还跑去提问,结果发现自己不知道的太多了
最后还做了一些其他的实验,但是效果都一般吧
比如使用LDA的时候,需要的语料很多,不然的话数据维度会远大于样本数,效果会很差,另外LDA比较适合高层次的主题,对于颗粒度较细的语料,效果就很一般.
在使用Doc2vec的时候,因为的短信文本样本,句向量的产生效果很差,看俩Doc2vec比较适合长文本.
二:写文档
写文档其实也是蛮有挑战的,因为把自己的逻辑整理成文字,本身也是一个很痛苦的过程,包括写PPT,这些都是需要你层层渐进,从浅到深,写流水帐不难,但是写出一份好的文档是难的,最后所有的都要明确一点,主题是什么,写不下去的时候就看看主题,觉得不对的时候再看看主题,写得多了,就好办了.
三:标记数据
这真是一个体力活.......省略一万字
4:自己学到了什么
个人觉得做任何一件事情,都要有终身学习的想法,最起码要有一定的自学能力,有人带你,是你的运气好,没人帮你,这是公平的命运,没有人应该为你做什么,人应该为自己负责,从事IT这个行业,自学是最关键的.
拒绝二手知识,拾人牙慧本身不算是一件光彩的事,很多人一出问题自己也不思考,不去自己解决就想着打开微信问问别人会不,别人不会自己再想办法,别人教给你了,好了,bug解决了,自己也不去深究其原因,长此以往,这也是对自己的不负责,你觉得别人可能是举手之劳,但是自己都不想花时间去研究自己的问题凭什么要求别人去解决自己的问题.就算这个问题自己不会,其实想想,大多数都是自己接触的知识结构有纰漏,这一点还是需要自己去摸索,去踩坑,虽然这个过程很痛苦,但是这是一个过程,是成长的必经之路.其实大多数问题自己通过Google,通过Stack Overflow都可以解决,我觉得以后自己没弄过的或者有问题的,先去尝试自己解决,通过各种论坛,自己的搜索先行去解决,最后实在不会了,自己再去请教别人,这是我觉得最好的方式,利人利己.
个人品德,这一点我觉得无关于技术,这是一个人的品质,一个人正直,尽管技术差点,也会有很多人尊重,但是一个人技术再好,为人差劲,这样反而成了社会的危害,这样别人看着也难受,多不好.
最后,这两个月虽然很短,但是意义很大,感觉自己前方的路还很长,要学的还有更多,希望自己不要熬夜,多多锻炼,戒奢戒躁,慢慢前行,要把一件事情做到极致,不要仅限于过得去,相信自己.
最最后,感谢公司的小伙伴对我的帮助和支持!