这是我在SO上的第一篇文章,如果我的问题有点小,我会提前道歉,我对编程世界还比较陌生,我选择python作为我第一个“严肃的”OOP语言。我搜索了一下SO档案,但没有找到任何与我完全相关的问题。好吧,长话短说,问题是:
我在做反向索引。我在网上找到了一些教程和提示,我做了以下几点:类文档,用于词干的词干,并使用词干的起始位置和结束位置返回单词。
类的反向索引,它获取文档的集合(列表中的列表),将它们标记化,并以
{'word':{document_id:(start_pos, end_pos)}}
像
{'cloud': {0: [(5, 10)]}, 'document': {1: [(11, 19)], 2: [(22, 30)]} ...}。
(我在SO topic的帮助下做了document_id,遍历了一个文档的枚举集合。关于嵌套字典,我是业余制作的,比如:if nested_dict not in existing_dict:
existing_dict[nested_dict] = {}
当我阅读stackowerflow时,我注意到“defaultdict”数据类型是实现这一点的更好方法,但我还没有找到“collections”模块)。
回到正轨:在反转的索引中,我做了一个查询方法(只是OR运算符的一个版本),它将字符串作为一个查询,如果这个字符串与我的反向索引中的键/项匹配,则返回一个词的起始点和结束点的document_id,例如:
^{pr2}$