接着上文【基于统计的无词典的高频词抽取(一)——后缀数组字典序排序】,本文主要讲解高频子串抽取部分。 如果看过上一篇文章的朋友都知道,我们通过 快排 或 基数排序算出了存储后缀数组字典序的PAT数组,以及PAT数组内,每每两个子串的最大公共前缀数组LCP。 我们可以通过LCP来计算出一个字 ...
由于最近换了工作,需要熟悉新的工作环境,工作内容也比较多,所以一直没有更新文章,趁着今晚有空,就继续写写这系列的文章。 前面两篇,我们已经实现了后缀数组的排序,高频字串的抽取,也初有成效,如下图: 接下来,我们就继续对结果进行进一步的精确化,使用子串归并来实现: 首先,我先举一个可能不大适合的例子来大概解释一下什么叫做子串归并。假设,某个语料库中,统计到 你 出现了 次,而 你好 也刚好出现了 次 ...
2013-07-08 23:54 5 1660 推荐指数:
接着上文【基于统计的无词典的高频词抽取(一)——后缀数组字典序排序】,本文主要讲解高频子串抽取部分。 如果看过上一篇文章的朋友都知道,我们通过 快排 或 基数排序算出了存储后缀数组字典序的PAT数组,以及PAT数组内,每每两个子串的最大公共前缀数组LCP。 我们可以通过LCP来计算出一个字 ...
中文全文检索中很重要的一个环节就是分词,而一般分词都是基于字典的,特别是对于特定的业务,需要从特定的语料库中抽出高频有意义的词来生成字典。这系列文章,就一步一步来实现一个从大规模语料库正抽取出高频词的程序。 抽词的过程如下图: 本文先讲解“子串字典序排序”部分,也就是字典序排序部分。本文 ...
...
高频词提取(TF,Term Frequency),高频词指在文档中出现频率较高并且有用的词。 所以我们要做的工作有:加载数据,去除停用词,用字典统计高频词,输出top10的高频词。 运行结果如下: 这个代码需注意的地方有:将新闻复制粘贴到txt文件中注意需用utf8编码 ...
题目描述 有一个 1GB 大小的文件,文件里每一行是一个词,每个词的大小不超过 16B,内存大小限制是 1MB,要求返回频数最高的 100 个词(Top 100)。 解答思路 由于内存限制,我们依然无法直接将大文件的所有词一次读到内存中。因此,同样可以采用分治策略,把一个大文件分解成 ...
题目描述: 有一个 1GB 大小的文件,文件里面每一行是一个词,每个词的大小不超过 16B,内存大小限制是 1MB,要求返回频数最高的 100 个词。 分析与解答: 由于文件大小为 1GB,而内存大小只有 1MB,因此不可能一次把所有的词读入到内存中处理,需要采用分治的方法,把一个大的文件 ...
Given a non-empty list of words, return the k most frequent elements. Your answer should be ...