我在寫一些Python代碼來實現我最近學習的一些概念,這些概念與倒排索引/發佈列表有關。我對Python很陌生,在某些情況下對於它的效率有些麻煩。Python倒排索引效率
理論上,產生一組文檔的倒排索引d,每一個獨特的ID doc_id
應包括:
- 解析/在d執行每個文檔的詞法分析
- 卸下停用詞,執行所產生等
- 創建所有
(word,doc_id)
雙 - 列表進行排序,列表
- 凝重複到
{word:[set_of_all_doc_ids]}
(反向索引)
步驟5通常是由具有包含與元數據字(詞頻,字節偏移)和指針的貼子列表的字典進行(文件清單它發生在) 。發佈列表經常被實現爲允許有效的隨機插入的數據結構,即鏈接列表。
我的問題是,Python是一種更高級別的語言,直接使用內存指針(因此鏈接列表)的東西似乎超出了範圍。我在分析之前進行了優化,因爲對於非常大的數據集,已經知道效率必須最大化,以保留在合理時間內計算指數的任何能力。
這裏有幾個關於Python倒排索引的文章,像MY當前的實現一樣,它們使用映射鍵來映射列表(或集合)的字典。有人期望這種方法具有與允許直接編碼指向鏈接列表的指針的語言相似的性能嗎?
當你說鏈表是不可能的蟒蛇,這是完全錯誤的。你的意思是指針算術的機會嗎? – forivall 2012-03-23 01:28:00