【发布时间】:2014-10-23 15:59:56
【问题描述】:
我编写了一个小型“搜索引擎”,用于查找目录及其子目录中的所有文本文件 - 我可以在其中编辑代码,但我认为这对我的问题没有必要。
它通过以如下格式创建字典来工作:
term_frequency = {'file1' : { 'WORD1' : 1, 'WORD2' : 2, 'WORD3' : 3}}
{'file2' : { 'WORD1' : 1, 'WORD3' : 3, 'WORD4' : 4}}
...continues with all the files it has found...
根据收集到的信息,它会创建第二个字典,如下所示:
document_frequency = {'WORD1' : ['file1', 'file2'....],
'WORD2' : ['file1',............],
....every found word..........]}
term_frequency dictionary 的目的是保存某个单词在该文件中使用了多少次的数据,document_frequency 表示该单词在多少文档中已被使用。
然后,当给定一个单词时,它会通过tf/df 计算每个文件的相关性,并以文件的相关性降序列出non-zero 值。
例如:
file1 : 0.75
file2 : 0.5
我知道这是 tf-idf 的一个非常简单的表示,但我是 python 和编程的新手(2 周)并且对这一切都很熟悉。
对于冗长的介绍感到抱歉,但我觉得它与问题相关......这让我明白了:
如何制作一个将这些字典保存在文件中的索引器,然后让“搜索器”从文件中读取这些字典。因为现在的问题是,每次您要查找不同的单词时,都必须再次读取所有文件并一遍又一遍地制作相同的 2 个字典。
【问题讨论】:
-
我想你正在寻找
pickle你的字典。 -
@will 啊,我不知道为什么,但我无法访问 'docs.python' 上的任何页面,我的互联网运行良好,它只是讨厌 wesbite ......真令人沮丧:/
-
糟糕。好吧,看来我被打败了。对不起。
-
@Phillammon dw,非常感谢您的帮助,我会在其他计算机上尝试一下
-
如果有帮助的话,我已经为我的答案添加了一个实际答案。
标签: python search dictionary indexing