步峰's profileBufeng 的城堡PhotosBlogListsMore ![]() | Help |
|
Bufeng 的城堡September 24 python(学习资料)好书推荐:
How to Think Like a Computer Scientist-Learning with Pythonprogramming python python cookbook python调试: interactive debugging in python
December 11 Linux/Unix 编程学习之路好久没有更新space了,donews的blog也没有办法登录.想好好学习linux网络编程,要工作了,马上就要用了.
抓紧时间突击一下,呵呵.自己的linux还差的很远.从网上找到一个linux学习之路,马上拿来主义,呵呵
/*******************************/
建议学习路径: 首先先学学编辑器,vim, emacs什么的都行。 然后学make file文件,只要知道一点就行,这样就可以准备编程序了。 然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。 如果想学习UNIX/LINUX的编程->《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基本上系统方面的就可以掌握了。 然后再看Douglus E. Comer的《用TCP/IP进行网际互连》第一卷,学习一下网络的知识,再看《UNP》的第一卷,不仅学习网络编程,而且对系统编程的一些常用的技巧就很熟悉了,如果继续网络编程,建议看《TCP/IP进行网际互连》的第三卷,里面有很多关于应用协议telnet、ftp等协议的编程。 如果想写设备驱动程序,首先您的系统编程的接口比如文件、IPC等必须要熟知了,再学习《LDD》2。 对于几本经典教材的评价: 《The C Programing Language》K&R 经典的C语言程序设计教材,作者是C语言 的发明者,教材内容深入浅出。虽然有点老,但是必备的一本手册,现在有时候 我还常翻翻。篇幅比较小,但是每看一遍,就有一遍的收获。另外也可用谭浩强 的《C语言程序设计》代替。 《Advanced Programing in Unix Envirement》 W.Richard Stevens:也是非常 经典的书(废话,Stevens的书哪有不经典的!),虽然初学者就可以看,但是 事实上它是《Unix Network Programing》的一本辅助资料。国内的翻译的 《UNIX环境高级编程》的水平不怎么样,现在有影印版,直接读英文比读中文来 得容易。 《Unix Network Programing》W.Richard Stevens:第一卷讲BSD Socket网络编 程接口和另外一种网络编程接口的,不过现在一般都用BSD Socket,所以这本书 只要看大约一半多就可以了。第二卷没有设计到网络的东西,主要讲进程间通讯 和Posix线程。所以看了《APUE》以后,就可以看它了,基本上系统的东西就由 《APUE》和《UNP》vol2概括了。看过《UNP》以后,您就会知道系统编程的绝大 部分编程技巧,即使卷一是讲网络编程的。国内是清华翻译得《Unix网络编程》 ,翻译者得功底也比较高,翻译地比较好。所以建议还是看中文版。 《TCP/IP祥解》一共三卷,卷一讲协议,卷二讲实现,卷三讲编程应用。我没有怎么看过。 ,但是据说也很经典的,因为我没有时间看卷二,所以不便评价。《用TCP/IP进行网际互连》Douglus.E.Comer 一共三卷,卷一讲原理,卷二讲实现,卷三讲高级协议。感觉上这一套要比Stevens的那一套要好,就连Stevens也不得不承认它的第一卷非常经典。事实上,第一卷即使你没有一点网络的知识,看完以后也会对网络的来龙去脉了如指掌。第一卷中还有很多习题也设计得经典和实用,因为作者本身就是一位教师,并且卷一是国外研究生的教材。习题并没有答案,留给读者思考,因为问题得答案可以让你成为一个中级的Hacker,这些问题的答案可以象Douglus索取,不过只有他只给教师 卷二我没有怎么看,卷三可以作为参考手册,其中地例子也很经典。如果您看过Qterm的源代码,就会 知道Qterm的telnet实现部分大多数就是从这本书的源代码过来的。对于网络原理的书,我推荐它,而不是Stevens的《TCP/IP祥解》。 《Operating System - Design and Implement》这个是讲操作系统的书,用Minix做的例子。作者母语不是英文,所以英文看起来比较晦涩。国内翻译的是 《操作系统 设计与实现》,我没看过中文版,因为翻译者是尤晋元,他翻译的 《APUE》已经让我失望头顶了。读了这本书,对操作系统的底层怎么工作的就会 有一个清晰的认识。 《Linux Device Driver》2e ,为数不多的关于Linux设备驱动程序的好书。不过内容有些杂乱,如果您没有一些写驱动的经验,初次看会有些摸不着南北。国 内翻译的是《Linux设备驱动程序》第二版,第一版,第二版的译者我都有很深 的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来 说已经超出了一大截。要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解 June 18 算法与数据结构自己为了一个程序写了三个版本,C#,C++,Perl。算法相同,但是使用的数据结构不同,速度之间有明显差异。
程序所要操作的对象,主要是以下这种类似的情况。
f e1 p(e1|f)
f e2 p(e2|f)
f e3 p(e3|f)
f e4 p(e4|f)
f e5 p(e5|f)
f e6 p(e6|f)
f e7 p(e7|f)
f e8 p(e8|f)
f e9 p(e9|f)
f e10 p(e10|f)
举例是f翻译成e1……e10的概率。
Perl版本采用Hashtable内嵌Hashtable,速度出奇的快,跑完整个1.2G的corpus,计算完所有的score。只需要35分钟。所需要存储大小为f+(e1+……+e10)+10*sizeof(double).而且hash的话,查找相应的翻译词对非常快。
C++版本采用STL map。那是我尚没有用hash_map。后来听xiaoyuan师兄说起 map是二叉树结构。存储是一样的,查找词对的话,速度明显有劣势。跑完整个corpus大约要2个半小时。以前听人说过,使用hash_map的效率要比map高4-5倍。看来不假。
c#版本使用generic Dictionary。本来欲使用Dictionary<string,Dictionary<String,double>>这种结构来存储翻译表。后来看到一篇文章说使用Dictionary<KeyValuePair<String,String>,double>这种结构更加efficient。所以我采用这种数据结构,发现这样load 翻译表就需要半个小时。而perl使用hashtable load翻译表也就30秒。而C++load 翻译表需要2分钟。首先这种存储结构需要我不停的new KeyValuePai然后将其加入到Dictionary种,代价很高。而且其需要的空间也很大10f+(e1+……+e10)+10*sizeof(double).如果corpus很大的话,使用hashmap节省的内存空间就是相当可观了。
所以以后写程序,一定要想好用什么样的数据结构才可以达到更好的效果,让程序跑的更快。 May 19 Smoothing of Language ModelSmoothing of Language Model 本文主要让读者快速学习Language Model。 语言模型最初在语音识别领域中应用,然后逐渐将起扩展到各个领域OCR、手写识别、统计机器翻译、拼写校正、信息检索等各个领域。 基本Language Model 主要涉及 (1) LM的定义. (2) N-gram作为LM的主要工具.下面所涉及都指N-gram (3) LM链式规则. (4) LM MLE(Maximum Likelihood Estimation). (5) LM 评估(Cross-Entropy, Perplexity). (6) 针对LM的数据稀疏,提出的各类平滑方法. (7) 平滑方法分类 (8) 其他平滑方法 (9) Good-Turing估计法 Reference: n Stanley F. Chen and Joshua Goodman (1998), An Empirical Study of Smoothing Techniques for Language Modeling. Technical Report TR-10-98, Computer Science Group, Harvard University, 1998. (推荐) n Chengxiang Zhai and John Lafferty. A study of smoothing methods for language models applied to ad hoc information retrieval. In Proceedings of the 24th Annual International ACM SIGIR Conference on pages 334--342, 2001. n Christopher D. Manning and Hinrich Schutze. Foudations of Statistical Natural Language Processing [chapter 7 Statistical Inference: n-gram models over Sparse Data]. The MIT Press. n Berlin Chen (2003). Statistical Language Modeling for Speech Recognition. PPT slide n 统计语言建模中的平滑技术(中科院计算所软件室LCC组).(推荐) n 刘挺. 语言模型:[网上讲义,http://ir.hit.edu.cn/download/NLP_3.pdf] n http://dingo.sbs.arizona.edu/~sandiway/ling538/(内含计算机语言学大量讲义) n Statistical Methods in Computational Linguistics(内含计算机语言学大量讲义). n The State of the art in Language Modeling powerpoint slides (附注:推荐先看《统计语言建模中的平滑技术》这篇ppt,该ppt以An Empirical Study of Smoothing Techniques for Language Modeling这篇论文为主要线索,然后覆盖了很多别的论文的内容.将这片ppt和An Empirical Study of Smoothing Techniques for Language Modeling这篇论文穿插看会省很多时间。如果遇到具体不明白的地方,可以参考别的paper或者ppt。) LM软件工具 CMU Statistical Toolkit documentation
August 11 是否有更改博客的必要! 博客中国的系统感觉非常不稳定,上午好不容易更新的主页和索引页,下午又回来了,气得我不行了,当然博客中国提供得服务还是很不错得。
我的主力Blog:(donews是写it类blog的一块沃土)
|
|
|||||
|
|