Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的反向文档到文档(列表)_Python_Algorithm - Fatal编程技术网

Python中的反向文档到文档(列表)

Python中的反向文档到文档(列表),python,algorithm,Python,Algorithm,我正在分析Microsoft Academic API中的一些文本,我希望使用论文摘要,但摘要是以相反的文档格式给出的,即{word:[文档中单词出现的索引]}。我需要将此文件转换为常规文件。我有大约20000篇这样的摘要,我提出了一种方法,结果是api输出 doc_length = result['entities'][0]['IA']['IndexLength'] #provided in the api output variable - result output_list = [0]

我正在分析Microsoft Academic API中的一些文本,我希望使用论文摘要,但摘要是以相反的文档格式给出的,即{word:[文档中单词出现的索引]}。我需要将此文件转换为常规文件。我有大约20000篇这样的摘要,我提出了一种方法,结果是api输出

doc_length = result['entities'][0]['IA']['IndexLength'] #provided in the api output variable - result
output_list = [0] * doc_length
inv_doc = result['entities'][0]['IA']['InvertedIndex']
for key in inv_doc.keys():
    for index in inv_doc[key]:
        output_list[index] = key
上述方法的时间复杂度为*M,其中N是文档数,M是每个文档的长度

我的问题是,就时间复杂性而言,我能做得更好吗?

你不能做得更好 至少就渐进复杂性而言,您的复杂性是最优的。ONM是输出的大小。除非输入已经是输出的一部分,否则不可能以比ONM更快的速度输出大小为ONM的内容,这里的情况并非如此


参见此,考虑输出占用内存。要获得输出,如果没有其他内容,则必须访问所有内存。这本身就需要ONM时间。

那么下限确实是ONM?我们能证明吗?不要求证明只是一个直观的方向超出了你所写的应该是完整的。我会考虑我写了一个证明,因为这是一个非常基本的事情,写X的事情至少需要X次。我在下面写了一个更详细的解释。要清楚的是:上面的代码只处理一个文档?当你只处理一次每个文档时,你怎么能期望做得更好呢?顺便说一句,我们可以一起处理多个文档。是的,这只适用于一个文档。