摘要:
浅识网页正文提取算法 因为要到一家互联网公司参加自然语言处理实习生面试,对于岗位要求中提到的工作内容--"网页正文内容提取"的相关知识进行了一下突击。重点看了一下网页正文提取所涉及到的各种算法,网上的内容很多,我只是看了其中一小部分,对各类算法做了一个简单的了解,不敢说对其做一个综述,只是以一个学习者的学习习惯来记录我对网页正文提取算法的浅认识,本文并不会对算法进行详细的步骤讲解,只提思路和思想。 为什么要进行正文提取? 对于一个单独的网页,往往最有价值的部分是网页的正文。然而就现在的大多数的网站的网页而言,不仅仅包含正文,网页标签等,其他的如广告,网页链接,插件等占据了网 阅读全文
摘要:
文件压缩与解压:霍夫曼编码 由于计算机的存储空间,文件传输时间成本等条件的限制,产生了对文件进行压缩从而减少文件大小的需求,各种压缩算法及其技术应运而生。其中的霍夫曼编码作为无损压缩当中最好的方法,受到了广泛的应用。 霍夫曼编码(Huffman Coding): 霍夫曼编码是一种无损压缩算法,于1952年由Divid A. Huffman在其博士论文《A Method for the Construction of Minimum-Redundancy Codes》提出。基本原理是利用二进制位代替原先字符进行存储,减少文件计算机存储的总位数从而减少文件的大小。下面用一个实例来说明其原理。... 阅读全文
摘要:
基于遗传算法的TSP问题求解(C) TSP问题: TSP(Travelling salesman problem): 译作“旅行商问题”, 一个商人由于业务的需要,要到n个城市,每个城市之间都有一条路径和其他所有的城市相连。现在要求从一个城市出发,穿越所有其他所有的城市,再回到出发的城市。 出于成本的考虑,要求商人走的路径的长短最短。问能否找到这样的一条路径? 这是个经典的NP-complete问题。 时间复杂度为θ(n!)。 随着城市的数量规模增大,在有限的时间内得不到问题的最优解。 我们只能退而求其次,在有限的时间内(或可接受的时间内)找到一个近似最优解,而且这个近似最优解和最优解的... 阅读全文
摘要:
分治思想:合并排序和快速排序 分治思想(Divide-and-conquer): 作为程序设计的一种方法,有时为了解决一个给定的问题,算法要一次或多次地递归调用自身来解决相关的子问题。这些算法通常采用分子的策略:将一个问题划分成n个规模更小并且结构和原问题相似的子问题;递归地解决这些子问题,然后再合并其结果,就得到原问题的解。 一般采用分治方法解决问题,按如下三个步骤不断循环:分解( Divide ): 将原问题分解成许多个规模更小并且和原问题结构相似的小问题控制(Conquer): 从小问题的层次上着手解决问题。(在递归层面上:1. 小问题如何解决 2. 做下一层递归的条件如何设置)合... 阅读全文
摘要:
冒泡排序(Bubble sort)和选择排序(Selection sort) 初看冒泡排序和选择排序不禁会问它们有什么区别? 的确, 它们的基本思想是一样的. 都是通过一轮的循环找到所要排序数中的最值(最大值或最小值), 然后将最值置于顶端. 它们的区别主要体现在对其他数(非最值)的处理上. 冒泡排序: 通过相邻的两个数的比较, 根据需要决定是否将两个数互换位置, 然后将比较往前(或往后)推进. 例如, 要求从小到大排序. 通过将两个数比较, 将较大的数置换到右边. 如此不断循环将得到最值. 选择排序: 和冒泡排序不同, 选择排序使用标记最值所在位置的方式, 查找最值过程中不移动数位置,... 阅读全文