摘要: 《统计自然语言处理》 一些基础理论概念,涉及统计自然语言处理的基本概念、理论方法和新研究进展,内容包括形式语言与自动机及其在自然语言处理中的应用、语言模型、隐马尔可夫模型、语料库技术、汉语自动分词与词性标注、句法分析、词义消歧、篇章分析、统计机器翻译、语音翻译、文本分类、信息检索与问答系统、自动文摘 阅读全文
posted @ 2018-04-06 18:04 Tacey Wong 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 为一个信息流产品作数据抓取,其中数据清洗时必不可少的。其中有一个步骤就是清洗掉其中与内容无关的广告。文本通过语料库积累和NLP相关技术进行过滤,有些文字广告不过滤对产品影响也不大。有点儿麻烦的是其中的有些图片广告如果不过滤掉,在感官上会对产品造成很大的印象,为了解决这个问题,用了一些杂七杂八的方法, 阅读全文
posted @ 2018-04-06 16:35 Tacey Wong 阅读(2379) 评论(0) 推荐(0) 编辑
摘要: 第一部分:打好基础 + "第一章:欢迎进入软件构建的世界" + "第二章:用隐喻来更充分地理解软件开发" + "第三章:三思而后行:前期准备" + "第四章:关键的“构建”决策" 第二部分:创建高质量的代码 + "第五章:软件构建中的设计" + "第六章:可以工作的类" + "第七章:高质量的子程序 阅读全文
posted @ 2018-04-06 16:10 Tacey Wong 阅读(2228) 评论(0) 推荐(1) 编辑
摘要: + 在架构层将系统划分为多个子系统,以便让思绪在某段时间内能专注于系统的一小部分。 + 仔细定义类接口,从而可以忽略类内部的工作机理。 + 保持类接口的抽象性,从而不必记住不必要的细节。 + 避免全局变量,因为它会大大增加总是需要兼顾的代码比例。 + 避免深层次的继承,因为这样会耗费很大精力。 + 阅读全文
posted @ 2018-04-06 15:54 Tacey Wong 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 很多好的编程做法都能减轻你的大脑灰质细胞(指脑力)的负担。 + 将系统“分解”,是为了使之易于理解(“设计的层次”)。 + 进行审查、评审和测试正是为了减少人为失误。如果你从不犯错,就无须复审自己的软件。但要知道,人的智力是有限的,所以应和他人沟通,来提高软件质量。 + 将子程序编写得短小,以减轻大 阅读全文
posted @ 2018-04-06 15:43 Tacey Wong 阅读(658) 评论(0) 推荐(0) 编辑
摘要: 核对表(自说明代码) + 你的类接口体现出某种一致的抽象吗? + 你的类名有意义吗,能表明其中心意图吗? + 你的类接凵对于如何使用该类显而易见吗? + 你的类接囗能抽象到不需考虑其实现过程吗?能把类看成是黑盒吗? 子程序 + 你的每个子程序名都能准确地指示该子程序确切干些什么吗? + 你的各子程序 阅读全文
posted @ 2018-04-06 15:40 Tacey Wong 阅读(1253) 评论(0) 推荐(0) 编辑
摘要: 格式化的基本原理指出,好的布局凸现程序的逻辑结构。 对于C++,请仔细组织源文件中内容的次序为: 1. 文件的描述性注释 2. \ include文件行 3. 在多个类里使用的常量定义(如果文件里有多个类) 4. 在多个类里使用的枚举(如果文件里有多个类) 5. 宏函数定义 6. 在多个类里使用的类 阅读全文
posted @ 2018-04-06 15:34 Tacey Wong 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 你至少能在以下领域找到高质量的程序库 + 容器类 + 信用卡交易服务(电子商务服务) + 跨平台的开发工具,你可以让编写的代码在Windows、AppleMacintosh、XWindowSystem上都能运行一一一只需为各个环境重新编译一次源代码 + 数据压缩工具 + 数据结构与算法 + 数据库操 阅读全文
posted @ 2018-04-06 15:28 Tacey Wong 阅读(844) 评论(0) 推荐(0) 编辑
摘要: 术语“集成”指的是一种软件开发行为:将一些独立的软件组件组合为一个完整系统。 核对表(集成) 集成策略 + 该策略是否指明了集成子系统、类、子程序时应该采用的最优顺序? + 集成的顺序是否与构建顺序协调,以便在适当的时候准备好供集成的类? + 该策略是否易于诊断缺陷? + 该策略是否使脚手架最少? 阅读全文
posted @ 2018-04-06 15:22 Tacey Wong 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 核对表(配置管理) 概要 + 你的软件配S管理计划是否用于帮助程序员,并能将额外负担降至最低? + 你的软件配S管理方法是否避免了对项目的过度控制? + 你是否将一些变更请求聚成一组?无论采用非正式的方法(如创建一份未决更改的列表)还是更加系统的方法(如设立变更控制委员会)。 + 你系统地评估了每一 阅读全文
posted @ 2018-04-06 15:19 Tacey Wong 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 随着项目规模的增加,下面这些活动的工作量增长超过线性: + 交流 + 计划 + 管理 + 需求分析 + 系统功能设计 + 接口设计和规格说明 + 架构 + 集成 + 消除缺陷 + 系统测试 + 文档生成 在社交场合,活动越正式,你所穿的服装就会越不舒服(高跟鞋、领带等等)。在软件幵发领域里,项目越正 阅读全文
posted @ 2018-04-06 15:12 Tacey Wong 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 核对表(代码调整方法) 同时改善代码执行速度和规模 + 用査询表替换复杂逻辑。 + 合并循环 + 使用整型变量而非浮点变量。 + 在编译时初始化数据。 + 使用正确的常量类型。 + 预先计算结果。 + 删除公共子表达式。 + 将关键子程序代码转化为某种低级语言代码。 仅仅提高代码执行速度 + 在知道 阅读全文
posted @ 2018-04-06 15:03 Tacey Wong 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 在讨论编程的时候,没有“可能”一词的位置。——Tacey 如果对代码调整能否有助于提高某个程序的性能心存疑虑,按照以下的步 骤去做: 1. 用设计良好的代码来开发软件,从而使程序易于理解和修改。 2. 如果程序性能很差。 + a.保存代码的可运行版本,这样你才能回到“最近的已知正常状态”; + b. 阅读全文
posted @ 2018-04-06 14:59 Tacey Wong 阅读(470) 评论(0) 推荐(0) 编辑