由於最近換了工作,需要熟悉新的工作環境,工作內容也比較多,所以一直沒有更新文章,趁着今晚有空,就繼續寫寫這系列的文章。 前面兩篇,我們已經實現了后綴數組的排序,高頻字串的抽取,也初有成效,如下圖: 接下來,我們就繼續對結果進行進一步的精確化,使用子串歸並來實現: 首先,我先舉一個 ...
中文全文檢索中很重要的一個環節就是分詞,而一般分詞都是基於字典的,特別是對於特定的業務,需要從特定的語料庫中抽出高頻有意義的詞來生成字典。這系列文章,就一步一步來實現一個從大規模語料庫正抽取出高頻詞的程序。 抽詞的過程如下圖: 本文先講解 子串字典序排序 部分,也就是字典序排序部分。本文使用兩種算法:快排 和 基數排序,兩種算法各有應用場景,快排在分析長度 萬字符串時所用的時間明顯低於基數排序,但 ...
2013-06-14 23:00 5 1563 推薦指數:
由於最近換了工作,需要熟悉新的工作環境,工作內容也比較多,所以一直沒有更新文章,趁着今晚有空,就繼續寫寫這系列的文章。 前面兩篇,我們已經實現了后綴數組的排序,高頻字串的抽取,也初有成效,如下圖: 接下來,我們就繼續對結果進行進一步的精確化,使用子串歸並來實現: 首先,我先舉一個 ...
接着上文【基於統計的無詞典的高頻詞抽取(一)——后綴數組字典序排序】,本文主要講解高頻子串抽取部分。 如果看過上一篇文章的朋友都知道,我們通過 快排 或 基數排序算出了存儲后綴數組字典序的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 ...