我在写一些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