这是我在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}$

在那之后我。。。卡住了。我想生成一个查询输出,打印出文档中找到的单词以及它的环境,但是我不知道如何连接查询方法的结果(文档的起始位置和结束位置)和反向索引,也不知道如何在她的环境中突出显示匹配的查询。因此,我确定了起点和终点,但我不知道如何在python中强调它?大胆点?在

我想到的结果是:###################

Your query:'chocolate pudding'

Results:

########

In a document with id: 1

yaddi yaddi yadda chocolate bla bla bla pudding

hocolate bla bla bla pudding yaddi yaddi yadda bla

我的意思是,我在阅读http://docs.python.org/2/library/string.html#string.center并认为在同一列中对齐找到的单词/查询可以达到这个目的。但我不知道如何做到这一点,所以任何一种暗示都是很好的,因为我并没有像理解python背后的逻辑那样陷入程序中,在这种情况下,教程是不公正的。(是的,我有一些python的书,但是他们已经扩展了处理这类问题的方法,可能考虑到这不是初学者的问题,但是我不知道从哪里开始,我可以使用什么程序。问题是,我们在大学里学习语言学理论和国际关系理论,但我们在实践中做了一些事情。)。在

谢谢!在

很抱歉我的人生结局是D

我忘了,一个不让这个话题变得模糊的代码:class inverted_index(dict):

def __init__(self,collection_of_docs):

for doc_id,document in enumerate(collection_of_docs):

for word,start,end in document.tokenize(): #form: [('sky', 0, 4)]

if word not in self:

self[word]={}

if doc_id not in self[word]:

self[word][doc_id]=[]

self[word][doc_id].append((start,end))

def query(self,query_string):

result={}

for query_term in re.findall(r'\w+',query_string.lower(),re.UNICODE):

for doc_id in self.get(query_term,{}):

if doc_id not in result:

result[doc_id]=self[query_term][doc_id]

else:

result[doc_id]=result[doc_id]+self[query_term][doc_id]

return sorted(result.items(),key=lambda e:-len(e[1]))

python列表反向查询_Python反向索引查询相关推荐

  1. python列表字典操作_Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结...

    创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...

  2. elasticsearch in查询_Python Elasticsearch DSL 查询、过滤、聚合操作实例

    技术博客: https://github.com/yongxinz/tech-blog 同时,也欢迎关注我的微信公众号 AlwaysBeta,更多精彩内容等你来. Elasticsearch 基本概念 ...

  3. python列表功能默写_Python list(列表)功能详解

    Python List append()方法 描述 append() 方法用于在列表末尾添加新的对象. 语法 append()方法语法: list.append(obj) 参数 obj -- 添加到列 ...

  4. python列表的操作方法_Python 列表(List)操作方法-经管之家官网!

    本文主要介绍了Python中列表(List)的详解操作方法,包含创建.访问.更新.删除.其它操作等, 下列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有 ...

  5. python列表取出元素_python中的列表,添加元素,获取元素,删除元素,列表分片,常用操作符...

    一. 创建列表,分为创建普通列表,混合列表,和空列表.其中混合列表是指string,int, float等都可以写在同一个列表里,空列表是指列表可以为空 二. 在列表添加成员方法 1. append( ...

  6. python列表切片图解_Python列表切片操作实例总结

    本文实例讲述了Python列表切片操作.分享给大家供大家参考,具体如下: 切片指的是列表的一部分. 1 基本用法 指定第一个元素和最后一个元素的索引,即可创建切片 .Python 会在到达指定的第二个 ...

  7. python列表比较方法_python列表常用方法

    list是一个类,用中括号括上,逗号分隔,元素可以是数字,字符,字符串,也可以是嵌套列表,布尔类型. 1.通过索引取值 li=[1,12,9,'age',['wangtianning',[19,'10 ...

  8. python列表增加一行_Python 列表中的修改、添加和删除元素的实现

    本文介绍的是列表中的修改.添加和删除元素.第一次写博客,如果本文有什么错误,还请大家评论指正.谢谢! 创建的列表大多数都将是动态的,这就意味着列表创建后,将随着程序的运行删减元素. 修改列表元素 修改 ...

  9. python列表生成字典_Python 列表生成式 字典生成式

    Python 列表生成式 & 字典生成式 通过生成式可以更加简洁地生成列表和字典 列表生成式 对比 直接生成数据后加入列表示例: user_list = list() for i in ran ...

  10. python列表浅复制_Python列表的深复制和浅复制示例详解

    一.深复制与浅复制 列表是Python中自带的一种数据结构,在使用列表时,拷贝操作不可避免,下面简单讨论一下列表的深复制(拷贝)与浅复制 首先看代码: l1 = [5, 4, 3, 2, 1] # 用 ...

最新文章

  1. flask 返回html json 并让ios 安卓接收
  2. 科大星云诗社动态20210422
  3. MySQL简单查询性能分析
  4. [react] React必须使用JSX吗?
  5. 如何制作频数折线图(详细)
  6. ege管理系统_网上人才管理系统方案
  7. 每日一记—获取Bing每日一图实现Android欢迎页(一)
  8. FFmpeg 视频处理
  9. 全球第一个完整的Angular 2.0系列视频教程,大漠穷秋
  10. matlab 网状图,Matlab如何画3维网状图
  11. python表达式中可以控制运算的优先顺序_在Python表达式中可以使用_______控制运算的优先顺序。...
  12. netty 多线程用一个长连接(channel) 发送消息 并发安全吗?
  13. Ubuntu系统中查看电脑驱动信息
  14. GE可能会出售其工业软件业务的股份
  15. 计算n阶乘中尾部零的个数
  16. Python调用安民威视、海康威视等网络摄像头方法(并实现KCF目标追踪和代码)
  17. php cms建站,phpcms建站系统介绍以及phpcms建站流程
  18. wltp和nedc续航差多少_WLTP续航和NEDC续航差别有多少?
  19. Swoft2.x 小白学习笔记 (二) --- mysql、redis
  20. TYVJ2032 「Poetize9」升降梯上

热门文章

  1. [数学学习笔记]导数的定义
  2. 图像算法学习 - 计算图像均方差(MES),峰值信噪比(PSNR)
  3. edp协议 netty_大牛轻松带你玩转Arduino智能硬件:EDP协议连接onenet平台
  4. 计算机edp测试是什么测试,五、信息工具--(一)EDP:电子数据处理
  5. 喜欢Photoshop的来看看啊
  6. 【网络安全工程师面试合集】—社会工程学到底是什么?
  7. c++ primer plus编程练习题参考第六章
  8. 【知识点和练习题】心田花开:二年级语文汉语拼音补习
  9. zyb的面试 字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛
  10. 偏微分方程matlab课件,MATLAB偏微分方程求解.ppt