NLP-阅读理解:数据集介绍及预处理【SQuAD、DuReader】

一、SQuAD数据集

二、DuReader数据集

1、DuReader数据集介绍

DuReader,从名字(Du和Reader)就可以看出来,是百度整理出来的阅读理解数据集。

DuRader数据集由一系理的4元组构成,每个4元组 { q , t , D , A } \left\{ q, t,D,A \right\} {q,t,D,A} 就是一条样本,其中, q q q 表示一个问题, t t t 表示问题的类型, D D D 表示问题相关文档集合, A A A 表示一系列答案(由人手工标注)。

它相较于之前阅读理解数据集,主要有三个特点:

  1. 数据来源更加贴近实际;
    问题和文档均来自于百度搜索和百度知道,而答案是人工手动生成的,因此数据集更加切合真实场景。
  2. 问题的类型较丰富;
    DuReader数据集的问题类型包括实体型(Entity)、描述型(Description)和是非型(Yes/No);其中每种类型还分为事实性(Fact)和观点型(Opinion)。对于实体型问题,答案一般是单个实体或一系列实体;对于描述型问题,答案则通常由几句话的摘要组成,一般包括“如何”或“为什么”的问题、两个或多个对象的比较问题以及询问商品的优缺点的问题等;对于是非型问题,答案应该是肯定的或否定的,并提供支持依据。具体问题形式如下图所示。
    在这里插入图片描述
    各类型问题在数据集中所占比重如图2所示。目前传统的方法基本上都采用span切割的方式,即从单个文档中切割出某个字符串片段来回答问题的方法。而这种span切割的方法对实体型问题可能具有较好的结果,但是对于是非型问题和观点型问题就不那么合适了(特别是当答案涉及到从几个不同文档中提取时)。从图2中我们可以发现,数据集中描述型和是非型的问题共占了68.1%。因此该数据集对于目前方法来说是一个挑战,想要取得较好的结果,就要提出更加先进的模型算法。
    在这里插入图片描述
  3. 数据规模大。
    DuReader数据集共包含了20万个问题、100万个文档和超过42万个人类总结的答案。数据规模十分庞大,足够研究者做任何实验。在DuReader数据集中,文档平均长度为396个词,答案的平均长度为4.8个词,答案的平均长度为69.6个词,并且每个问题一般对应5个文档,每个文档平均有7个段落。

DuReader数据集: http://ai.baidu.com/broad/download?dataset=dureader 上下载。

  • DuReader_v2.0_raw.zip(1.3G):是原始的数据集;
  • DuReader_v2.0_preprocessed.zip(2.8G):是经过百度预处理之后的数据集。

原始数据集结构

{
	'documents': [
		{
			'is_selected': True or Flase,
			'title': ' String',
			'paragraphs':[ ' String', ' String', ' String' ]
		},
		{
			'is_selected': True or Flase,
			'title': ' String',
			'paragraphs':[ ' String', ' String', ' String' ]
		}
		...
	],
	'answers': [' String', ' String', ' String' ],
	'question’: ‘String',
	'question_type': DESCRIPTION or ENTITY or YESNO,
	'fact_or_opinion': FACT or OPINION,
	'question_id': 191572
}

以下是 dureader_raw/raw/devset/search.dev.json 文件中的一行数据:(为了分析方便,将数据按照json格式进行换行)

{
	"documents": [
		{
			"is_selected": true, 
			"title": "2017年好看小说排行榜_小说推荐吧_百度贴吧", 
			"paragraphs": [
				"2017年好书排行榜。读书十几年,晒晒让我沉醉的那些书单本书单没有主次,不要在意序号。1.《将夜》 作者:猫腻(起点白金作家) 简介:与天斗,其乐无穷。 故事概要: 主角宁缺带着从死人堆中挖出来的小侍女桑桑,报仇雪恨的故事。 推荐理由:一.文笔牛逼:猫腻的文读者很舒服,不喜欢小白文的人无法错过的好书。二.剧情牛逼:猫腻对文章的构思非常巧妙,不看到最后,你根本不知道结局会怎样。三.人物牛逼:莫山山与叶红鱼,是故事中宁缺的两位红颜知己。四.最后她们没有和宁缺走在一起,是一件自认为很遗憾的事。(嗯……这是以男人的角度。)无法让人忘怀的地方:书院。 书院有夫子,喜欢书中一句话,世间无夫子,万古如长夜。(希望没有记错。) 书院有大师兄,大师兄李慢慢为人仁爱,曾因为君子可以欺之以方困扰,后在宁缺受到危险时,终于学会了杀人。 书院有二师兄,二师兄君陌,一直以小师叔为榜样的君陌,一直想把号称天下第一剑的柳白斩于剑下。书院有三师姐,三师姐余帘,额……突然想到既然是推书,就不能写太详细,毕竟透剧会被人弹丁丁。咳咳总而言之,这是一本不容错过的好书。 2.《择天记》 作者:猫腻too(嗯……别误会,我只是想表达也是猫腻。) 相对将夜,这是一本正在写的新书,值得一看。 最近还在影视改编,据说主角陈长生,饰演是鹿晗,我也很喜欢鹿晗的小清新,但是我觉得演陈长生气质方面两种美,有点毁剧,当然还没上映,如此谈论未免为时尚早。 3.《冒牌大英雄》 作者:七十二编。这本书,猥琐流的神书,背景机甲宇宙什么的。写这本书的作者一本封神,所以这本书真的非常牛逼。而且这本书已经完本。喜欢猥琐流的,本人强烈推荐看这本书,超赞。 4.《无限恐怖》 作者:zhttty 无限流开山之祖的神书。 喜欢无限流的,不容错过。 5.《恐怖搞校》作者:大宋红福坊这本书将无限流和校园相结合,非常有创意。 6.《大国医》 作者:美味宋罗汤 这是一部历史类的书,也是我唯一看过的历史类。 当然如果《寻秦记》算历史类的,那么这本是第二本。 讲述主角洗了糊涂成为一代国医的故事。 文风幽默风趣,很好看。 红颜知己也多,啧啧。 7.《龙魔导》 作者:想屠神的疯子 作品简洁:什么?你要考哈弗? 当其他童鞋正忙备战高考的时候。 李山已经学会了精神力的发散运用。李山:“高考很难么?这么多答案让我筛选……” 什么?你要结婚了? 当其他童鞋正为求得白富美沾沾自喜时。 李山在头疼,今天去找精灵女友还是猫女又或者…… 李山:“不要这么看着我,我很纯洁的,就拉拉小手。”故事概述:主角李山在一款叫做凯撒大陆的游戏中赢得了一台虚拟现实游戏仓。但是却发现使用这台游戏仓后,在游戏中获得的属性加成竟然影响着现实世界。后来在主角的一再证实下,终于证明他参加的并不是游戏,而是另一个现实世界。至此,主角潇洒的一生就此起航。 推荐理由:1.文笔不错,刻画生动,有将夜之风。2.人物不错,主角是一位拥有正义感的猥琐男。(丫的这个评论我笑了。)3.剧情不错,进展有些慢,但是也有一种娓娓道来的感觉,很喜欢。 先推荐这么多(未完待续)",
				"大家喜欢这个书单的话就顶高高,我继续更新,哇哈哈哈。(还有许多珍藏的说~)", 
				"我靠,我怎么看到写的书了,楼主慧眼如炬,我也觉得《将夜》写的不错。", 
				"书名:《第十三座消失的城》作者:城渡文案:她是瘾城的守护者,也是半生花店的甩手掌柜,她带着花店四处游历,走走停停,为瘾城招揽能人异士,也借此从无名转而盛名,想起了万年前的记忆,重遇了那方幽静。 她的半生花店有无数世间买不到或不曾见过的花种,她的花只卖给有缘人。来到她花店的人从不知她叫什么,只是世人皆称小妖,便以小妖之名而盛,皆不知她本为妖,数以万年。 她总是淡然处之,有人问起她:\"小妖,何事才能掀起你的波澜?\" 答之:”人生除死之外,一切都很简单。“而她,已死过一次。网站链接:http://www.s4yd.com/modules/article/articleinfo.php?id=143", 
				"这栋楼怎么可以塌了,顶起,吼嘿吼", 
				"将夜这本书,就像看到一个漂亮的苹果,咬了一口发现美味的很,于是一口吞了剩余的,却发现全是虫子。文青、造作到让你反胃,为了凑字更是啰里啰嗦刻意拖慢剧情。这本书比喻一个人的话,就像一个夹着腿内八字走路的男人,简直倒胃口!", 
				"这个贴吧是被腐女和基佬攻占了么", 
				"书不错呦,还有没有了!!!!!", 
				"千苒君笑的《凤求凰》就写不错还有部天衣有风写的《凤囚凰》这两部都可以看看个人比较喜欢", 
				"继续前,感叹下第七本已经烂尾了……这心情……8.《寻秦记》作者:黄易故事简述:第一本穿越小说(可能是第二本,咳咳……或者第三本,但反正很早。)讲述主角项少龙,一个特种兵回到大秦王朝还未统一天下的时候。故事的内容就如作者名字的第一个字一般,很x故事逻辑严谨,剧情跌宕起伏,每一个女主人公刻画的都非常深刻。9.《仙鸿路》"
			]
		}, 
		{
			"is_selected": false, 
			"title": "小说排行榜,小说排行榜2017前十名-搜狗小说", 
			"paragraphs": [
				"玄幻小说排行榜  奇幻小说排行榜  武侠小说排行榜  仙侠小说排行榜  都市小说排行榜  悬疑小说排行榜  游戏小说排行榜  竞技小说排行榜  历史小说排行榜  军事小说排行榜  科幻小说排行榜  灵异小说排行榜  古言小说排行榜  言情小说排行榜  穿越小说排行榜  总裁小说排行榜  青春小说排行榜  耽美小说排行榜"
			]
		}, 
		{
			"is_selected": true, 
			"title": "2017最好看的穿越小说 穿越小说排行榜前10名", 
			"paragraphs": [
				"近年来,穿越小说、穿越剧以时尚、前卫的姿态进入到公众的视野当中,并且席卷了中国的电视荧屏,形成一股强烈的“穿越”之风。这么多的穿越小说中,好看的完结穿越小说有哪些?以下是小编推荐给大家的关于2017最好看的穿越小说,来看看有没有你喜欢的吧!", 
				"一: 【我们住在一起】 投资银行的简称,并不是真的银行,是券商的说,一般就是给一些发展还不错的公司做做上市啦、再融资啦、发行债券啦、并购重组啦之类的玩意儿,包括了北漂,合租,职场(投行),隐身富二代,女菜鸟变业务精英等职业。 二: 【月都花落,沧海花开】 作者:君子以泽 此书古风韵味十足,像是一部“诗作”。结局中性,不喜也不悲,却让人哭得眼肿。明月和沧海相互倾慕,却只能遥遥相望,真真让人唏嘘。薇薇最后闭眼前看到自己变年轻又见到师尊的幻境,兴许也是薇薇和胤泽互相的思念而产生的。期待薇薇胤泽来世再续前缘,期待沧海的花快开。 三: 【天定风华】 作者:天下归元 【天定风华】1、2、3讲述的是君珂的故事,又名【天定风流】,【千金笑】。【天定风华】4、5、6讲述的是太史阑的故事,又名【凤倾天阑】。君珂与太史阑为好友,同时穿越,降落地点不同,穿越后10年两人才相遇。典型的穿越剧,精彩又好看。 四: 【寻找爱情的邹小姐】 作者: 匪我思存 重量级言情作家匪我思存的大作【寻找爱情的邹小姐】延续其一贯的“虐恋”风格,讲述了一堆都市爱人的苦情恋。作品中的故事经历跌宕起伏,主人公更是命运多舛,其中的爱情故事更是有很多传奇的结局。每一对恋人的爱情都是不一样的,都是独一无二的,每个人只有在自己的感情里才能有自己真实的感受。只要心中有爱,爱就无处不在。就像书中表达的,我们为了爱奔波劳碌,甚至终其一生的追求爱情,然而在百转千回、峰回路转之后,我们期许的爱情其实一直在那里。",
				"五: 【应许之日】", "作者: 辛夷坞", 
				"【应许之日】是以封澜这一大龄女起伏不断的生活为主线展开的描述。封澜和她的男友分手之前夕迎来的是男友和其他女人的结婚请柬。然而作为一个餐厅的老板娘,封澜竟然喜欢上餐厅里的服务员丁小野,然而丁小野也不爱她,他是一个猎手,亲手捕获鲜活的猎物,封澜就是他的猎物。而读完【应许之日】,并没有阴险,没有所谓的捕获,而是有一种很暖的感觉。作者辛夷坞尝试过多种风格的写作,而此部【应许之日】更是一部献给每个为爱执着人的一大力作。", 
				"六: 【星光的彼端】", 
				"作者: 青罗扇子",
				"范冰冰说,一个人的诋毁和赞美同样多;千颂伊,不会陷入嫉妒的深渊,不会自己落水了还要拉上别人共同踏入泥潭。深谙电影与文学中国女作家青罗扇子,文风以大气励志,时尚深刻,【星光的彼端】也正是延续了这样的文风,并且文中多体现的是如何真正理解爱,如何去爱别人。文中主人公宋微与黄锦立两人之间爱恨纠结,涉及名利、事业、女性自立自强。“一个女人只会伤心三次。第一次,她想要的是他的爱,但不被公平对待;第二次,她退而求其次,只想要一份尊重,却被践踏努力;到了第三次,她已经什么都想不要了——因为这次,她只为自己加冕为王。多么富有哲理。一个不懂得如何去爱的人,是否还能有机会再爱一次?青罗扇子说:有时爱一个人,不是因为他给了你幻想,而是你明白了自己的尊严与骄傲。",
				"七: 【他来了,请闭眼】", 
				"在继【如果蜗牛有爱情】之后,此部作品是丁墨再次创作出的超人气甜蜜爱情故事,作为网络写手,他独特的甜宠悬爱风格吸引了一大批读者,其文思巧妙、其开篇就给人一种【神探夏洛克】的感觉,因为薄靳言和傅子遇丝毫不逊于卷福和花生。作品中对大神薄小猫才华横溢与智慧过人的描写以及其骄傲、盛气凌人的描写固然入木三分,情绪与性格等内在描写非常到位,但是,在看过作品后最让人动容的是大神对瑶瑶毫无保留的、纯真热烈的、至死不渝的爱。", 
				"八: 【何以笙箫默】", 
				"电视剧的热播让这部剧面向了更多人群,此剧的原著小说感觉名字深奥而又极富玄机,蕴含着何以琛对默笙没有说出口的爱恋。在小说里,默笙的名字来自徐志摩的【再别康桥】 ,而默笙,可理解为沉默的箫笙,也代表着默默的爱意。小说从头看到尾或许会感觉这个故事很老套,但是却真正体现了有些事情只能意会不能言传。只有真正理解了主人公之间的感情,才觉得即便老套的故事也能体现出不一样的内心深处的感情。", 
				"九: 【岁月是朵双生花】", 
				"作者: 唐七公子", 
				"读唐七的小说,往往在一开始找不到感觉,似乎它并不是多么的引人入胜,还感觉作者的描写非常啰嗦,但是,伴随着阅读的深入却会感觉此书越来越有意思,是一部非常不错的作品。该小说通过讲述女主角怀孕以后,由于车祸问题失忆了的故事。女主人公在失忆以后有了新的喜欢的人,但并没有得到。她有一个非常可爱的孩子,但是在发生车祸失忆之后却不记得孩子的爸爸。经过很多波折,小说有了一个完满的结局那便是主人公原来的爱人和记忆都回来了。", 
				"十: 【夏有乔木 雅望天堂】", 
				"籽月总是把爱情写得如此之抵死纠缠,甚至感觉残忍不堪,正因为其残忍,其结局的不完美,才容易引起人们的深思。在小说中,每一个人都付之一炬,最后全部坍塌。正因为此,所谓的爱坍塌了、信仰坍塌了,甚至付出了生命。一直以来,籽月作为国内一线青春畅销书的新锐作家,最擅长用最朴实的文字来塑造丰满的人物形象,她让我们感觉青春要用最真挚的情感来纪念。此小说非常值得一遍遍的去阅读,因为每一遍都有不同的感受,甚至读过后的感动会让人泣不成声。", 
				"十一: 【忘川】", 
				"此时在经过作者时隔六年的创作之后中终于完结,这是一部持续了六年的武林传奇,而作者顶着的“武侠言情天后”的标签,笑言:“纯粹是为了图书上架时方便分类而已。【忘川】承载了太多作者与读者的期待,该作品的诞生也极具戏剧性。", 
				"十二: 【满满都是我对你的爱】", 
				"作者: 顾西爵", 
				"【满满都是我对你的爱】里的一些小段子便足以让网友为之疯狂,被万千网友誉为\"最萌最有爱,百看而不厌\"。【满满都是我对你的爱】最早是在2013年7月中旬第一次登载,便产生了超强的口碑效应,所以辛夷坞在读了本书后欢笑推荐,和安东尼【这些都是你给我的爱】一样温暖有爱。", 
				"十三: 【欢喜记】", 
				"作者: 石头与水", 
				"与【千金记】是姐妹篇,此小说说明了一个很重要的道理便是可怜之人必有可恨之处。因为憋屈而死的赵长卿在重生之际,下定决心决定不再活的那样令人可怜可恨了。此文依然是深受读者喜爱的重生文,依然是以东穆江山为背景。", 
				"十四: 【金陵春】", 
				"周少瑾重生了,前世背叛她的表哥程辂自然被三振出局了,可她还有程许,程诣,程举等许多个表哥……这是个我与程家不得不说的故事!只看内容简介便知道此书又是一个重生的故事,重生的故事不管如何描述总是引来好奇的读者一观。"
			]
		}, 
		{
			"is_selected": true, 
			"title": "2017年第一季,超好看的小说大盘点", 
			"paragraphs": [
				"文章 阅读", 
				"2017年的第一季度刚刚过去,大家在这三个月里有读到什么好书吗?培根曾说过:“孤独寂寞时,阅读可以消遣。高谈阔论时,知识可供装饰。处世行事时,知识意味着才干。”不论你是一个尚且在学海中遨游的学生,还是一个已经工作多年的成熟社会人,读书从来不该带有功利的意味,而是该从中看到世界万事万物的运行轨迹,也该从中体味生活和成长进步。",
				"一年的52周里,即使每周坚持阅读一本书,总共也不过52本而已,更遑论现代人一直有着拖延症的通病,我们阅读的书籍实在太少了。在浩如烟海的出版物之中,小编为你精心挑选了几本极富趣味性、又不乏内涵的小说,希望能够让各位在有限的阅读时间里享受到更多的乐趣。", 
				"《大唐悬疑录:长恨歌密码》 by:唐隐", 
				"作品简介:杨贵妃究竟死于马嵬驿,还是逃生日本?", 
				"大诗人白居易根据杨贵妃的秘闻写就名篇《长恨歌》,不想竟引来杀身之祸。各路僧、道、官、匪先后出动,齐齐盯上了《长恨歌》中的明文暗码……", 
				"推荐理由:《大唐悬疑录》系列中,女神探裴玄静踏入了一个关乎国家兴衰的阴谋杀局之中,她历经艰辛,只为找到最终的真相。她曾说“身为大唐的子民,我知道大唐的荣光从来不是幻觉。我相信,并且愿意用生命去维护它”。", 
				"这个故事中有为了天下人至死不渝的信仰,有为了爱人出生入死的爱情,有为了友人以一己之力对抗朝廷的大义,也有一个繁华落尽、残阳如血的大唐,推理解谜的同时,也展现了说不尽的人间百态、道不完的苦乐辛酸。", 
				"《风雪追击》 by:东野圭吾", 
				"作品简介:以暴风雪中的滑雪场为背景,讲述一个突然被指认为杀人凶手的男孩,为了洗清嫌疑而进行自救的故事。作者将缜密的故事逻辑与快节奏的滑板运动结合起来,带来一种奇特的、充满紧张感的阅读体验。没有血腥暴力,却让人陷入人性的思考,直戳人心:如果有一天,毫无征兆地被指控为凶手,你该怎么办?", 
				"推荐理由:东野圭吾毫无争议是中国读者最为喜爱的悬疑大师,但看图书销售网站排行榜上永远挂着他一本又一本的小说便可下此结论。也许东野圭吾的文笔不是最佳,也许他的推理剧情显得过于简单,但他着实是一个讲故事的高手,他的书简单易看,真真正正称得上是让人想一口气看完的小说,无疑会给读者带来畅快淋漓的阅读体验。", 
				"《草原动物园》 by:马伯庸", 
				"作品简介:这是一位传教士带着“半个动物园”勇闯蒙古草原的奇幻故事。光绪末年,在京城的美国传教士柯罗威,突发奇想要去赤峰修建一座草原动物园。他带着雄狮、大象、鹦鹉、蟒蛇以及一对虎纹马、五只狒狒一起奔赴草原。草原上,盗梦少女预知未来、通晓动物语言的少年涅槃重生、神秘的狼变月夜现身。这是一部关于信仰的动物寓言,一场巨大的变革在勇士之地上演,一段史诗般的全新冒险自此展开……", 
				"推荐理由:这是一场奇幻的梦境。梦境被心理学家视为对现实的逃避与反击,其本身仿佛就带着某种奇幻又虚无缥缈的意味,梦境也是文人想象力的源泉,在梦境之上构筑起的小说王国亦能够带领我们逃离现实世界。这种描写寻梦之旅的小说外国有《牧羊少年奇幻之旅》,我们有马伯庸的新书《草原动物园》,且看看马伯庸如何带我们走入这场梦境。",
				"《有匪2:离恨楼》 by:priest", 
				"作品简介:周翡没有等来段九娘,却一头撞上青龙主郑罗生。\"南北双刀\"传人、\"山川剑\"后人、芙蓉神掌……竟全在衡山脚下这一间小小的\"三春客栈\"凑齐了。\"山川剑\"亡故,一把剑鞘却被多方争夺;忠武将军死后,家眷南渡时遭北斗追杀;齐门生变,至今下落不明;而衡山这样大的门派,竟也人去楼空……然而洗墨江边冲天的火光,已经让周翡来不及细想这一切了。二十年了,风雨飘摇的夹缝里,这一隅的桃源,真能长久吗?", 
				"推荐理由:也许由于对坚强勇敢的女孩子的偏爱,《大唐悬疑录》中的裴玄静与《有匪》中的周翡都曾让小编为之欢呼与落泪。这是一个江湖故事,也是一个浑身傲骨的女孩子如何在乱世之中摸爬滚打的故事。那个曾经不知天高地厚的水草精,终究长成了一个鬓似鸦羽、眉目宛然的红衣女侠,也终是在冷铁卷刃前得以窥见了天光。", 
				"声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。"
			]
		}, 
		{
			"is_selected": false, 
			"title": "2017年最好看的小说。推荐下。_百度知道", 
			"paragraphs": [
				"女人30+保鲜攻略 作者: 蓝一薰 简介: 有人说,30几岁是女人最具风采、最懂生活的年龄。因为她们大多已经为人妻为人母,褪去了青涩、任性和幼稚之后,更加懂得珍惜生活,她们开始客观审视自己的过往,同时理性地规划着自己的未来。也有人说女人30岁开始,就成了凋萎的年龄,就像一朵鲜花有花期一样,虽然它有开得最美的时候", 
				"楼主,请问是言情的还是耽美的!", 
				"prist《默读》"
			]
		}
	], 
	"entity_answers": [
		["将夜", "择天记", "冒牌大英雄", "无限恐怖", "恐怖搞校", "大国医", "龙魔导"], 
		["长恨歌密码", "风雪追击", "草原动物园", "离恨楼"], 
		["我们住在一起", "月都花落", "沧海花开", "天定风华", "寻找爱情的邹小姐", "应许之日", "星光的彼端", "他来了", "请闭眼"], 
		["金陵春", "女人30+保鲜攻略", "凤倾天阑", "寻找爱情的邹小姐", "忘川", "将夜", "凤囚凰", "无限恐怖", "有匪2:离恨楼", "夏有乔木 雅望天堂", "他来了,请闭眼", "千金笑", "牧羊少年奇幻之旅", "沧海花开", "龙魔导", "月都花落", "草原动物园", "凤求凰", "仙鸿路", "岁月是朵双生花", "有匪", "离恨楼", "千金记", "我们住在一起", "天定风流", "神探夏洛克", "择天记", "恐怖搞校", "风雪追击", "满满都是我对你的爱", "如果蜗牛有爱情", "天定风华", "第十三座消失的城", "星光的彼端", "何以笙箫默", "大唐悬疑录", "长恨歌密码", "欢喜记", "大国医", "请闭眼", "大唐悬疑录:长恨歌密码", "他来了", "默读", "月都花落,沧海花开", "应许之日", "寻秦记", "再别康桥", "冒牌大英雄"]
	], 
	"question": "2017有什么好看的小说", 
	"answers": ["1.《将夜》2.《择天记》3.《冒牌大英雄》4.《无限恐怖》5.《恐怖搞校》6.《大国医》7.《龙魔导》。", "《大唐悬疑录:长恨歌密码》、《风雪追击》、《草原动物园》、《有匪2:离恨楼》。", "我们住在一起、月都花落,沧海花开、天定风华、寻找爱情的邹小姐、应许之日、星光的彼端、他来了,请闭眼。"], 
	"question_type": "ENTITY", 
	"question_id": 186572, 
	"fact_or_opinion": "OPINION"
}

原始数据结构如上:

  • question_id表示问题的编号;
  • fact_or_opinion表示问题是属于事实类型还是观点类型;
  • question_type表示问题的大类型,属于描述型、实体型还是是非型;
  • question表示所述问题,是一个字符串;
  • answers表示答案集合,是一个list类型,里面包含0个、1个或多个字符串,每一个字符串表示一个答案;
  • documents表示文档集合,是一个list类型,里面包含多个字典型元素,每一个字典型元素包含一个文档的所有信息,如下,:
    • is_selected表示该篇文档是否包含答案,是一个bool类型,
    • title表示该篇文档的标题,是一个字符串类型,
    • paragraphs表示该篇文档中的具体内容,是一个list类型,里面包含多个字符串,每一个字符串表示该篇文档的一个段落。

预处理过数据的数据结构

{
	'documents': [
			{
				'is_selected': True or Flase,
				'title': ' String',
				'paragraphs':[ ' String', ' String', ' String'	],
				'segmented_title': [fenci],
				'most_related_para': 0 or 1 or 2…..
				'segmented_paragraphs':[ [fenci], [fenci], [fenci] ]
			},
			{
				'is_selected': True or Flase,
				'title': ' String',
				'paragraphs':[ ' String', ' String', ' String'	],
				'segmented_title': [fenci],
				'most_related_para': 0 or 1 or 2…..
				'segmented_paragraphs':[ [fenci], [fenci], [fenci] ]
			},
			...
	],
	'answers': ['String', 'String', 'String'],
	'question': ‘String’,
	'question_type': DESCRIPTION or ENTITY or YESNO,
	'fact_or_opinion': FACT or OPINION,
	'question_id': 191572,
	'segmented_answers': [[fenci], [fenci], [fenci]],
	'fake_answers': [‘String’]
	'answer_spans':[[int,int]]
	'segmented_question': [fenci],
	'match_scores':[float32],
	'answer_docs':[int]
}

以下是 dureader_preprocessed/preprocessed/devset/search.dev.json 文件中的一行数据:(为了分析方便,将数据按照json格式进行换行)

{
	"documents": [
		{
			"is_selected": true, 
			"title": "2017年好看小说排行榜_小说推荐吧_百度贴吧", 
			"most_related_para": 0, 
			"segmented_title": ["2017", "年", "好看", "小说", "排行榜", "_", "小说", "推荐", "吧", "_", "百度贴吧"], 
			"segmented_paragraphs": [
				["2017", "年", "好书", "排行榜", "。", "读书", "十", "几", "年", ",", "晒", "晒", "让", "我", "沉醉", "的", "那些", "书单", "本", "书单", "没有", "主次", ",", "不要", "在意", "序号", "。", "1", ".", "《", "将夜", "》", "作者", ":", "猫腻", "(", "起点", "白金", "作家", ")", "简介", ":", "与天斗", ",", "其乐无穷", "。", "故事", "概要", ":", "主角", "宁缺", "带", "着", "从", "死人", "堆", "中", "挖", "出来", "的", "小", "侍女", "桑桑", ",", "报仇雪恨", "的", "故事", "。", "推荐理由", ":", "一", ".", "文笔", "牛逼", ":", "猫腻", "的", "文", "读者", "很舒服", ",", "不喜欢", "小白文", "的", "人", "无法", "错过", "的", "好书", "。", "二", ".", "剧情", "牛逼", ":", "猫腻", "对", "文章", "的", "构思", "非常", "巧妙", ",", "不", "看到", "最后", ",", "你", "根本", "不知道", "结局", "会", "怎样", "。", "三", ".", "人物", "牛逼", ":", "莫山山", "与", "叶红鱼", ",", "是", "故事", "中", "宁缺", "的", "两位", "红颜知己", "。", "四", ".", "最后", "她们", "没有", "和", "宁缺", "走", "在一起", ",", "是", "一", "件", "自", "认为", "很遗憾", "的", "事", "。", "(", "嗯", "…", "…", "这", "是", "以", "男人", "的", "角度", "。", ")", "无法", "让", "人", "忘怀", "的", "地方", ":", "书院", "。", "书院", "有", "夫子", ",", "喜欢", "书", "中", "一句话", ",", "世间", "无", "夫子", ",", "万古", "如", "长夜", "。", "(", "希望", "没有", "记", "错", "。", ")", "书院", "有", "大师兄", ",", "大师兄", "李慢慢", "为人", "仁爱", ",", "曾", "因为", "君子", "可以", "欺", "之", "以", "方", "困扰", ",", "后", "在", "宁缺", "受到", "危险", "时", ",", "终于", "学会", "了", "杀人", "。", "书院", "有", "二师兄", ",", "二师兄", "君", "陌", ",", "一直", "以", "小", "师叔", "为", "榜样", "的", "君陌", ",", "一直", "想", "把", "号称", "天下第一", "剑", "的", "柳", "白", "斩", "于", "剑", "下", "。", "书院", "有", "三", "师姐", ",", "三", "师姐", "余帘", ",", "额", "…", "…", "突然想到", "既然", "是", "推", "书", ",", "就", "不能", "写", "太", "详细", ",", "毕竟", "透", "剧", "会", "被", "人", "弹", "丁丁", "。", "咳咳", "总而言之", ",", "这", "是", "一", "本", "不容错过", "的", "好书", "。", "2", ".", "《", "择天记", "》", "作者", ":", "猫腻", "too", "(", "嗯", "…", "…", "别误会", ",", "我", "只是", "想", "表达", "也是", "猫腻", "。", ")", "相对", "将夜", ",", "这", "是", "一", "本", "正在", "写", "的", "新书", ",", "值得一看", "。", "最近", "还在", "影视", "改编", ",", "据说", "主角", "陈长生", ",", "饰演", "是", "鹿晗", ",", "我", "也", "很", "喜欢", "鹿晗", "的", "小", "清新", ",", "但是", "我", "觉得", "演", "陈长生", "气质", "方面", "两种", "美", ",", "有点", "毁", "剧", ",", "当然", "还", "没", "上映", ",", "如此", "谈论", "未免", "为", "时尚", "早", "。", "3", ".", "《", "冒牌大英雄", "》", "作者", ":", "七", "十", "二", "编", "。", "这本书", ",", "猥琐", "流", "的", "神", "书", ",", "背景", "机甲", "宇宙", "什么", "的", "。", "写", "这本书", "的", "作者", "一", "本", "封神", ",", "所以", "这本书", "真", "的", "非常", "牛逼", "。", "而且", "这本书", "已经", "完本", "。", "喜欢", "猥琐", "流", "的", ",", "本人", "强烈推荐", "看", "这本书", ",", "超赞", "。", "4", ".", "《", "无限恐怖", "》", "作者", ":", "zhttty", "无限", "流", "开山", "之", "祖", "的", "神", "书", "。", "喜欢", "无限", "流", "的", ",", "不容错过", "。", "5", ".", "《", "恐怖", "搞", "校", "》", "作者", ":", "大宋", "红", "福", "坊", "这本书", "将", "无限", "流", "和", "校园", "相结合", ",", "非常", "有创意", "。", "6", ".", "《", "大国医", "》", "作者", ":", "美味", "宋罗汤", "这", "是", "一", "部", "历史", "类", "的", "书", ",", "也是", "我", "唯一", "看", "过", "的", "历史", "类", "。", "当然", "如果", "《", "寻秦记", "》", "算", "历史", "类", "的", ",", "那么", "这", "本", "是", "第", "二", "本", "。", "讲述", "主角", "洗", "了", "糊涂", "成为", "一", "代", "国", "医", "的", "故事", "。", "文风", "幽默风趣", ",", "很好看", "。", "红颜知己", "也", "多", ",", "啧", "啧", "。", "7", ".", "《", "龙", "魔导", "》", "作者", ":", "想", "屠神", "的", "疯子", "作品", "简洁", ":", "什么", "?", "你", "要", "考", "哈弗", "?", "当", "其他", "童鞋", "正", "忙", "备战高考", "的", "时候", "。", "李山", "已经", "学会", "了", "精神力", "的", "发散", "运用", "。", "李山", ":", "“", "高考", "很难", "么", "?", "这么多", "答案", "让", "我", "筛选", "…", "…", "”", "什么", "?", "你", "要", "结婚", "了", "?", "当", "其他", "童鞋", "正", "为", "求", "得", "白富美", "沾沾自喜", "时", "。", "李山", "在", "头疼", ",", "今天", "去", "找", "精灵", "女友", "还是", "猫女", "又", "或者", "…", "…", "李", "山", ":", "“", "不要", "这么", "看着我", ",", "我", "很", "纯洁", "的", ",", "就", "拉拉", "小", "手", "。", "”", "故事", "概述", ":", "主角", "李山", "在", "一款", "叫做", "凯撒", "大陆", "的", "游戏", "中", "赢得", "了", "一", "台", "虚拟现实", "游戏", "仓", "。", "但是", "却", "发现", "使用", "这", "台", "游戏", "仓", "后", ",", "在", "游戏", "中", "获得", "的", "属性", "加成", "竟然", "影响", "着", "现实", "世界", "。", "后来", "在", "主角", "的", "一", "再", "证实", "下", ",", "终于", "证明", "他", "参加", "的", "并", "不是", "游戏", ",", "而是", "另一个", "现实", "世界", "。", "至此", ",", "主角", "潇洒", "的", "一生", "就", "此", "起航", "。", "推荐理由", ":", "1", ".", "文笔", "不错", ",", "刻画", "生", "动", ",", "有", "将夜", "之", "风", "。", "2", ".", "人物", "不错", ",", "主角", "是", "一", "位", "拥有", "正义感", "的", "猥琐男", "。", "(", "丫", "的", "这个", "评论", "我", "笑", "了", "。", ")", "3", ".", "剧情", "不错", ",", "进展", "有些", "慢", ",", "但是", "也有", "一", "种", "娓娓道来", "的", "感觉", ",", "很喜欢", "。", "先", "推荐", "这么多", "(", "未完待续", ")"], 
				["大家", "喜欢", "这个", "书单", "的", "话", "就", "顶", "高高", ",", "我", "继续", "更新", ",", "哇哈哈", "哈", "。", "(", "还有许多", "珍藏", "的", "说", "~", ")"], 
				["我靠", ",", "我", "怎么", "看到", "写", "的", "书", "了", ",", "楼主", "慧眼", "如", "炬", ",", "我", "也", "觉得", "《", "将夜", "》", "写的不错", "。"], 
				["书名", ":", "《", "第", "十三", "座", "消失", "的", "城", "》", "作者", ":", "城", "渡", "文案", ":", "她", "是", "瘾", "城", "的", "守护者", ",", "也是", "半生", "花店", "的", "甩手掌柜", ",", "她", "带", "着", "花店", "四处", "游历", ",", "走", "走", "停停", ",", "为", "瘾城", "招揽", "能", "人", "异士", ",", "也", "借此", "从", "无名", "转", "而", "盛名", ",", "想起", "了", "万年", "前", "的", "记忆", ",", "重", "遇", "了", "那", "方", "幽静", "。", "她", "的", "半生", "花店", "有", "无数", "世间", "买不到", "或", "不曾", "见过", "的", "花", "种", ",", "她", "的", "花", "只", "卖给", "有缘人", "。", "来到", "她", "花店", "的", "人", "从不知", "她", "叫", "什么", ",", "只是", "世", "人", "皆", "称", "小妖", ",", "便", "以", "小妖", "之", "名", "而", "盛", ",", "皆", "不知", "她", "本为妖", ",", "数", "以", "万年", "。", "她", "总是", "淡然处之", ",", "有人", "问", "起", "她", ":", "\"", "小妖", ",", "何事", "才能", "掀起你的波澜", "?", "\"", "答", "之", ":", "”", "人生", "除", "死", "之外", ",", "一切", "都", "很简单", "。", "“", "而", "她", ",", "已死", "过", "一次", "。", "网站链接", ":", "http", ":", "/", "/", "www", ".", "s4", "yd", ".", "com", "/", "modules", "/", "article", "/", "article", "info", ".", "php", "?", "id", "=", "143"], 
				["这", "栋", "楼", "怎么", "可以", "塌", "了", ",", "顶", "起", ",", "吼", "嘿吼"], 
				["将夜", "这本书", ",", "就像", "看到", "一", "个", "漂亮", "的", "苹果", ",", "咬", "了", "一", "口", "发现", "美味", "的", "很", ",", "于是", "一", "口", "吞", "了", "剩余", "的", ",", "却", "发现", "全", "是", "虫子", "。", "文", "青", "、", "造", "作", "到", "让", "你", "反胃", ",", "为了", "凑", "字", "更", "是", "啰", "里", "啰嗦", "刻意", "拖", "慢", "剧情", "。", "这本书", "比喻", "一个人", "的", "话", ",", "就像", "一", "个", "夹", "着", "腿", "内八字", "走路", "的", "男人", ",", "简直", "倒胃口", "!"], 
				["这个", "贴吧", "是", "被", "腐女", "和", "基佬", "攻占", "了", "么"], 
				["书", "不错", "呦", ",", "还有", "没有了", "!", "!", "!", "!", "!"], 
				["千", "苒", "君", "笑", "的", "《", "凤求凰", "》", "就", "写", "不错", "还有", "部", "天衣有风", "写", "的", "《", "凤囚凰", "》", "这", "两", "部", "都", "可以", "看看", "个人", "比较", "喜欢"], 
				["继续", "前", ",", "感叹", "下", "第", "七", "本", "已经", "烂尾", "了", "…", "…", "这", "心情", "…", "…", "8", ".", "《", "寻秦记", "》", "作者", ":", "黄易", "故事", "简述", ":", "第", "一", "本", "穿越", "小说", "(", "可能", "是", "第", "二", "本", ",", "咳咳", "…", "…", "或者", "第", "三本", ",", "但", "反正", "很早", "。", ")", "讲述", "主角", "项少龙", ",", "一", "个", "特种兵", "回到", "大秦王朝", "还", "未", "统一", "天下", "的", "时候", "。", "故事", "的", "内容", "就", "如", "作者", "名字", "的", "第一个", "字", "一般", ",", "很", "x", "故事", "逻辑", "严谨", ",", "剧情", "跌宕起伏", ",", "每一个", "女主人公", "刻画", "的", "都", "非常", "深刻", "。", "9", ".", "《", "仙鸿路", "》"]
			], 
			"paragraphs": [
				"2017年好书排行榜。读书十几年,晒晒让我沉醉的那些书单本书单没有主次,不要在意序号。1.《将夜》 作者:猫腻(起点白金作家) 简介:与天斗,其乐无穷。 故事概要: 主角宁缺带着从死人堆中挖出来的小侍女桑桑,报仇雪恨的故事。 推荐理由:一.文笔牛逼:猫腻的文读者很舒服,不喜欢小白文的人无法错过的好书。二.剧情牛逼:猫腻对文章的构思非常巧妙,不看到最后,你根本不知道结局会怎样。三.人物牛逼:莫山山与叶红鱼,是故事中宁缺的两位红颜知己。四.最后她们没有和宁缺走在一起,是一件自认为很遗憾的事。(嗯……这是以男人的角度。)无法让人忘怀的地方:书院。 书院有夫子,喜欢书中一句话,世间无夫子,万古如长夜。(希望没有记错。) 书院有大师兄,大师兄李慢慢为人仁爱,曾因为君子可以欺之以方困扰,后在宁缺受到危险时,终于学会了杀人。 书院有二师兄,二师兄君陌,一直以小师叔为榜样的君陌,一直想把号称天下第一剑的柳白斩于剑下。书院有三师姐,三师姐余帘,额……突然想到既然是推书,就不能写太详细,毕竟透剧会被人弹丁丁。咳咳总而言之,这是一本不容错过的好书。 2.《择天记》 作者:猫腻too(嗯……别误会,我只是想表达也是猫腻。) 相对将夜,这是一本正在写的新书,值得一看。 最近还在影视改编,据说主角陈长生,饰演是鹿晗,我也很喜欢鹿晗的小清新,但是我觉得演陈长生气质方面两种美,有点毁剧,当然还没上映,如此谈论未免为时尚早。 3.《冒牌大英雄》 作者:七十二编。这本书,猥琐流的神书,背景机甲宇宙什么的。写这本书的作者一本封神,所以这本书真的非常牛逼。而且这本书已经完本。喜欢猥琐流的,本人强烈推荐看这本书,超赞。 4.《无限恐怖》 作者:zhttty 无限流开山之祖的神书。 喜欢无限流的,不容错过。 5.《恐怖搞校》作者:大宋红福坊这本书将无限流和校园相结合,非常有创意。 6.《大国医》 作者:美味宋罗汤 这是一部历史类的书,也是我唯一看过的历史类。 当然如果《寻秦记》算历史类的,那么这本是第二本。 讲述主角洗了糊涂成为一代国医的故事。 文风幽默风趣,很好看。 红颜知己也多,啧啧。 7.《龙魔导》 作者:想屠神的疯子 作品简洁:什么?你要考哈弗? 当其他童鞋正忙备战高考的时候。 李山已经学会了精神力的发散运用。李山:“高考很难么?这么多答案让我筛选……” 什么?你要结婚了? 当其他童鞋正为求得白富美沾沾自喜时。 李山在头疼,今天去找精灵女友还是猫女又或者…… 李山:“不要这么看着我,我很纯洁的,就拉拉小手。”故事概述:主角李山在一款叫做凯撒大陆的游戏中赢得了一台虚拟现实游戏仓。但是却发现使用这台游戏仓后,在游戏中获得的属性加成竟然影响着现实世界。后来在主角的一再证实下,终于证明他参加的并不是游戏,而是另一个现实世界。至此,主角潇洒的一生就此起航。 推荐理由:1.文笔不错,刻画生动,有将夜之风。2.人物不错,主角是一位拥有正义感的猥琐男。(丫的这个评论我笑了。)3.剧情不错,进展有些慢,但是也有一种娓娓道来的感觉,很喜欢。 先推荐这么多(未完待续)",
				"大家喜欢这个书单的话就顶高高,我继续更新,哇哈哈哈。(还有许多珍藏的说~)", 
				"我靠,我怎么看到写的书了,楼主慧眼如炬,我也觉得《将夜》写的不错。", 
				"书名:《第十三座消失的城》作者:城渡文案:她是瘾城的守护者,也是半生花店的甩手掌柜,她带着花店四处游历,走走停停,为瘾城招揽能人异士,也借此从无名转而盛名,想起了万年前的记忆,重遇了那方幽静。 她的半生花店有无数世间买不到或不曾见过的花种,她的花只卖给有缘人。来到她花店的人从不知她叫什么,只是世人皆称小妖,便以小妖之名而盛,皆不知她本为妖,数以万年。 她总是淡然处之,有人问起她:\"小妖,何事才能掀起你的波澜?\" 答之:”人生除死之外,一切都很简单。“而她,已死过一次。网站链接:http://www.s4yd.com/modules/article/articleinfo.php?id=143", 
				"这栋楼怎么可以塌了,顶起,吼嘿吼", 
				"将夜这本书,就像看到一个漂亮的苹果,咬了一口发现美味的很,于是一口吞了剩余的,却发现全是虫子。文青、造作到让你反胃,为了凑字更是啰里啰嗦刻意拖慢剧情。这本书比喻一个人的话,就像一个夹着腿内八字走路的男人,简直倒胃口!", 
				"这个贴吧是被腐女和基佬攻占了么", 
				"书不错呦,还有没有了!!!!!", 
				"千苒君笑的《凤求凰》就写不错还有部天衣有风写的《凤囚凰》这两部都可以看看个人比较喜欢", 
				"继续前,感叹下第七本已经烂尾了……这心情……8.《寻秦记》作者:黄易故事简述:第一本穿越小说(可能是第二本,咳咳……或者第三本,但反正很早。)讲述主角项少龙,一个特种兵回到大秦王朝还未统一天下的时候。故事的内容就如作者名字的第一个字一般,很x故事逻辑严谨,剧情跌宕起伏,每一个女主人公刻画的都非常深刻。9.《仙鸿路》"
			]
		}, 
		{
			"is_selected": false, 
			"title": "小说排行榜,小说排行榜2017前十名-搜狗小说", 
			"most_related_para": 0, 
			"segmented_title": ["小说", "排行榜", ",", "小说", "排行榜", "2017", "前十名", "-", "搜狗", "小说"], 
			"segmented_paragraphs": [
				["玄幻小说", "排行榜", "奇幻小说", "排行榜", "武侠小说", "排行榜", "仙侠", "小说", "排行榜", "都市", "小说", "排行榜", "悬疑小说", "排行榜", "游戏", "小说", "排行榜", "竞技", "小说", "排行榜", "历史小说", "排行榜", "军事", "小说", "排行榜", "科幻小说", "排行榜", "灵异小说", "排行榜", "古言", "小说", "排行榜", "言情小说", "排行榜", "穿越", "小说", "排行榜", "总裁", "小说", "排行榜", "青春", "小说", "排行榜", "耽美小说", "排行榜"]], 
			"paragraphs": [
					"玄幻小说排行榜  奇幻小说排行榜  武侠小说排行榜  仙侠小说排行榜  都市小说排行榜  悬疑小说排行榜  游戏小说排行榜  竞技小说排行榜  历史小说排行榜  军事小说排行榜  科幻小说排行榜  灵异小说排行榜  古言小说排行榜  言情小说排行榜  穿越小说排行榜  总裁小说排行榜  青春小说排行榜  耽美小说排行榜"
				]
		}, 
		{
			"is_selected": true, 
			"title": "2017最好看的穿越小说 穿越小说排行榜前10名", 
			"most_related_para": 1, 
			"segmented_title": ["2017", "最", "好看", "的", "穿越", "小说", "穿越", "小说", "排行榜", "前", "10", "名"], 
			"segmented_paragraphs": [
				["近年来", ",", "穿越", "小说", "、", "穿越", "剧", "以", "时尚", "、", "前卫", "的", "姿态", "进入", "到", "公众", "的", "视野", "当", "中", ",", "并且", "席卷", "了", "中国", "的", "电视荧屏", ",", "形成", "一", "股", "强烈", "的", "“", "穿越", "”", "之", "风", "。", "这么多", "的", "穿越", "小说", "中", ",", "好看", "的", "完结", "穿越", "小说", "有", "哪些", "?", "以下", "是", "小", "编", "推荐", "给", "大家", "的", "关于", "2017", "最", "好看", "的", "穿越", "小说", ",", "来", "看看", "有没有", "你", "喜欢", "的", "吧", "!"], 
				["一", ":", "【", "我们", "住", "在一起", "】", "投资银行", "的", "简称", ",", "并", "不是", "真", "的", "银行", ",", "是", "券商", "的", "说", ",", "一般", "就是", "给", "一些", "发展", "还不错", "的", "公司", "做", "做", "上市", "啦", "、", "再融资", "啦", "、", "发行债券", "啦", "、", "并购重组", "啦", "之类", "的", "玩意儿", ",", "包括", "了", "北漂", ",", "合租", ",", "职场", "(", "投行", ")", ",", "隐身", "富二代", ",", "女", "菜鸟", "变", "业务", "精英", "等", "职业", "。", "二", ":", "【", "月", "都", "花", "落", ",", "沧海", "花开", "】", "作者", ":", "君子", "以", "泽", "此", "书", "古风", "韵味", "十足", ",", "像", "是", "一", "部", "“", "诗", "作", "”", "。", "结局", "中性", ",", "不喜", "也", "不", "悲", ",", "却", "让", "人", "哭", "得", "眼", "肿", "。", "明月", "和", "沧海", "相互", "倾慕", ",", "却", "只能", "遥遥", "相望", ",", "真真", "让", "人", "唏嘘", "。", "薇薇", "最后", "闭", "眼前", "看到", "自己", "变", "年轻", "又", "见到", "师尊", "的", "幻境", ",", "兴", "许", "也是", "薇薇", "和", "胤", "泽", "互相", "的", "思念", "而", "产生", "的", "。", "期待", "薇薇", "胤", "泽", "来世", "再续前缘", ",", "期待", "沧海", "的", "花", "快", "开", "。", "三", ":", "【", "天", "定", "风", "华", "】", "作者", ":", "天下", "归元", "【", "天", "定", "风华", "】", "1", "、", "2", "、", "3", "讲述", "的", "是", "君珂", "的", "故事", ",", "又", "名", "【", "天", "定", "风流", "】", ",", "【", "千金笑", "】", "。", "【", "天", "定", "风", "华", "】", "4", "、", "5", "、", "6", "讲述", "的", "是", "太史", "阑", "的", "故事", ",", "又", "名", "【", "凤", "倾", "天", "阑", "】", "。", "君珂", "与", "太史", "阑", "为", "好友", ",", "同时", "穿越", ",", "降落", "地点", "不同", ",", "穿越后", "10", "年", "两", "人才", "相遇", "。", "典型", "的", "穿越", "剧", ",", "精彩", "又", "好看", "。", "四", ":", "【", "寻找爱情", "的", "邹", "小姐", "】", "作者", ":", "匪我思存", "重量级", "言情", "作家", "匪我思存", "的", "大", "作", "【", "寻找爱情", "的", "邹", "小姐", "】", "延续", "其一", "贯", "的", "“", "虐恋", "”", "风格", ",", "讲述", "了", "一", "堆", "都市", "爱人", "的", "苦", "情", "恋", "。", "作品", "中", "的", "故事", "经历", "跌宕起伏", ",", "主人公", "更", "是", "命运多舛", ",", "其中", "的", "爱情故事", "更", "是", "有很多", "传奇", "的", "结局", "。", "每", "一", "对", "恋人", "的", "爱情", "都是", "不一样", "的", ",", "都是", "独一无二", "的", ",", "每个", "人", "只有", "在", "自己", "的", "感情", "里", "才能", "有", "自己", "真实", "的", "感受", "。", "只要心中有爱", ",", "爱", "就", "无处不在", "。", "就像", "书", "中", "表达", "的", ",", "我们", "为了爱", "奔波", "劳碌", ",", "甚至", "终", "其", "一生", "的", "追求", "爱情", ",", "然而", "在", "百转千回", "、", "峰回路转", "之后", ",", "我们", "期许", "的", "爱情", "其实", "一直", "在", "那里", "。"], 
				["五", ":", "【", "应许之日", "】"], 
				["作者", ":", "辛夷坞"], 
				["【", "应许之日", "】", "是", "以", "封澜", "这", "一", "大龄", "女", "起伏", "不断", "的", "生活", "为", "主线", "展开", "的", "描述", "。", "封澜", "和", "她", "的", "男友", "分手之前夕", "迎来", "的", "是", "男友", "和", "其他", "女人", "的", "结婚请柬", "。", "然而", "作为", "一", "个", "餐厅", "的", "老板娘", ",", "封澜", "竟然", "喜欢", "上", "餐厅", "里", "的", "服务员", "丁", "小野", ",", "然而", "丁小野", "也", "不爱", "她", ",", "他", "是", "一", "个", "猎手", ",", "亲", "手", "捕获", "鲜活", "的", "猎物", ",", "封澜", "就是", "他", "的", "猎物", "。", "而", "读完", "【", "应许之日", "】", ",", "并没有", "阴险", ",", "没有", "所谓", "的", "捕获", ",", "而是", "有", "一", "种", "很", "暖", "的", "感觉", "。", "作者", "辛夷坞", "尝试", "过", "多", "种", "风格", "的", "写作", ",", "而", "此", "部", "【", "应许之日", "】", "更", "是", "一", "部", "献给", "每个", "为爱执着", "人", "的", "一", "大力", "作", "。"], 
				["六", ":", "【", "星光", "的", "彼端", "】"], 
				["作者", ":", "青罗扇子"], 
				["范冰冰", "说", ",", "一个人", "的", "诋毁", "和", "赞美", "同样", "多", ";", "千颂伊", ",", "不会", "陷入", "嫉妒", "的", "深渊", ",", "不会", "自己", "落水", "了", "还要", "拉", "上", "别人", "共同", "踏入", "泥潭", "。", "深谙", "电影", "与", "文学", "中国", "女作家", "青罗扇子", ",", "文风", "以", "大气", "励志", ",", "时尚", "深刻", ",", "【", "星光", "的", "彼端", "】", "也", "正", "是", "延续", "了", "这样", "的", "文风", ",", "并且", "文", "中", "多", "体现", "的", "是", "如何", "真正", "理解", "爱", ",", "如何", "去", "爱", "别人", "。", "文", "中", "主人公", "宋", "微", "与", "黄锦立", "两人", "之间", "爱", "恨", "纠结", ",", "涉及", "名利", "、", "事业", "、", "女性", "自立自强", "。", "“", "一个女人", "只", "会", "伤心", "三", "次", "。", "第一次", ",", "她", "想要", "的", "是", "他", "的", "爱", ",", "但", "不", "被", "公平对待", ";", "第二次", ",", "她", "退", "而", "求", "其次", ",", "只", "想要", "一", "份", "尊重", ",", "却", "被", "践踏", "努力", ";", "到", "了", "第三次", ",", "她", "已经", "什么", "都", "想", "不要", "了", "—", "—", "因为", "这次", ",", "她", "只", "为", "自己", "加冕", "为", "王", "。", "多么", "富有", "哲理", "。", "一", "个", "不", "懂得", "如何", "去", "爱", "的", "人", ",", "是否", "还能", "有", "机会", "再爱一", "次", "?", "青罗扇子", "说", ":", "有时", "爱", "一个人", ",", "不是", "因为", "他", "给", "了", "你", "幻想", ",", "而是", "你", "明白", "了", "自己", "的", "尊严", "与", "骄傲", "。"], 
				["七", ":", "【", "他来了", ",", "请闭眼", "】"], 
				["在", "继", "【", "如果", "蜗牛", "有", "爱情", "】", "之后", ",", "此", "部", "作品", "是", "丁墨", "再次", "创作", "出", "的", "超人气", "甜蜜爱情故事", ",", "作为", "网络写手", ",", "他", "独特", "的", "甜", "宠", "悬", "爱", "风格", "吸引", "了", "一大批", "读者", ",", "其", "文", "思", "巧妙", "、", "其", "开篇", "就", "给", "人", "一", "种", "【", "神探", "夏洛克", "】", "的", "感觉", ",", "因为", "薄靳言", "和", "傅子遇", "丝毫", "不", "逊", "于", "卷福", "和", "花生", "。", "作品", "中", "对", "大神", "薄", "小猫", "才华横溢", "与", "智慧", "过人", "的", "描写", "以及", "其", "骄傲", "、", "盛气凌人", "的", "描写", "固然", "入木三分", ",", "情绪", "与", "性格", "等", "内在", "描写", "非常", "到位", ",", "但是", ",", "在", "看", "过", "作品", "后", "最", "让", "人", "动", "容", "的", "是", "大神", "对", "瑶瑶", "毫无保留", "的", "、", "纯真", "热烈", "的", "、", "至死不渝", "的", "爱", "。"],
				["八", ":", "【", "何以笙箫默", "】"], 
				["电视剧", "的", "热播", "让", "这部", "剧", "面向", "了", "更多", "人群", ",", "此", "剧", "的", "原著", "小说", "感觉", "名字", "深奥", "而又", "极", "富", "玄机", ",", "蕴含", "着", "何以", "琛", "对", "默", "笙", "没有", "说", "出口", "的", "爱恋", "。", "在", "小说", "里", ",", "默", "笙", "的", "名字", "来自", "徐志摩", "的", "【", "再别康桥", "】", ",", "而", "默", "笙", ",", "可", "理解", "为", "沉默", "的", "箫", "笙", ",", "也", "代表", "着", "默默", "的", "爱意", "。", "小说", "从头", "看到", "尾", "或许", "会", "感觉", "这个故事", "很", "老", "套", ",", "但是", "却", "真正", "体现", "了", "有些", "事情", "只能", "意", "会", "不能", "言", "传", "。", "只有", "真正", "理解", "了", "主人公", "之间", "的", "感情", ",", "才", "觉得", "即便", "老", "套", "的", "故事", "也", "能", "体现", "出", "不一样", "的", "内心深处", "的", "感情", "。"], 
				["九", ":", "【", "岁月", "是", "朵", "双生花", "】"], 
				["作者", ":", "唐七", "公子"], 
				["读", "唐七", "的", "小说", ",", "往往", "在", "一开始", "找不到", "感觉", ",", "似乎", "它", "并", "不是", "多么", "的", "引人入胜", ",", "还", "感觉", "作者", "的", "描写", "非常", "啰嗦", ",", "但是", ",", "伴随", "着", "阅读", "的", "深入", "却", "会", "感觉", "此", "书", "越来越", "有意思", ",", "是", "一", "部", "非常不错", "的", "作品", "。", "该", "小说", "通过", "讲述", "女主角", "怀孕", "以后", ",", "由于", "车祸", "问题", "失忆", "了", "的", "故事", "。", "女主人公", "在", "失忆", "以后", "有", "了", "新", "的", "喜欢", "的", "人", ",", "但", "并没有", "得到", "。", "她", "有", "一", "个", "非常", "可爱", "的", "孩子", ",", "但是", "在", "发生车祸", "失忆", "之后", "却", "不记得", "孩子", "的", "爸爸", "。", "经过", "很多", "波折", ",", "小说", "有", "了", "一", "个", "完满", "的", "结局", "那", "便是", "主人公", "原来", "的", "爱人", "和", "记忆", "都", "回来", "了", "。"], 
				["十", ":", "【", "夏有乔木", "雅望", "天堂", "】"], 
				["籽月", "总是", "把", "爱情", "写", "得", "如此", "之", "抵死", "纠缠", ",", "甚至", "感觉", "残忍", "不堪", ",", "正", "因为", "其", "残忍", ",", "其", "结局", "的", "不", "完美", ",", "才", "容易", "引起", "人们", "的", "深思", "。", "在", "小说", "中", ",", "每", "一", "个人", "都", "付之一炬", ",", "最后", "全部", "坍塌", "。", "正", "因为", "此", ",", "所谓", "的", "爱", "坍塌", "了", "、", "信仰", "坍塌", "了", ",", "甚至", "付出", "了", "生命", "。", "一直以来", ",", "籽月", "作为", "国内", "一线", "青春", "畅销书", "的", "新锐作家", ",", "最", "擅长", "用", "最", "朴实", "的", "文字", "来", "塑造", "丰满", "的", "人物", "形象", ",", "她", "让", "我们", "感觉", "青春", "要", "用", "最", "真挚", "的", "情感", "来", "纪念", "。", "此", "小说", "非常", "值得", "一遍", "遍", "的", "去", "阅读", ",", "因为", "每", "一遍", "都", "有", "不同", "的", "感受", ",", "甚至", "读", "过后", "的", "感动", "会", "让", "人", "泣不成声", "。"], 
				["十一", ":", "【", "忘川", "】"], 
				["此时", "在", "经过", "作者", "时", "隔", "六", "年", "的", "创作", "之后", "中", "终于", "完结", ",", "这", "是", "一", "部", "持续", "了", "六", "年", "的", "武林传奇", ",", "而", "作者", "顶着", "的", "“", "武侠", "言情", "天后", "”", "的", "标签", ",", "笑", "言", ":", "“", "纯粹", "是", "为了", "图书", "上架", "时", "方便", "分类", "而已", "。", "【", "忘川", "】", "承载", "了", "太多", "作者", "与", "读者", "的", "期待", ",", "该", "作品", "的", "诞生", "也", "极", "具", "戏剧性", "。"], 
				["十二", ":", "【", "满满", "都是", "我", "对你的爱", "】"], 
				["作者", ":", "顾西爵"], 
				["【", "满满", "都是", "我", "对你的爱", "】", "里", "的", "一些", "小", "段子", "便", "足以", "让", "网友", "为", "之", "疯狂", ",", "被", "万千", "网友", "誉为", "\"", "最萌", "最", "有", "爱", ",", "百", "看", "而", "不", "厌", "\"", "。", "【", "满满", "都是", "我", "对你的爱", "】", "最早", "是", "在", "2013", "年", "7", "月", "中旬", "第一次", "登载", ",", "便", "产生", "了", "超强", "的", "口碑", "效应", ",", "所以", "辛夷坞", "在", "读", "了", "本书", "后", "欢笑", "推荐", ",", "和", "安东尼", "【", "这些", "都是", "你", "给", "我", "的", "爱", "】", "一样", "温暖", "有", "爱", "。"], 
				["十三", ":", "【", "欢喜记", "】"], 
				["作者", ":", "石头与水"], 
				["与", "【", "千金记", "】", "是", "姐妹", "篇", ",", "此", "小说", "说明", "了", "一", "个", "很重要", "的", "道理", "便是", "可怜", "之", "人", "必", "有", "可恨", "之", "处", "。", "因为", "憋屈", "而", "死", "的", "赵长卿", "在", "重生", "之", "际", ",", "下定决心", "决定", "不再", "活", "的", "那样", "令人", "可怜", "可恨", "了", "。", "此", "文", "依然", "是", "深受", "读者", "喜爱", "的", "重生", "文", ",", "依然", "是", "以", "东穆江山", "为", "背景", "。"], 
				["十四", ":", "【", "金陵", "春", "】"], 
				["周少瑾", "重生", "了", ",", "前世", "背叛", "她", "的", "表哥", "程", "辂", "自然", "被", "三振出局", "了", ",", "可", "她", "还有", "程", "许", ",", "程", "诣", ",", "程", "举", "等", "许多", "个", "表哥", "…", "…", "这", "是", "个", "我", "与", "程", "家", "不得不说的故事", "!", "只", "看", "内容简介", "便", "知道", "此", "书", "又", "是", "一", "个", "重生", "的", "故事", ",", "重生", "的", "故事", "不管", "如何", "描述", "总是", "引来", "好奇", "的", "读者", "一", "观", "。"]
			], 
			"paragraphs": [
				"近年来,穿越小说、穿越剧以时尚、前卫的姿态进入到公众的视野当中,并且席卷了中国的电视荧屏,形成一股强烈的“穿越”之风。这么多的穿越小说中,好看的完结穿越小说有哪些?以下是小编推荐给大家的关于2017最好看的穿越小说,来看看有没有你喜欢的吧!", 
				"一: 【我们住在一起】 投资银行的简称,并不是真的银行,是券商的说,一般就是给一些发展还不错的公司做做上市啦、再融资啦、发行债券啦、并购重组啦之类的玩意儿,包括了北漂,合租,职场(投行),隐身富二代,女菜鸟变业务精英等职业。 二: 【月都花落,沧海花开】 作者:君子以泽 此书古风韵味十足,像是一部“诗作”。结局中性,不喜也不悲,却让人哭得眼肿。明月和沧海相互倾慕,却只能遥遥相望,真真让人唏嘘。薇薇最后闭眼前看到自己变年轻又见到师尊的幻境,兴许也是薇薇和胤泽互相的思念而产生的。期待薇薇胤泽来世再续前缘,期待沧海的花快开。 三: 【天定风华】 作者:天下归元 【天定风华】1、2、3讲述的是君珂的故事,又名【天定风流】,【千金笑】。【天定风华】4、5、6讲述的是太史阑的故事,又名【凤倾天阑】。君珂与太史阑为好友,同时穿越,降落地点不同,穿越后10年两人才相遇。典型的穿越剧,精彩又好看。 四: 【寻找爱情的邹小姐】 作者: 匪我思存 重量级言情作家匪我思存的大作【寻找爱情的邹小姐】延续其一贯的“虐恋”风格,讲述了一堆都市爱人的苦情恋。作品中的故事经历跌宕起伏,主人公更是命运多舛,其中的爱情故事更是有很多传奇的结局。每一对恋人的爱情都是不一样的,都是独一无二的,每个人只有在自己的感情里才能有自己真实的感受。只要心中有爱,爱就无处不在。就像书中表达的,我们为了爱奔波劳碌,甚至终其一生的追求爱情,然而在百转千回、峰回路转之后,我们期许的爱情其实一直在那里。",
				"五: 【应许之日】", "作者: 辛夷坞", 
				"【应许之日】是以封澜这一大龄女起伏不断的生活为主线展开的描述。封澜和她的男友分手之前夕迎来的是男友和其他女人的结婚请柬。然而作为一个餐厅的老板娘,封澜竟然喜欢上餐厅里的服务员丁小野,然而丁小野也不爱她,他是一个猎手,亲手捕获鲜活的猎物,封澜就是他的猎物。而读完【应许之日】,并没有阴险,没有所谓的捕获,而是有一种很暖的感觉。作者辛夷坞尝试过多种风格的写作,而此部【应许之日】更是一部献给每个为爱执着人的一大力作。", 
				"六: 【星光的彼端】", 
				"作者: 青罗扇子",
				"范冰冰说,一个人的诋毁和赞美同样多;千颂伊,不会陷入嫉妒的深渊,不会自己落水了还要拉上别人共同踏入泥潭。深谙电影与文学中国女作家青罗扇子,文风以大气励志,时尚深刻,【星光的彼端】也正是延续了这样的文风,并且文中多体现的是如何真正理解爱,如何去爱别人。文中主人公宋微与黄锦立两人之间爱恨纠结,涉及名利、事业、女性自立自强。“一个女人只会伤心三次。第一次,她想要的是他的爱,但不被公平对待;第二次,她退而求其次,只想要一份尊重,却被践踏努力;到了第三次,她已经什么都想不要了——因为这次,她只为自己加冕为王。多么富有哲理。一个不懂得如何去爱的人,是否还能有机会再爱一次?青罗扇子说:有时爱一个人,不是因为他给了你幻想,而是你明白了自己的尊严与骄傲。",
				"七: 【他来了,请闭眼】", 
				"在继【如果蜗牛有爱情】之后,此部作品是丁墨再次创作出的超人气甜蜜爱情故事,作为网络写手,他独特的甜宠悬爱风格吸引了一大批读者,其文思巧妙、其开篇就给人一种【神探夏洛克】的感觉,因为薄靳言和傅子遇丝毫不逊于卷福和花生。作品中对大神薄小猫才华横溢与智慧过人的描写以及其骄傲、盛气凌人的描写固然入木三分,情绪与性格等内在描写非常到位,但是,在看过作品后最让人动容的是大神对瑶瑶毫无保留的、纯真热烈的、至死不渝的爱。", 
				"八: 【何以笙箫默】", 
				"电视剧的热播让这部剧面向了更多人群,此剧的原著小说感觉名字深奥而又极富玄机,蕴含着何以琛对默笙没有说出口的爱恋。在小说里,默笙的名字来自徐志摩的【再别康桥】 ,而默笙,可理解为沉默的箫笙,也代表着默默的爱意。小说从头看到尾或许会感觉这个故事很老套,但是却真正体现了有些事情只能意会不能言传。只有真正理解了主人公之间的感情,才觉得即便老套的故事也能体现出不一样的内心深处的感情。", 
				"九: 【岁月是朵双生花】", 
				"作者: 唐七公子", 
				"读唐七的小说,往往在一开始找不到感觉,似乎它并不是多么的引人入胜,还感觉作者的描写非常啰嗦,但是,伴随着阅读的深入却会感觉此书越来越有意思,是一部非常不错的作品。该小说通过讲述女主角怀孕以后,由于车祸问题失忆了的故事。女主人公在失忆以后有了新的喜欢的人,但并没有得到。她有一个非常可爱的孩子,但是在发生车祸失忆之后却不记得孩子的爸爸。经过很多波折,小说有了一个完满的结局那便是主人公原来的爱人和记忆都回来了。", 
				"十: 【夏有乔木 雅望天堂】", 
				"籽月总是把爱情写得如此之抵死纠缠,甚至感觉残忍不堪,正因为其残忍,其结局的不完美,才容易引起人们的深思。在小说中,每一个人都付之一炬,最后全部坍塌。正因为此,所谓的爱坍塌了、信仰坍塌了,甚至付出了生命。一直以来,籽月作为国内一线青春畅销书的新锐作家,最擅长用最朴实的文字来塑造丰满的人物形象,她让我们感觉青春要用最真挚的情感来纪念。此小说非常值得一遍遍的去阅读,因为每一遍都有不同的感受,甚至读过后的感动会让人泣不成声。", 
				"十一: 【忘川】", 
				"此时在经过作者时隔六年的创作之后中终于完结,这是一部持续了六年的武林传奇,而作者顶着的“武侠言情天后”的标签,笑言:“纯粹是为了图书上架时方便分类而已。【忘川】承载了太多作者与读者的期待,该作品的诞生也极具戏剧性。", 
				"十二: 【满满都是我对你的爱】", 
				"作者: 顾西爵", 
				"【满满都是我对你的爱】里的一些小段子便足以让网友为之疯狂,被万千网友誉为\"最萌最有爱,百看而不厌\"。【满满都是我对你的爱】最早是在2013年7月中旬第一次登载,便产生了超强的口碑效应,所以辛夷坞在读了本书后欢笑推荐,和安东尼【这些都是你给我的爱】一样温暖有爱。", 
				"十三: 【欢喜记】", 
				"作者: 石头与水", 
				"与【千金记】是姐妹篇,此小说说明了一个很重要的道理便是可怜之人必有可恨之处。因为憋屈而死的赵长卿在重生之际,下定决心决定不再活的那样令人可怜可恨了。此文依然是深受读者喜爱的重生文,依然是以东穆江山为背景。", 
				"十四: 【金陵春】", 
				"周少瑾重生了,前世背叛她的表哥程辂自然被三振出局了,可她还有程许,程诣,程举等许多个表哥……这是个我与程家不得不说的故事!只看内容简介便知道此书又是一个重生的故事,重生的故事不管如何描述总是引来好奇的读者一观。"
			]
		}, 
		{
			"is_selected": true, 
			"title": "2017年第一季,超好看的小说大盘点", 
			"most_related_para": 16, 
			"segmented_title": ["2017", "年", "第一季", ",", "超", "好看", "的", "小说", "大盘点"], 
			"segmented_paragraphs": [
				["文章", "阅读"], 
				["2017", "年", "的", "第", "一季度", "刚刚", "过去", ",", "大家", "在", "这", "三个月", "里", "有", "读", "到", "什么", "好书", "吗", "?", "培根", "曾", "说过", ":", "“", "孤独寂寞", "时", ",", "阅读", "可以", "消遣", "。", "高谈阔论", "时", ",", "知识", "可", "供", "装饰", "。", "处世行", "事", "时", ",", "知识", "意味着", "才", "干", "。", "”", "不", "论", "你", "是", "一", "个", "尚且", "在", "学海", "中", "遨游", "的", "学生", ",", "还是", "一", "个", "已经", "工作", "多", "年", "的", "成熟", "社会人", ",", "读书", "从来", "不", "该", "带有", "功利", "的", "意味", ",", "而是", "该", "从", "中", "看到", "世界", "万事万物", "的", "运行", "轨迹", ",", "也", "该", "从", "中", "体味", "生活", "和", "成长", "进步", "。"], 
				["一年", "的", "52", "周", "里", ",", "即使", "每周", "坚持", "阅读", "一", "本", "书", ",", "总共", "也", "不过", "52", "本", "而已", ",", "更", "遑论", "现代人", "一直", "有着", "拖延症", "的", "通病", ",", "我们", "阅读", "的", "书籍", "实在", "太", "少", "了", "。", "在", "浩如烟海", "的", "出版物", "之", "中", ",", "小", "编", "为你", "精心挑选", "了", "几", "本", "极", "富", "趣味性", "、", "又", "不", "乏", "内涵", "的", "小说", ",", "希望能够", "让", "各位", "在", "有限", "的", "阅读", "时间", "里", "享受", "到", "更多", "的", "乐趣", "。"], 
				["《", "大唐", "悬疑", "录", ":", "长恨歌", "密码", "》", "by", ":", "唐隐"], 
				["作品简介", ":", "杨贵妃", "究竟", "死于", "马嵬驿", ",", "还是", "逃生", "日本", "?"], 
				["大", "诗人", "白居易", "根据", "杨贵妃", "的", "秘闻", "写", "就", "名篇", "《", "长恨歌", "》", ",", "不", "想", "竟", "引来", "杀身之祸", "。", "各", "路", "僧", "、", "道", "、", "官", "、", "匪", "先后", "出", "动", ",", "齐齐", "盯上", "了", "《", "长恨歌", "》", "中", "的", "明", "文", "暗码", "…", "…"], 
				["推荐理由", ":", "《", "大唐", "悬疑", "录", "》", "系列", "中", ",", "女神探", "裴", "玄", "静", "踏入", "了", "一", "个", "关乎", "国家", "兴衰", "的", "阴谋", "杀局", "之", "中", ",", "她", "历", "经", "艰辛", ",", "只", "为", "找到", "最终", "的", "真相", "。", "她", "曾", "说", "“", "身为", "大唐", "的", "子", "民", ",", "我知道", "大唐", "的", "荣光", "从来", "不是", "幻觉", "。", "我相信", ",", "并且", "愿意", "用", "生命", "去", "维护", "它", "”", "。"], 
				["这个", "故事", "中", "有", "为了", "天下人", "至死不渝", "的", "信仰", ",", "有", "为了", "爱人", "出生入死", "的", "爱情", ",", "有", "为了", "友人", "以", "一", "己", "之", "力", "对抗", "朝廷", "的", "大义", ",", "也有", "一", "个", "繁华落尽", "、", "残阳如血", "的", "大唐", ",", "推理", "解谜", "的", "同时", ",", "也", "展现", "了", "说", "不", "尽", "的", "人间", "百态", "、", "道", "不完", "的", "苦乐", "辛酸", "。"], 
				["《", "风雪", "追击", "》", "by", ":", "东野圭吾"], 
				["作品简介", ":", "以", "暴风雪", "中", "的", "滑雪场", "为", "背景", ",", "讲述", "一", "个", "突然", "被", "指", "认为", "杀人", "凶手", "的", "男孩", ",", "为了", "洗", "清", "嫌疑", "而", "进行", "自救", "的", "故事", "。", "作者", "将", "缜密", "的", "故事", "逻辑与", "快节奏", "的", "滑板", "运动", "结合起来", ",", "带来", "一", "种", "奇特", "的", "、", "充满", "紧张", "感", "的", "阅读", "体验", "。", "没有", "血腥", "暴力", ",", "却", "让", "人", "陷入", "人性", "的", "思考", ",", "直", "戳", "人心", ":", "如果有一天", ",", "毫无", "征兆", "地", "被指控", "为", "凶手", ",", "你", "该", "怎么办", "?"], 
				["推荐理由", ":", "东野圭吾", "毫无", "争议", "是", "中国", "读者", "最", "为", "喜爱", "的", "悬疑", "大师", ",", "但", "看", "图书", "销售", "网站", "排行榜", "上", "永远", "挂", "着", "他", "一", "本", "又", "一", "本", "的", "小说", "便", "可", "下", "此", "结论", "。", "也许", "东野圭吾", "的", "文笔", "不是", "最佳", ",", "也许", "他", "的", "推理", "剧情", "显得", "过于简单", ",", "但", "他", "着", "实", "是", "一", "个", "讲故事", "的", "高手", ",", "他", "的", "书", "简单", "易", "看", ",", "真", "真正", "正", "称得上", "是", "让", "人", "想", "一口气", "看", "完", "的", "小说", ",", "无疑", "会", "给", "读者", "带来", "畅快淋漓", "的", "阅读", "体验", "。"], 
				["《", "草原", "动物园", "》", "by", ":", "马伯庸"], 
				["作品简介", ":", "这", "是", "一", "位", "传教士", "带", "着", "“", "半", "个", "动物园", "”", "勇闯", "蒙古草原", "的", "奇幻故事", "。", "光绪", "末", "年", ",", "在", "京城", "的", "美国", "传教士", "柯", "罗威", ",", "突发奇想", "要", "去", "赤峰", "修建", "一座", "草原", "动物园", "。", "他", "带", "着", "雄狮", "、", "大象", "、", "鹦鹉", "、", "蟒蛇", "以及", "一", "对", "虎纹", "马", "、", "五", "只", "狒狒", "一起", "奔赴", "草原", "。", "草原上", ",", "盗", "梦", "少女", "预知未来", "、", "通", "晓", "动物", "语言", "的", "少年", "涅", "槃", "重生", "、", "神秘", "的", "狼变", "月夜", "现身", "。", "这", "是", "一", "部", "关于", "信仰", "的", "动物", "寓言", ",", "一", "场", "巨大", "的", "变革", "在", "勇士", "之", "地", "上演", ",", "一", "段", "史诗", "般", "的", "全新", "冒险", "自此", "展开", "…", "…"], 
				["推荐理由", ":", "这", "是", "一", "场", "奇幻", "的", "梦境", "。", "梦境", "被", "心理学家", "视为", "对", "现实", "的", "逃避", "与", "反击", ",", "其", "本身", "仿佛", "就", "带", "着", "某种", "奇幻", "又", "虚无缥缈", "的", "意味", ",", "梦境", "也是", "文人", "想象力", "的", "源泉", ",", "在", "梦境", "之", "上", "构筑", "起", "的", "小说", "王国", "亦", "能够", "带领", "我们", "逃离", "现实", "世界", "。", "这种", "描写", "寻梦之旅", "的", "小说", "外国", "有", "《", "牧羊少年", "奇幻之旅", "》", ",", "我们", "有", "马伯庸", "的", "新书", "《", "草原", "动物园", "》", ",", "且", "看看", "马伯庸", "如何", "带", "我们", "走入", "这", "场", "梦境", "。"], 
				["《", "有", "匪", "2", ":", "离恨楼", "》", "by", ":", "priest"], 
				["作品简介", ":", "周", "翡", "没有", "等", "来", "段九娘", ",", "却", "一", "头", "撞", "上", "青龙", "主", "郑罗生", "。", "\"", "南北", "双刀", "\"", "传", "人", "、", "\"", "山川", "剑", "\"", "后人", "、", "芙蓉", "神", "掌", "…", "…", "竟", "全", "在", "衡山", "脚下", "这", "一", "间", "小小", "的", "\"", "三春", "客栈", "\"", "凑", "齐", "了", "。", "\"", "山川", "剑", "\"", "亡故", ",", "一", "把", "剑鞘", "却", "被", "多", "方", "争夺", ";", "忠", "武", "将军", "死后", ",", "家眷", "南渡", "时", "遭", "北斗", "追杀", ";", "齐", "门", "生", "变", ",", "至今", "下落不明", ";", "而", "衡山", "这样", "大", "的", "门派", ",", "竟", "也", "人去楼空", "…", "…", "然而", "洗", "墨江", "边", "冲", "天", "的", "火光", ",", "已经", "让", "周", "翡", "来不及", "细想", "这一切", "了", "。", "二", "十", "年", "了", ",", "风雨飘摇", "的", "夹缝", "里", ",", "这", "一隅", "的", "桃源", ",", "真", "能", "长久", "吗", "?"], 
				["推荐理由", ":", "也许", "由于", "对", "坚强", "勇敢", "的", "女孩子", "的", "偏爱", ",", "《", "大唐", "悬疑", "录", "》", "中", "的", "裴玄", "静", "与", "《", "有", "匪", "》", "中", "的", "周翡", "都", "曾", "让", "小", "编", "为", "之", "欢呼", "与", "落泪", "。", "这", "是", "一", "个", "江湖", "故事", ",", "也是", "一", "个", "浑身", "傲骨", "的", "女孩子", "如何", "在", "乱世", "之", "中", "摸爬滚打", "的", "故事", "。", "那个", "曾经", "不知", "天高地厚", "的", "水草", "精", ",", "终究", "长", "成", "了", "一", "个", "鬓", "似", "鸦", "羽", "、", "眉目", "宛然", "的", "红衣", "女侠", ",", "也", "终", "是", "在", "冷铁", "卷刃", "前", "得", "以", "窥见", "了", "天", "光", "。"], 
				["声明", ":", "本", "文", "由", "入驻", "搜狐", "公众", "平台", "的", "作者", "撰写", ",", "除", "搜狐", "官方", "账号", "外", ",", "观点", "仅", "代表", "作者", "本人", ",", "不", "代表", "搜狐", "立场", "。"]
			], 
			"paragraphs": [
				"文章 阅读", 
				"2017年的第一季度刚刚过去,大家在这三个月里有读到什么好书吗?培根曾说过:“孤独寂寞时,阅读可以消遣。高谈阔论时,知识可供装饰。处世行事时,知识意味着才干。”不论你是一个尚且在学海中遨游的学生,还是一个已经工作多年的成熟社会人,读书从来不该带有功利的意味,而是该从中看到世界万事万物的运行轨迹,也该从中体味生活和成长进步。",
				"一年的52周里,即使每周坚持阅读一本书,总共也不过52本而已,更遑论现代人一直有着拖延症的通病,我们阅读的书籍实在太少了。在浩如烟海的出版物之中,小编为你精心挑选了几本极富趣味性、又不乏内涵的小说,希望能够让各位在有限的阅读时间里享受到更多的乐趣。", 
				"《大唐悬疑录:长恨歌密码》 by:唐隐", 
				"作品简介:杨贵妃究竟死于马嵬驿,还是逃生日本?", 
				"大诗人白居易根据杨贵妃的秘闻写就名篇《长恨歌》,不想竟引来杀身之祸。各路僧、道、官、匪先后出动,齐齐盯上了《长恨歌》中的明文暗码……", 
				"推荐理由:《大唐悬疑录》系列中,女神探裴玄静踏入了一个关乎国家兴衰的阴谋杀局之中,她历经艰辛,只为找到最终的真相。她曾说“身为大唐的子民,我知道大唐的荣光从来不是幻觉。我相信,并且愿意用生命去维护它”。", 
				"这个故事中有为了天下人至死不渝的信仰,有为了爱人出生入死的爱情,有为了友人以一己之力对抗朝廷的大义,也有一个繁华落尽、残阳如血的大唐,推理解谜的同时,也展现了说不尽的人间百态、道不完的苦乐辛酸。", 
				"《风雪追击》 by:东野圭吾", 
				"作品简介:以暴风雪中的滑雪场为背景,讲述一个突然被指认为杀人凶手的男孩,为了洗清嫌疑而进行自救的故事。作者将缜密的故事逻辑与快节奏的滑板运动结合起来,带来一种奇特的、充满紧张感的阅读体验。没有血腥暴力,却让人陷入人性的思考,直戳人心:如果有一天,毫无征兆地被指控为凶手,你该怎么办?", 
				"推荐理由:东野圭吾毫无争议是中国读者最为喜爱的悬疑大师,但看图书销售网站排行榜上永远挂着他一本又一本的小说便可下此结论。也许东野圭吾的文笔不是最佳,也许他的推理剧情显得过于简单,但他着实是一个讲故事的高手,他的书简单易看,真真正正称得上是让人想一口气看完的小说,无疑会给读者带来畅快淋漓的阅读体验。", 
				"《草原动物园》 by:马伯庸", 
				"作品简介:这是一位传教士带着“半个动物园”勇闯蒙古草原的奇幻故事。光绪末年,在京城的美国传教士柯罗威,突发奇想要去赤峰修建一座草原动物园。他带着雄狮、大象、鹦鹉、蟒蛇以及一对虎纹马、五只狒狒一起奔赴草原。草原上,盗梦少女预知未来、通晓动物语言的少年涅槃重生、神秘的狼变月夜现身。这是一部关于信仰的动物寓言,一场巨大的变革在勇士之地上演,一段史诗般的全新冒险自此展开……", 
				"推荐理由:这是一场奇幻的梦境。梦境被心理学家视为对现实的逃避与反击,其本身仿佛就带着某种奇幻又虚无缥缈的意味,梦境也是文人想象力的源泉,在梦境之上构筑起的小说王国亦能够带领我们逃离现实世界。这种描写寻梦之旅的小说外国有《牧羊少年奇幻之旅》,我们有马伯庸的新书《草原动物园》,且看看马伯庸如何带我们走入这场梦境。",
				"《有匪2:离恨楼》 by:priest", 
				"作品简介:周翡没有等来段九娘,却一头撞上青龙主郑罗生。\"南北双刀\"传人、\"山川剑\"后人、芙蓉神掌……竟全在衡山脚下这一间小小的\"三春客栈\"凑齐了。\"山川剑\"亡故,一把剑鞘却被多方争夺;忠武将军死后,家眷南渡时遭北斗追杀;齐门生变,至今下落不明;而衡山这样大的门派,竟也人去楼空……然而洗墨江边冲天的火光,已经让周翡来不及细想这一切了。二十年了,风雨飘摇的夹缝里,这一隅的桃源,真能长久吗?", 
				"推荐理由:也许由于对坚强勇敢的女孩子的偏爱,《大唐悬疑录》中的裴玄静与《有匪》中的周翡都曾让小编为之欢呼与落泪。这是一个江湖故事,也是一个浑身傲骨的女孩子如何在乱世之中摸爬滚打的故事。那个曾经不知天高地厚的水草精,终究长成了一个鬓似鸦羽、眉目宛然的红衣女侠,也终是在冷铁卷刃前得以窥见了天光。", 
				"声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。"
			]
		}, 
		{
			"is_selected": false, 
			"title": "2017年最好看的小说。推荐下。_百度知道", 
			"most_related_para": 0, 
			"segmented_title": ["2017", "年", "最", "好看", "的", "小说", "。", "推荐", "下", "。", "_", "百度", "知道"], 
			"segmented_paragraphs": [
				["女人", "30", "+", "保鲜", "攻略", "作者", ":", "蓝", "一", "薰", "简介", ":", "有人", "说", ",", "30", "几", "岁", "是", "女人", "最具", "风采", "、", "最", "懂", "生活", "的", "年龄", "。", "因为", "她们", "大", "多", "已经", "为", "人妻", "为人", "母", ",", "褪去", "了", "青涩", "、", "任性", "和", "幼稚", "之后", ",", "更加", "懂得珍惜", "生活", ",", "她们", "开始", "客观", "审视", "自己", "的", "过往", ",", "同时", "理性", "地", "规划", "着", "自己", "的", "未来", "。", "也", "有人", "说", "女人", "30", "岁", "开始", ",", "就", "成", "了", "凋萎", "的", "年龄", ",", "就像", "一朵", "鲜花", "有", "花期", "一样", ",", "虽然", "它", "有", "开", "得", "最美", "的", "时候"], 
				["楼主", ",", "请问", "是", "言情", "的", "还是", "耽美", "的", "!"], 
				["prist", "《", "默读", "》"]
			], 
			"paragraphs": [
				"女人30+保鲜攻略 作者: 蓝一薰 简介: 有人说,30几岁是女人最具风采、最懂生活的年龄。因为她们大多已经为人妻为人母,褪去了青涩、任性和幼稚之后,更加懂得珍惜生活,她们开始客观审视自己的过往,同时理性地规划着自己的未来。也有人说女人30岁开始,就成了凋萎的年龄,就像一朵鲜花有花期一样,虽然它有开得最美的时候", 
				"楼主,请问是言情的还是耽美的!", 
				"prist《默读》"
			]
		}
	], 
	"answer_spans": [[12, 25]], 
	"answer_docs": [3], 
	"fake_answers": ["《大唐悬疑录》中的裴玄静与《有匪》"], 
	"question": "2017有什么好看的小说", 
	"segmented_answers": [
		["1", ".", "《", "将夜", "》", "2", ".", "《", "择天记", "》", "3", ".", "《", "冒牌大英雄", "》", "4", ".", "《", "无限恐怖", "》", "5", ".", "《", "恐怖", "搞", "校", "》", "6", ".", "《", "大国医", "》", "7", ".", "《", "龙", "魔导", "》", "。"], 
		["《", "大唐", "悬疑", "录", ":", "长恨歌", "密码", "》", "、", "《", "风雪", "追击", "》", "、", "《", "草原", "动物园", "》", "、", "《", "有", "匪", "2", ":", "离恨楼", "》", "。"], 
		["我们", "住", "在一起", "、", "月", "都", "花", "落", ",", "沧海", "花开", "、", "天", "定", "风", "华", "、", "寻找爱情", "的", "邹", "小姐", "、", "应许之日", "、", "星光", "的", "彼端", "、", "他来了", ",", "请闭眼", "。"]
	], 
	"answers": ["1.《将夜》2.《择天记》3.《冒牌大英雄》4.《无限恐怖》5.《恐怖搞校》6.《大国医》7.《龙魔导》。", "《大唐悬疑录:长恨歌密码》、《风雪追击》、《草原动物园》、《有匪2:离恨楼》。", "我们住在一起、月都花落,沧海花开、天定风华、寻找爱情的邹小姐、应许之日、星光的彼端、他来了,请闭眼。"], 
	"entity_answers": [
		["将夜", "择天记", "冒牌大英雄", "无限恐怖", "恐怖搞校", "大国医", "龙魔导"], 
		["长恨歌密码", "风雪追击", "草原动物园", "离恨楼"], 
		["我们住在一起", "月都花落", "沧海花开", "天定风华", "寻找爱情的邹小姐", "应许之日", "星光的彼端", "他来了", "请闭眼"], 
		["金陵春", "女人30+保鲜攻略", "凤倾天阑", "寻找爱情的邹小姐", "忘川", "将夜", "凤囚凰", "无限恐怖", "有匪2:离恨楼", "夏有乔木 雅望天堂", "他来了,请闭眼", "千金笑", "牧羊少年奇幻之旅", "沧海花开", "龙魔导", "月都花落", "草原动物园", "凤求凰", "仙鸿路", "岁月是朵双生花", "有匪", "离恨楼", "千金记", "我们住在一起", "天定风流", "神探夏洛克", "择天记", "恐怖搞校", "风雪追击", "满满都是我对你的爱", "如果蜗牛有爱情", "天定风华", "第十三座消失的城", "星光的彼端", "何以笙箫默", "大唐悬疑录", "长恨歌密码", "欢喜记", "大国医", "请闭眼", "大唐悬疑录:长恨歌密码", "他来了", "默读", "月都花落,沧海花开", "应许之日", "寻秦记", "再别康桥", "冒牌大英雄"]
	], 
	"segmented_question": ["2017", "有", "什么", "好看", "的", "小说"], 
	"question_type": "ENTITY", 
	"match_scores": [0.43902439024390244], 
	"fact_or_opinion": "OPINION", 
	"question_id": 186572
}

预处理过的数据结构如上,下面进行详细分析:

  • question_id表示问题的编号;
  • fact_or_opinion表示问题是属于事实类型还是观点类型;
  • question_type表示问题的大类型,属于描述型、实体型还是是非型;
  • question表示所述问题,是一个字符串;
  • segmented_question 表示所述问题的分词结果;
  • answers表示答案集合,是一个list类型,里面包含0个、1个或多个字符串,每一个字符串表示一个答案;
  • segmented_answers表示答案集合的分词结果;
  • fake_answers 表示自动生成的答案,是一个list类型,如果答案集为空,那么list为空,否则包含一个字符串;
  • match_scores 表示自动生成答案的评分,使用的是F1值;
  • answer_docs表示生成答案所在的文档标号,是一个list类型,包含一个数值;
  • documents表示文档集合,是一个list类型,里面包含多个字典型元素,每一个字典型元素包含一个文档的所有信息,如下:
    • is_selected表示该篇文档是否包含答案,是一个bool类型,
    • title表示该篇文档的标题,是一个字符串类型,
    • paragraphs表示该篇文档中的具体内容,是一个list类型,里面包含多个字符串,每一个字符串表示该篇文档的一个段落;
    • segmented_paragraphs表示该篇文档中的具体内容的分词结果;
    • most_related_para表示文档中那个段落最与答案或者问题接近,是一个数值。

最优段落的选择: 使用一篇文档中的所有段落分别与答案集求查全率,得到最高的查全率的段落为最优段落,如果出现查全率相等的情况,取段落短的为最优段落。查全率recall,是段落词与答案词相同的个数,除以答案词的总个数。

伪答案的生成: 对所选的最优段落,遍历词块,计算词块与答案集的F1值,得到F1值最大的词块,记录该词块所在的文档和该文档最优段落的起始和结束位置。

对于测试集,没有答案集合,选择最优段落则是使用一篇文档中的所有段落分别与问题集求查全率,得到最高的查全率的段落为最优段落,如果出现查全率相等的情况,取段落短的为最优段落。

2、DuReader数据预处理

2.1 数据处理模块01:利用Bert的tokenizer将所有输入文本序列化(run_squad.py)

read_squad_examples() 函数:

  • 作用:过滤一些文档(比如不可回答,置信度打分过低的文档等等);并且得到想要的数据格式;
  • 输入:/data/extracted/trainset/search.train.json、/data/extracted/devset/search.dev.json 等文件;
  • 输出:是一个字典,如下:
       example = {
    	   "qas_id": source['question_id'],
    	   "question_text": source['question'].strip(),
    	   "question_type": question_type,
    	   "doc_tokens": new_doc_tokens.strip(),
    	   "can_answer": 1,
    	   "start_position": new_start_id,
    	   "end_position": new_end_id,
    	   "answer": source['answers'][answer_index].strip()
       }
    

read_squad_examples() 函数:

  • 作用:将read_squad_examples() 函数处理的数据转为ids,并且对passage增加[CLS]等特殊字符
  • 输入:read_squad_examples()处理好的examples
  • 输出:是一个字典,如下:
    {	
    	"input_ids": input_ids,
    	"input_ids_q": input_ids_q,
    	"input_mask": input_mask,
    	"input_mask_q": input_mask_q,
    	"segment_ids": segment_ids,
    	"can_answer": can_answer,
    	"start_position": start_position,
    	"end_position": end_position,
    	"answer_ids": answer_ids,
    	"answer_mask": answer_mask
    }
    

完整代码如下:

# -- coding: utf-8 --
# 本文件的作用:利用Bert的tokenizer将所有输入文本序列化
import json
import random
from transformers import BertTokenizer  # 加载官方库

random.seed(42)


def read_squad_examples(search_input_file, is_training=True):
    examples = []
    with open(search_input_file, 'rb') as f:
        for line in f.readlines():
            line = json.loads(line.strip())  # 将每一行的json字符串转为json格式
            # 删除documents里没有内容的样本
            if len(line['documents']) == 0:
                continue
            # 删除没有答案的样本
            if (len(line['answer_spans']) == 0) or line['answers'] == []:
                continue
            # 删除答案匹配度小于0.8的样本
            if line['match_scores'][0] < 0.8:
                continue
            # 提取最佳答案的index
            answer_index = line['best_answer_index'][0]
            # 提取答案所在的document索引
            docs_index = line['answer_docs'][0]
            # 提取question类型
            question_type = line['question_type']
            # 提取当前样本的第docs_index篇document的most_related_para
            try:
                answer_passage_idx = line['documents'][docs_index]['most_related_para']
            except:
                continue

            doc_tokens = line['documents'][docs_index]['segmented_paragraphs'][answer_passage_idx]

            new_doc_tokens = "".join(doc_tokens)

            if is_training:
                example = {
                    "question_text": line['question'].strip(),
                    "document_text": new_doc_tokens.strip(),
                    "answer_text": line['answers'][answer_index].strip()
                }
                # example =
                # {
                # 	'answer_text': '一般是安眠药或者去医院进行安乐死。'
                # 	'question_text': '睡觉中猝死的方法',
                # 	'document_text': '病情分析:你好一般是安眠药或者去医院进行安乐死指导意见:不过这不是解决的方法这也是不允许的如果心理有问题应该咨询心理医生'
                # }
                examples.append(example)

    print(search_input_file, "筛选后的样本数量----len(examples):", len(examples))
    return examples


def convert_examples_to_features(examples, tokenizer, max_seq_length, max_query_length, max_ans_length, output_path):
    features = []
    for example in examples:
        # --------------------------- 提取当前样本的各个字段 ---------------------------
        query_tokens = list(example['question_text'])  # ['睡', '觉', '中', '猝', '死', '的', '方', '法']
        doc_tokens = list(example['document_text'].replace(u"“", u"\"").replace(u"”", u"\""))  # ['病', '情', '分', '析', ':', '你', '好', '一', '般', '是', '安', '眠', '药', '或', '者', '去', '医', '院', '进', '行', '安', '乐', '死', '指', '导', '意', '见', ':', '不', '过', '这', '不', '是', '解', '决', '的', '方', '法', '这', '也', '是', '不', '允', '许', '的', '如', '果', '心', '理', '有', '问', '题', '应', '该', '咨', '询', '心', '理', '医', '生']
        answer_tokens = list(example['answer_text'].replace(u"“", u"\"").replace(u"”", u"\""))  # ['一', '般', '是', '安', '眠', '药', '或', '者', '去', '医', '院', '进', '行', '安', '乐', '死', '。']
        print('\nquery_tokens = ', query_tokens)
        print('doc_tokens = ', doc_tokens)
        print('answer_tokens = ', answer_tokens)
        # --------------------------- 初始化各个字段 ---------------------------
        answer_ids = []  # answer序列化后的ids存放在此
        input_tokens_q_d = []  # document与query合并、序列化后放入input_tokens_q_d
        input_tokens_q = []  # query序列化后放入input_tokens_q
        segment_ids = []  # 片段标识,用于确认query、document拼接后的tokens,哪一部分属于query,哪一部分属于document【query部分用0标识;document部分用1标识】
        input_tokens_q_d.append("[CLS]")
        segment_ids.append(0)

        # --------------------------- 对answer进行处理 ---------------------------
        answer_tokens.insert(0, "[GO]")  # 在答案的开始位置增加一个[GO]
        answer_tokens.append("[EOS]")  # ['[GO]', '一', '般', '是', '安', '眠', '药', '或', '者', '去', '医', '院', '进', '行', '安', '乐', '死', '。', '[EOS]']
        if len(answer_tokens) > max_ans_length:
            answer_tokens = answer_tokens[0:max_ans_length - 1]
            answer_tokens.append("[EOS]")

        # --------------------------- 对query进行处理 ---------------------------
        if len(query_tokens) > max_query_length:
            query_tokens = query_tokens[0:max_query_length]
        for token in query_tokens:
            input_tokens_q.append(token)
            input_tokens_q_d.append(token)
            segment_ids.append(0)
        input_tokens_q_d.append("[SEP]")
        segment_ids.append(0)

        # --------------------------- 对document进行处理 ---------------------------
        for i in doc_tokens:
            input_tokens_q_d.append(i)
            segment_ids.append(1)
        input_tokens_q_d.append("[SEP]")
        segment_ids.append(1)

        # --------------------------- 将query+document限定为设定的长度 ---------------------------
        if len(input_tokens_q_d) > max_seq_length:
            input_tokens_q_d[max_seq_length - 1] = "[SEP]"
            input_tokens_q_d = input_tokens_q_d[:max_seq_length]
            segment_ids = segment_ids[:max_seq_length]

        # --------------------------- 利用Bert的tokenizer将answer_tokens、query+document、query序列化为ids ---------------------------
        answer_ids = tokenizer.convert_tokens_to_ids(answer_tokens)  # [100, 671, 5663, 3221, 2128, 4697, 5790, 2772, 5442, 1343, 1278, 7368, 6822, 6121, 2128, 727, 3647, 511, 100]
        input_ids_q_d = tokenizer.convert_tokens_to_ids(input_tokens_q_d)
        input_ids_q = tokenizer.convert_tokens_to_ids(input_tokens_q)

        # --------------------------- 设置各个输入序列的mask  ---------------------------
        answer_mask = [1] * len(answer_ids)
        input_mask_q_d = [1] * len(input_ids_q_d)
        input_mask_q = [1] * len(input_ids_q)

        assert len(input_ids_q_d) == len(segment_ids)  # 确保用于分片的segment的长度与所代表的token数量保持一致

        # 将各个输入的序列化后的数据装入 feature 中
        feature = {
            "answer_ids": answer_ids,
            "input_ids_q_d": input_ids_q_d,
            "input_ids_q": input_ids_q,
            "answer_mask": answer_mask,
            "input_mask_q_d": input_mask_q_d,
            "input_mask_q": input_mask_q,
            "segment_ids": segment_ids
        }
        print('feature = ', feature)
        features.append(feature)

    print("\n所有样本由文本转为id后的样本数量----len(features):", len(features))

    # 将各个输入的序列化后的数据保存在指定文件中
    with open(output_path, 'w', encoding="utf-8") as fout:
        for feature in features:
            fout.write(json.dumps(feature, ensure_ascii=False) + '\n')

    return features


if __name__ == "__main__":
    # 一、加载bert的分词器
    tokenizer = BertTokenizer.from_pretrained('../chinese-roberta-wwm-ext')  # do_lower_case=True
    print('Bert预训练模型词表大小:', len(tokenizer.vocab))  # 21128, the number of tne vocab

    # 生成训练数据, train.data
    examples_train = read_squad_examples(search_input_file="../data/extracted/search.train")
    features = convert_examples_to_features(examples=examples_train, tokenizer=tokenizer, max_seq_length=512, max_query_length=60, max_ans_length=512, output_path="./processed_data/train.data")

    # 生成验证数据, dev.data
    examples_dev = read_squad_examples(search_input_file="../data/extracted/search.dev")
    features = convert_examples_to_features(examples=examples_dev, tokenizer=tokenizer, max_seq_length=512, max_query_length=60, max_ans_length=512, output_path="./processed_data/dev.data")

打印结果:

Bert预训练模型词表大小: 21128
../data/extracted/search.train 筛选后的样本数量----len(examples): 39

query_tokens =  ['微', '信', '分', '享', '链', '接', '打', '开', 'a', 'p', 'p']
doc_tokens =  ['1', '将', '手', '机', '微', '信', '打', '开', '。', '步', '骤', '阅', '读', '2', '打', '开', '微', '信', '中', '的', '链', '接', '。', '步', '骤', '阅', '读', '3', '如', '图', '我', '们', '打', '开', '百', '度', '经', '验', '的', '链', '接', ',', '用', '微', '信', '浏', '览', '器', '进', '入', '网', '页', '以', '后', ',', '点', '击', '右', '上', '方', '如', '图', '符', '号', '。', '步', '骤', '阅', '读', '4', '进', '入', '选', '择', '页', '面', ',', '点', '击', '"', '在', '浏', '览', '器', '"', '打', '开', '。', '步', '骤', '阅', '读', '5', '如', '图', '会', '出', '现', '手', '机', '已', '安', '装', '的', '本', '地', 'A', 'P', 'P', '浏', '览', '器', ',', '我', '们', '选', '择', '一', '个', '自', '己', '想', '用', '的', '本', '地', '浏', '览', '器', '点', '击', '下', '方', '"', '仅', '一', '次', '"', '或', '"', '总', '是', '"', '都', '可', '以', '打', '开', '打', '开', '本', '地', 'A', 'P', 'P', '浏', '览', '器', '。', '步', '骤', '阅', '读', '6', '此', '时', ',', '我', '们', '就', '已', '经', '在', '微', '信', '浏', '览', '器', '中', '将', '本', '地', 'A', 'P', 'P', '浏', '览', '器', '打', '开', '了', '步', '骤', '阅', '读', 'E', 'N', 'D']
answer_tokens =  ['1', '将', '手', '机', '微', '信', '打', '开', '。', '2', '打', '开', '微', '信', '中', '的', '链', '接', '。', '3', '我', '们', '打', '开', '百', '度', '经', '验', '的', '链', '接', ',', '用', '微', '信', '浏', '览', '器', '进', '入', '网', '页', '以', '后', ',', '点', '击', '右', '上', '方', '如', '图', '符', '号', '。', '4', '进', '入', '选', '择', '页', '面', ',', '点', '击', '"', '在', '浏', '览', '器', '"', '打', '开', '。', '5', '出', '现', '手', '机', '已', '安', '装', '的', '本', '地', 'A', 'P', 'P', '浏', '览', '器', ',', '我', '们', '选', '择', '一', '个', '自', '己', '想', '用', '的', '本', '地', '浏', '览', '器', '点', '击', '下', '方', '"', '仅', '一', '次', '"', '或', '"', '总', '是', '"', '都', '可', '以', '打', '开', '打', '开', '本', '地', 'A', 'P', 'P', '浏', '览', '器', '。', '6', '此', '时', ',', '我', '们', '就', '已', '经', '在', '微', '信', '浏', '览', '器', '中', '将', '本', '地', 'A', 'P', 'P', '浏', '览', '器', '打', '开', '了', '。']
feature =  {'answer_ids': [100, 122, 2199, 2797, 3322, 2544, 928, 2802, 2458, 511, 123, 2802, 2458, 2544, 928, 704, 4638, 7216, 2970, 511, 124, 2769, 812, 2802, 2458, 4636, 2428, 5307, 7741, 4638, 7216, 2970, 8024, 4500, 2544, 928, 3846, 6229, 1690, 6822, 1057, 5381, 7552, 809, 1400, 8024, 4157, 1140, 1381, 677, 3175, 1963, 1745, 5016, 1384, 511, 125, 6822, 1057, 6848, 2885, 7552, 7481, 8024, 4157, 1140, 107, 1762, 3846, 6229, 1690, 107, 2802, 2458, 511, 126, 1139, 4385, 2797, 3322, 2347, 2128, 6163, 4638, 3315, 1765, 100, 100, 100, 3846, 6229, 1690, 8024, 2769, 812, 6848, 2885, 671, 702, 5632, 2346, 2682, 4500, 4638, 3315, 1765, 3846, 6229, 1690, 4157, 1140, 678, 3175, 107, 788, 671, 3613, 107, 2772, 107, 2600, 3221, 107, 6963, 1377, 809, 2802, 2458, 2802, 2458, 3315, 1765, 100, 100, 100, 3846, 6229, 1690, 511, 127, 3634, 3198, 8024, 2769, 812, 2218, 2347, 5307, 1762, 2544, 928, 3846, 6229, 1690, 704, 2199, 3315, 1765, 100, 100, 100, 3846, 6229, 1690, 2802, 2458, 749, 511, 100], 'input_ids_q_d': [101, 2544, 928, 1146, 775, 7216, 2970, 2802, 2458, 143, 158, 158, 102, 122, 2199, 2797, 3322, 2544, 928, 2802, 2458, 511, 3635, 7752, 7325, 6438, 123, 2802, 2458, 2544, 928, 704, 4638, 7216, 2970, 511, 3635, 7752, 7325, 6438, 124, 1963, 1745, 2769, 812, 2802, 2458, 4636, 2428, 5307, 7741, 4638, 7216, 2970, 117, 4500, 2544, 928, 3846, 6229, 1690, 6822, 1057, 5381, 7552, 809, 1400, 117, 4157, 1140, 1381, 677, 3175, 1963, 1745, 5016, 1384, 511, 3635, 7752, 7325, 6438, 125, 6822, 1057, 6848, 2885, 7552, 7481, 117, 4157, 1140, 107, 1762, 3846, 6229, 1690, 107, 2802, 2458, 511, 3635, 7752, 7325, 6438, 126, 1963, 1745, 833, 1139, 4385, 2797, 3322, 2347, 2128, 6163, 4638, 3315, 1765, 100, 100, 100, 3846, 6229, 1690, 117, 2769, 812, 6848, 2885, 671, 702, 5632, 2346, 2682, 4500, 4638, 3315, 1765, 3846, 6229, 1690, 4157, 1140, 678, 3175, 107, 788, 671, 3613, 107, 2772, 107, 2600, 3221, 107, 6963, 1377, 809, 2802, 2458, 2802, 2458, 3315, 1765, 100, 100, 100, 3846, 6229, 1690, 511, 3635, 7752, 7325, 6438, 127, 3634, 3198, 117, 2769, 812, 2218, 2347, 5307, 1762, 2544, 928, 3846, 6229, 1690, 704, 2199, 3315, 1765, 100, 100, 100, 3846, 6229, 1690, 2802, 2458, 749, 3635, 7752, 7325, 6438, 100, 100, 100, 102], 'input_ids_q': [2544, 928, 1146, 775, 7216, 2970, 2802, 2458, 143, 158, 158], 'answer_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'input_mask_q_d': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'input_mask_q': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'segment_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}

query_tokens =  ['睡', '觉', '中', '猝', '死', '的', '方', '法']
doc_tokens =  ['病', '情', '分', '析', ':', '你', '好', '一', '般', '是', '安', '眠', '药', '或', '者', '去', '医', '院', '进', '行', '安', '乐', '死', '指', '导', '意', '见', ':', '不', '过', '这', '不', '是', '解', '决', '的', '方', '法', '这', '也', '是', '不', '允', '许', '的', '如', '果', '心', '理', '有', '问', '题', '应', '该', '咨', '询', '心', '理', '医', '生']
answer_tokens =  ['一', '般', '是', '安', '眠', '药', '或', '者', '去', '医', '院', '进', '行', '安', '乐', '死', '。']
feature =  {'answer_ids': [100, 671, 5663, 3221, 2128, 4697, 5790, 2772, 5442, 1343, 1278, 7368, 6822, 6121, 2128, 727, 3647, 511, 100], 'input_ids_q_d': [101, 4717, 6230, 704, 4340, 3647, 4638, 3175, 3791, 102, 4567, 2658, 1146, 3358, 131, 872, 1962, 671, 5663, 3221, 2128, 4697, 5790, 2772, 5442, 1343, 1278, 7368, 6822, 6121, 2128, 727, 3647, 2900, 2193, 2692, 6224, 131, 679, 6814, 6821, 679, 3221, 6237, 1104, 4638, 3175, 3791, 6821, 738, 3221, 679, 1038, 6387, 4638, 1963, 3362, 2552, 4415, 3300, 7309, 7579, 2418, 6421, 1486, 6418, 2552, 4415, 1278, 4495, 102], 'input_ids_q': [4717, 6230, 704, 4340, 3647, 4638, 3175, 3791], 'answer_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'input_mask_q_d': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'input_mask_q': [1, 1, 1, 1, 1, 1, 1, 1], 'segment_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}

......

query_tokens =  ['a', 'p', '考', '试', '时', '间']
doc_tokens =  ['每', '年', '3', '月', '前', '报', '名', '、', '5', '月', '考', '试', '、', '7', '月', '底', '之', '前', '考', '生', '就', '可', '以', '收', '到', '成', '绩', '单', '。', 'A', 'P', '考', '试', '每', '年', '一', '次', ',', '为', '期', '两', '周', ',', '被', '安', '排', '在', '5', '月', '进', '行', '。', '每', '门', '课', '的', '考', '试', '时', '间', '约', '2', '-', '3', '个', '小', '时', '。']
answer_tokens =  ['2', '-', '3', '个', '小', '时', '。']
feature =  {'answer_ids': [100, 123, 118, 124, 702, 2207, 3198, 511, 100], 'input_ids_q_d': [101, 143, 158, 5440, 6407, 3198, 7313, 102, 3680, 2399, 124, 3299, 1184, 2845, 1399, 510, 126, 3299, 5440, 6407, 510, 128, 3299, 2419, 722, 1184, 5440, 4495, 2218, 1377, 809, 3119, 1168, 2768, 5327, 1296, 511, 100, 100, 5440, 6407, 3680, 2399, 671, 3613, 117, 711, 3309, 697, 1453, 117, 6158, 2128, 2961, 1762, 126, 3299, 6822, 6121, 511, 3680, 7305, 6440, 4638, 5440, 6407, 3198, 7313, 5276, 123, 118, 124, 702, 2207, 3198, 511, 102], 'input_ids_q': [143, 158, 5440, 6407, 3198, 7313], 'answer_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1], 'input_mask_q_d': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'input_mask_q': [1, 1, 1, 1, 1, 1], 'segment_ids': [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}

所有样本由文本转为id后的样本数量----len(features): 39
../data/extracted/search.dev 筛选后的样本数量----len(examples): 37

query_tokens =  ['截', '至', '和', '截', '止', '区', '别']
doc_tokens =  ['"', '截', '止', '"', '与', '"', '截', '至', '"', '的', '区', '别', ':', '一', '、', '名', '次', '解', '释', ':', '"', '截', '止', '"', '表', '示', '到', '某', '个', '时', '间', '停', '止', ',', '强', '调', '"', '停', '止', '"', ';', '"', '截', '至', '"', '表', '示', '停', '止', '于', '某', '个', '时', '间', ',', '强', '调', '"', '时', '间', '"', '。', '二', '、', '举', '例', '说', '明', ':', '\u3000', '\u3000', '1', '.', '在', '使', '用', '时', ',', '"', '截', '至', '"', '后', '面', '须', '带', '时', '间', '词', '语', '(', '做', '宾', '语', ')', '。', '例', '如', ':', '截', '至', '昨', '天', ',', '截', '至', '本', '月', '底', '。', '\u3000', '\u3000', '2', '.', '"', '截', '止', '"', '不', '能', '带', '时', '间', '词', '语', '(', '做', '宾', '语', ')', '。', '"', '截', '止', '"', '一', '般', '用', '于', '时', '间', '词', '语', '之', '后', ',', '例', '如', ':', '报', '名', '工', '作', '已', '于', '昨', '日', '截', '止', ',', '投', '票', '将', '在', '本', '月', '底', '截', '止', '。']
answer_tokens =  ['"', '截', '止', '"', '与', '"', '截', '至', '"', '的', '区', '别', ':', '一', '、', '名', '次', '解', '释', ':', '"', '截', '止', '"', '表', '示', '到', '某', '个', '时', '间', '停', '止', ',', '强', '调', '"', '停', '止', '"', ';', '"', '截', '至', '"', '表', '示', '停', '止', '于', '某', '个', '时', '间', ',', '强', '调', '"', '时', '间', '"', '。']
feature =  {'answer_ids': [100, 107, 2779, 3632, 107, 680, 107, 2779, 5635, 107, 4638, 1277, 1166, 8038, 671, 510, 1399, 3613, 6237, 7025, 8038, 107, 2779, 3632, 107, 6134, 4850, 1168, 3378, 702, 3198, 7313, 977, 3632, 8024, 2487, 6444, 107, 977, 3632, 107, 8039, 107, 2779, 5635, 107, 6134, 4850, 977, 3632, 754, 3378, 702, 3198, 7313, 8024, 2487, 6444, 107, 3198, 7313, 107, 511, 100], 'input_ids_q_d': [101, 2779, 5635, 1469, 2779, 3632, 1277, 1166, 102, 107, 2779, 3632, 107, 680, 107, 2779, 5635, 107, 4638, 1277, 1166, 131, 671, 510, 1399, 3613, 6237, 7025, 131, 107, 2779, 3632, 107, 6134, 4850, 1168, 3378, 702, 3198, 7313, 977, 3632, 117, 2487, 6444, 107, 977, 3632, 107, 132, 107, 2779, 5635, 107, 6134, 4850, 977, 3632, 754, 3378, 702, 3198, 7313, 117, 2487, 6444, 107, 3198, 7313, 107, 511, 753, 510, 715, 891, 6432, 3209, 131, 100, 100, 122, 119, 1762, 886, 4500, 3198, 117, 107, 2779, 5635, 107, 1400, 7481, 7557, 2372, 3198, 7313, 6404, 6427, 113, 976, 2161, 6427, 114, 511, 891, 1963, 131, 2779, 5635, 3219, 1921, 117, 2779, 5635, 3315, 3299, 2419, 511, 100, 100, 123, 119, 107, 2779, 3632, 107, 679, 5543, 2372, 3198, 7313, 6404, 6427, 113, 976, 2161, 6427, 114, 511, 107, 2779, 3632, 107, 671, 5663, 4500, 754, 3198, 7313, 6404, 6427, 722, 1400, 117, 891, 1963, 131, 2845, 1399, 2339, 868, 2347, 754, 3219, 3189, 2779, 3632, 117, 2832, 4873, 2199, 1762, 3315, 3299, 2419, 2779, 3632, 511, 102], 'input_ids_q': [2779, 5635, 1469, 2779, 3632, 1277, 1166], 'answer_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'input_mask_q_d': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'input_mask_q': [1, 1, 1, 1, 1, 1, 1], 'segment_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}

query_tokens =  ['爬', '行', '垫', '什', '么', '材', '质', '的', '好']
doc_tokens =  ['爬', '行', '垫', '根', '据', '中', '间', '材', '料', '的', '不', '同', '可', '以', '分', '为', ':', 'X', 'P', 'E', '爬', '行', '垫', '、', 'E', 'P', 'E', '爬', '行', '垫', '、', 'E', 'V', 'A', '爬', '行', '垫', '、', 'P', 'V', 'C', '爬', '行', '垫', ';', '其', '中', 'X', 'P', 'E', '爬', '行', '垫', '、', 'E', 'P', 'E', '爬', '行', '垫', '都', '属', '于', 'P', 'E', '材', '料', '加', '保', '鲜', '膜', '复', '合', '而', '成', ',', '都', '是', '无', '异', '味', '的', '环', '保', '材', '料', ',', '但', '是', 'X', 'P', 'E', '爬', '行', '垫', '是', '品', '质', '较', '好', '的', '爬', '行', '垫', ',', '韩', '国', '进', '口', '爬', '行', '垫', '都', '是', '这', '种', '爬', '行', '垫', ',', '而', 'E', 'P', 'E', '爬', '行', '垫', '是', '国', '内', '厂', '家', '为', '了', '减', '低', '成', '本', ',', '使', '用', 'E', 'P', 'E', '(', '珍', '珠', '棉', ')', '作', '为', '原', '料', '生', '产', '的', '一', '款', '爬', '行', '垫', ',', '该', '材', '料', '弹', '性', '差', ',', '易', '碎', ',', '开', '孔', '发', '泡', '防', '水', '性', '弱', '。', 'E', 'V', 'A', '爬', '行', '垫', '、', 'P', 'V', 'C', '爬', '行', '垫', '是', '用', 'E', 'V', 'A', '或', 'P', 'V', 'C', '作', '为', '原', '材', '料', '与', '保', '鲜', '膜', '复', '合', '的', '而', '成', '的', '爬', '行', '垫', ',', '或', '者', '把', '图', '案', '转', '印', '在', '原', '材', '料', '上', ',', '这', '两', '款', '爬', '行', '垫', '通', '常', '有', '异', '味', ',', '如', '果', '是', '图', '案', '转', '印', '的', '爬', '行', '垫', ',', '油', '墨', '外', '露', '容', '易', '脱', '落', '。', '当', '时', '我', '儿', '子', '爬', '的', '时', '候', ',', '我', '们', '也', '买', '了', '垫', '子', ',', '但', '是', '始', '终', '有', '味', '。', '最', '后', '就', '没', '用', '了', ',', '铺', '的', '就', '的', '薄', '毯', '子', '让', '他', '爬', '。']
answer_tokens =  ['爬', '行', '垫', '根', '据', '中', '间', '材', '料', '的', '不', '同', '可', '以', '分', '为', ':', 'X', 'P', 'E', '爬', '行', '垫', '、', 'E', 'P', 'E', '爬', '行', '垫', '、', 'E', 'V', 'A', '爬', '行', '垫', '、', 'P', 'V', 'C', '爬', '行', '垫', ';', '其', '中', 'X', 'P', 'E', '爬', '行', '垫', '、', 'E', 'P', 'E', '爬', '行', '垫', '都', '属', '于', 'P', 'E', '材', '料', '加', '保', '鲜', '膜', '复', '合', '而', '成', ',', '都', '是', '无', '异', '味', '的', '环', '保', '材', '料', ',', '但', '是', 'X', 'P', 'E', '爬', '行', '垫', '是', '品', '质', '较', '好', '的', '爬', '行', '垫', ',', '韩', '国', '进', '口', '爬', '行', '垫', '都', '是', '这', '种', '爬', '行', '垫', ',', '而', 'E', 'P', 'E', '爬', '行', '垫', '是', '国', '内', '厂', '家', '为', '了', '减', '低', '成', '本', ',', '使', '用', 'E', 'P', 'E', '作', '为', '原', '料', '生', '产', '的', '一', '款', '爬', '行', '垫', ',', '该', '材', '料', '弹', '性', '差', ',', '易', '碎', ',', '开', '孔', '发', '泡', '防', '水', '性', '弱', '。', 'E', 'V', 'A', '爬', '行', '垫', '、', 'P', 'V', 'C', '爬', '行', '垫', '是', '用', 'E', 'V', 'A', '或', 'P', 'V', 'C', '作', '为', '原', '材', '料', '与', '保', '鲜', '膜', '复', '合', '的', '而', '成', '的', '爬', '行', '垫', ',', '或', '者', '把', '图', '案', '转', '印', '在', '原', '材', '料', '上', ',', '这', '两', '款', '爬', '行', '垫', '通', '常', '有', '异', '味', ',', '如', '果', '是', '图', '案', '转', '印', '的', '爬', '行', '垫', ',', '油', '墨', '外', '露', '容', '易', '脱', '落', '。']
feature =  {'answer_ids': [100, 4260, 6121, 1807, 3418, 2945, 704, 7313, 3332, 3160, 4638, 679, 1398, 1377, 809, 1146, 711, 131, 100, 100, 100, 4260, 6121, 1807, 510, 100, 100, 100, 4260, 6121, 1807, 510, 100, 100, 100, 4260, 6121, 1807, 510, 100, 100, 100, 4260, 6121, 1807, 8039, 1071, 704, 100, 100, 100, 4260, 6121, 1807, 510, 100, 100, 100, 4260, 6121, 1807, 6963, 2247, 754, 100, 100, 3332, 3160, 1217, 924, 7831, 5606, 1908, 1394, 5445, 2768, 8024, 6963, 3221, 3187, 2460, 1456, 4638, 4384, 924, 3332, 3160, 8024, 852, 3221, 100, 100, 100, 4260, 6121, 1807, 3221, 1501, 6574, 6772, 1962, 4638, 4260, 6121, 1807, 8024, 7506, 1744, 6822, 1366, 4260, 6121, 1807, 6963, 3221, 6821, 4905, 4260, 6121, 1807, 8024, 5445, 100, 100, 100, 4260, 6121, 1807, 3221, 1744, 1079, 1322, 2157, 711, 749, 1121, 856, 2768, 3315, 8024, 886, 4500, 100, 100, 100, 868, 711, 1333, 3160, 4495, 772, 4638, 671, 3621, 4260, 6121, 1807, 8024, 6421, 3332, 3160, 2486, 2595, 2345, 8024, 3211, 4810, 8024, 2458, 2096, 1355, 3796, 7344, 3717, 2595, 2483, 511, 100, 100, 100, 4260, 6121, 1807, 510, 100, 100, 100, 4260, 6121, 1807, 3221, 4500, 100, 100, 100, 2772, 100, 100, 100, 868, 711, 1333, 3332, 3160, 680, 924, 7831, 5606, 1908, 1394, 4638, 5445, 2768, 4638, 4260, 6121, 1807, 8024, 2772, 5442, 2828, 1745, 3428, 6760, 1313, 1762, 1333, 3332, 3160, 677, 8024, 6821, 697, 3621, 4260, 6121, 1807, 6858, 2382, 3300, 2460, 1456, 8024, 1963, 3362, 3221, 1745, 3428, 6760, 1313, 4638, 4260, 6121, 1807, 8024, 3779, 1874, 1912, 7463, 2159, 3211, 5564, 5862, 511, 100], 'input_ids_q_d': [101, 4260, 6121, 1807, 784, 720, 3332, 6574, 4638, 1962, 102, 4260, 6121, 1807, 3418, 2945, 704, 7313, 3332, 3160, 4638, 679, 1398, 1377, 809, 1146, 711, 131, 100, 100, 100, 4260, 6121, 1807, 510, 100, 100, 100, 4260, 6121, 1807, 510, 100, 100, 100, 4260, 6121, 1807, 510, 100, 100, 100, 4260, 6121, 1807, 132, 1071, 704, 100, 100, 100, 4260, 6121, 1807, 510, 100, 100, 100, 4260, 6121, 1807, 6963, 2247, 754, 100, 100, 3332, 3160, 1217, 924, 7831, 5606, 1908, 1394, 5445, 2768, 117, 6963, 3221, 3187, 2460, 1456, 4638, 4384, 924, 3332, 3160, 117, 852, 3221, 100, 100, 100, 4260, 6121, 1807, 3221, 1501, 6574, 6772, 1962, 4638, 4260, 6121, 1807, 117, 7506, 1744, 6822, 1366, 4260, 6121, 1807, 6963, 3221, 6821, 4905, 4260, 6121, 1807, 117, 5445, 100, 100, 100, 4260, 6121, 1807, 3221, 1744, 1079, 1322, 2157, 711, 749, 1121, 856, 2768, 3315, 117, 886, 4500, 100, 100, 100, 113, 4397, 4403, 3469, 114, 868, 711, 1333, 3160, 4495, 772, 4638, 671, 3621, 4260, 6121, 1807, 117, 6421, 3332, 3160, 2486, 2595, 2345, 117, 3211, 4810, 117, 2458, 2096, 1355, 3796, 7344, 3717, 2595, 2483, 511, 100, 100, 100, 4260, 6121, 1807, 510, 100, 100, 100, 4260, 6121, 1807, 3221, 4500, 100, 100, 100, 2772, 100, 100, 100, 868, 711, 1333, 3332, 3160, 680, 924, 7831, 5606, 1908, 1394, 4638, 5445, 2768, 4638, 4260, 6121, 1807, 117, 2772, 5442, 2828, 1745, 3428, 6760, 1313, 1762, 1333, 3332, 3160, 677, 117, 6821, 697, 3621, 4260, 6121, 1807, 6858, 2382, 3300, 2460, 1456, 117, 1963, 3362, 3221, 1745, 3428, 6760, 1313, 4638, 4260, 6121, 1807, 117, 3779, 1874, 1912, 7463, 2159, 3211, 5564, 5862, 511, 2496, 3198, 2769, 1036, 2094, 4260, 4638, 3198, 952, 117, 2769, 812, 738, 743, 749, 1807, 2094, 117, 852, 3221, 1993, 5303, 3300, 1456, 511, 3297, 1400, 2218, 3766, 4500, 749, 117, 7215, 4638, 2218, 4638, 5946, 3691, 2094, 6375, 800, 4260, 511, 102], 'input_ids_q': [4260, 6121, 1807, 784, 720, 3332, 6574, 4638, 1962], 'answer_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'input_mask_q_d': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'input_mask_q': [1, 1, 1, 1, 1, 1, 1, 1, 1], 'segment_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}

......

query_tokens =  ['l', 'i', 'v', 'e', '怎', '么', '拍']
doc_tokens =  ['1', '如', '下', '图', '所', '示', ',', '在', 'i', 'P', 'h', 'o', 'n', 'e', '6', 's', '上', '打', '开', '相', '机', '以', '后', ',', '在', '顶', '部', '中', '间', '可', '以', '看', '到', '有', '一', '个', '圆', '形', '的', '图', '标', ',', '它', '就', '是', 'L', 'i', 'v', 'e', 'P', 'h', 'o', 't', 'o', 's', '的', '开', '关', '。', '当', '前', '显', '示', '为', '灰', '色', '状', '态', ',', '表', '示', 'L', 'i', 'v', 'e', 'P', 'h', 'o', 't', 'o', '为', '关', '闭', '状', '态', '。', '步', '骤', '阅', '读', '2', '如', '若', '要', '打', '开', 'L', 'i', 'v', 'e', 'P', 'h', 'o', 't', 'o', 's', '功', '能', ',', '点', '击', '打', '开', '即', '可', ',', '此', '时', '屏', '幕', '上', '还', '会', '以', '显', '示', 'L', 'i', 'v', 'e', '来', '提', '示', '用', '户', '。', '步', '骤', '阅', '读', '3', '如', '下', '图', '所', '示', ',', '当', '打', '开', 'L', 'i', 'v', 'e', 'P', 'h', 'o', 't', 'o', 's', '功', '能', '以', '后', ',', '在', '拍', '照', '时', '屏', '幕', '上', '也', '会', '显', '示', 'L', 'I', 'V', 'E', '字', '样', ',', '表', '示', '当', '前', '正', '在', '使', '用', 'L', 'i', 'v', 'e', 'P', 'h', 'o', 't', 'o', 's', '动', '态', '拍', '摄', '功', '能', '。', '步', '骤', '阅', '读', '4', '当', '拍', '好', '了', '一', '张', 'L', 'i', 'v', 'e', 'P', 'h', 'o', 't', 'o', 's', '照', '片', '以', '后', ',', '想', '要', '查', '看', '它', '的', '效', '果', '时', ',', '请', '在', '相', '片', '里', '用', '手', '指', '轻', '轻', '长', '按', '它', ',', '便', '可', '以', '看', '到', '动', '态', '效', '果', '了', '。', '步', '骤', '阅', '读', 'E', 'N', 'D']
answer_tokens =  ['1', '、', '在', ' ', 'i', 'P', 'h', 'o', 'n', 'e', '6', 's', ' ', '及', '更', '新', '设', '备', '上', '打', '开', '相', '机', '以', '后', ',', '在', '顶', '部', '中', '间', '可', '以', '看', '到', '有', '一', '个', '圆', '形', '的', '图', '标', ',', '它', '就', '是', ' ', 'L', 'i', 'v', 'e', ' ', 'P', 'h', 'o', 't', 'o', 's', ' ', '的', '开', '关', '。', '当', '前', '显', '示', '为', '灰', '色', '状', '态', ',', '表', '示', ' ', 'L', 'i', 'v', 'e', ' ', 'P', 'h', 'o', 't', 'o', ' ', '为', '关', '闭', '状', '态', '。', '2', '、', '如', '若', '要', '打', '开', ' ', 'L', 'i', 'v', 'e', ' ', 'P', 'h', 'o', 't', 'o', 's', ' ', '功', '能', ',', '点', '击', '打', '开', '即', '可', '。', '3', '、', '当', '打', '开', ' ', 'L', 'i', 'v', 'e', ' ', 'P', 'h', 'o', 't', 'o', 's', ' ', '功', '能', '以', '后', ',', '在', '拍', '照', '时', '屏', '幕', '上', '也', '会', '显', '示', ' ', 'L', 'I', 'V', 'E', ' ', '字', '样', ',', '表', '示', '当', '前', '正', '在', '使', '用', ' ', 'L', 'i', 'v', 'e', ' ', 'P', 'h', 'o', 't', 'o', 's', ' ', '动', '态', '拍', '摄', '功', '能', '。', '4', '、', '当', '拍', '好', '了', '一', '张', ' ', 'L', 'i', 'v', 'e', ' ', 'P', 'h', 'o', 't', 'o', 's', ' ', '照', '片', '以', '后', ',', '想', '要', '查', '看', '它', '的', '效', '果', '时', ',', '请', '在', '相', '片', '里', '用', '手', '指', '轻', '轻', '长', '按', '它', ',', '便', '可', '以', '看', '到', '动', '态', '效', '果', '了', '。']
feature =  {'answer_ids': [100, 122, 510, 1762, 100, 151, 100, 150, 157, 156, 147, 127, 161, 100, 1350, 3291, 3173, 6392, 1906, 677, 2802, 2458, 4685, 3322, 809, 1400, 8024, 1762, 7553, 6956, 704, 7313, 1377, 809, 4692, 1168, 3300, 671, 702, 1749, 2501, 4638, 1745, 3403, 8024, 2124, 2218, 3221, 100, 100, 151, 164, 147, 100, 100, 150, 157, 162, 157, 161, 100, 4638, 2458, 1068, 511, 2496, 1184, 3227, 4850, 711, 4129, 5682, 4307, 2578, 8024, 6134, 4850, 100, 100, 151, 164, 147, 100, 100, 150, 157, 162, 157, 100, 711, 1068, 7308, 4307, 2578, 511, 123, 510, 1963, 5735, 6206, 2802, 2458, 100, 100, 151, 164, 147, 100, 100, 150, 157, 162, 157, 161, 100, 1216, 5543, 8024, 4157, 1140, 2802, 2458, 1315, 1377, 511, 124, 510, 2496, 2802, 2458, 100, 100, 151, 164, 147, 100, 100, 150, 157, 162, 157, 161, 100, 1216, 5543, 809, 1400, 8024, 1762, 2864, 4212, 3198, 2242, 2391, 677, 738, 833, 3227, 4850, 100, 100, 100, 100, 100, 100, 2099, 3416, 8024, 6134, 4850, 2496, 1184, 3633, 1762, 886, 4500, 100, 100, 151, 164, 147, 100, 100, 150, 157, 162, 157, 161, 100, 1220, 2578, 2864, 3029, 1216, 5543, 511, 125, 510, 2496, 2864, 1962, 749, 671, 2476, 100, 100, 151, 164, 147, 100, 100, 150, 157, 162, 157, 161, 100, 4212, 4275, 809, 1400, 8024, 2682, 6206, 3389, 4692, 2124, 4638, 3126, 3362, 3198, 8024, 6435, 1762, 4685, 4275, 7027, 4500, 2797, 2900, 6768, 6768, 7270, 2902, 2124, 8024, 912, 1377, 809, 4692, 1168, 1220, 2578, 3126, 3362, 749, 511, 100], 'input_ids_q_d': [101, 154, 151, 164, 147, 2582, 720, 2864, 102, 122, 1963, 678, 1745, 2792, 4850, 117, 1762, 151, 100, 150, 157, 156, 147, 127, 161, 677, 2802, 2458, 4685, 3322, 809, 1400, 117, 1762, 7553, 6956, 704, 7313, 1377, 809, 4692, 1168, 3300, 671, 702, 1749, 2501, 4638, 1745, 3403, 117, 2124, 2218, 3221, 100, 151, 164, 147, 100, 150, 157, 162, 157, 161, 4638, 2458, 1068, 511, 2496, 1184, 3227, 4850, 711, 4129, 5682, 4307, 2578, 117, 6134, 4850, 100, 151, 164, 147, 100, 150, 157, 162, 157, 711, 1068, 7308, 4307, 2578, 511, 3635, 7752, 7325, 6438, 123, 1963, 5735, 6206, 2802, 2458, 100, 151, 164, 147, 100, 150, 157, 162, 157, 161, 1216, 5543, 117, 4157, 1140, 2802, 2458, 1315, 1377, 117, 3634, 3198, 2242, 2391, 677, 6820, 833, 809, 3227, 4850, 100, 151, 164, 147, 3341, 2990, 4850, 4500, 2787, 511, 3635, 7752, 7325, 6438, 124, 1963, 678, 1745, 2792, 4850, 117, 2496, 2802, 2458, 100, 151, 164, 147, 100, 150, 157, 162, 157, 161, 1216, 5543, 809, 1400, 117, 1762, 2864, 4212, 3198, 2242, 2391, 677, 738, 833, 3227, 4850, 100, 100, 100, 100, 2099, 3416, 117, 6134, 4850, 2496, 1184, 3633, 1762, 886, 4500, 100, 151, 164, 147, 100, 150, 157, 162, 157, 161, 1220, 2578, 2864, 3029, 1216, 5543, 511, 3635, 7752, 7325, 6438, 125, 2496, 2864, 1962, 749, 671, 2476, 100, 151, 164, 147, 100, 150, 157, 162, 157, 161, 4212, 4275, 809, 1400, 117, 2682, 6206, 3389, 4692, 2124, 4638, 3126, 3362, 3198, 117, 6435, 1762, 4685, 4275, 7027, 4500, 2797, 2900, 6768, 6768, 7270, 2902, 2124, 117, 912, 1377, 809, 4692, 1168, 1220, 2578, 3126, 3362, 749, 511, 3635, 7752, 7325, 6438, 100, 100, 100, 102], 'input_ids_q': [154, 151, 164, 147, 2582, 720, 2864], 'answer_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'input_mask_q_d': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'input_mask_q': [1, 1, 1, 1, 1, 1, 1], 'segment_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}

所有样本由文本转为id后的样本数量----len(features): 37

2.2 数据处理模块02:数据批次化处理【创建数据迭代器】(dataloader.py)

torchtext.data.TabularDataset

torchtext.data.BucketIterator

import torchtext


def x_tokenize(ids):
    return [int(i) for i in ids]


def y_tokenize(y):
    return int(y)


class Dureader():
    def __init__(self, path='./processed_data'):
        self.WORD = torchtext.data.Field(batch_first=True, sequential=True, tokenize=x_tokenize, use_vocab=False, pad_token=0)
        self.LABEL = torchtext.data.Field(sequential=False, tokenize=y_tokenize, use_vocab=False)

        dict_fields = {'input_ids_q_d': ('input_ids_q_d', self.WORD),
                       'input_ids_q': ('input_ids_q', self.WORD),
                       'answer_ids': ('answer_ids', self.WORD),
                       'input_mask_q_d': ('input_mask_q_d', self.WORD),
                       'input_mask_q': ('input_mask_q', self.WORD),
                       'answer_mask': ('answer_mask', self.WORD),
                       'segment_ids': ('segment_ids', self.WORD)
                       }

        self.train, self.dev = torchtext.data.TabularDataset.splits(path=path, train="train.data", validation="dev.data", format='json', fields=dict_fields)
        self.train_iter, self.dev_iter = torchtext.data.BucketIterator.splits([self.train, self.dev], batch_size=4, sort_key=lambda x: len(x.input_ids_q_d), sort_within_batch=True, shuffle=True)
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
", &tol); // allocate memory for solution ocp_nlp_out* out = ocp_nlp_out_create(solver_caps你可以使用 awk 命令来计算两个日期时间之间的时间差。 假设你有两个日期时间字符串 "ule->dims); ocp_nlp_solver_memory* solver_mem = ocp_nlp_solver_memory_create(solver_capsule->dims); 2023-05-29 15:22:10.845" 和 "2023-05-30 15:12:11 // set up simulation loop int sim_time = 1000; double x_current[NX]; double u_current[NU.747",你可以使用以下 awk 命令计算它们之间的时间差: ``` awk 'BEGIN { start]; double x_reference[NX]; double u_reference[NU]; double x_traj[(NN+1)*NX]; double u = mktime("2023 05 29 15 22 10.845"); end = mktime("2023 05 30_traj[NN*NU]; double t_current = 0.0; double t_next; // run simulation loop for 15 12 11.747"); diff = end - start; days = int(diff / 86400); hours = int((diff % 86400) / 3600); minutes = int((diff % 3600) / 60); (int i = 0; i < sim_time; i++) { // get current state for (int j = seconds = diff % 60; printf("Time difference: %d days %02d:%02d:%02d\n", days,0; j < NX; j++) { x_current[j] = ocp_nlp_out_get(out, i, "x", hours, minutes, seconds); }' ``` 这个命令将会输出 "Time difference: 1 days 23:50:00 j); } // calculate reference trajectory t_next = t_current + T; x_reference[0] = cos(",表示两个日期时间之间相差了 1 天 23 小时 50 分钟 0 秒。 解释2*PI*t_next); x_reference[1] = sin(2*PI*t_next); x_reference[2] = -一下这个命令: - `mktime("2023 05 29 15 22 10.845")` 和2*PI*sin(2*PI*t_next); x_reference[3] = 2*PI*cos(2*PI*t_next `mktime("2023 05 30 15 12 11.747")` 用于将日期时间字符串转换); // update reference trajectory for (int j = 0; j < NN; j++) { for (int k为秒数。 - `end - start` 用于计算两个日期时间之间的时间差(单位为秒) = 0; k < NX; k++) { x_traj[j*NX+k] = ocp_nlp_out_get(out,。 - `int(diff / 86400)` 用于计算时间差中包含的天数。 - `int((diff j+i, "x", k); } for (int k = 0; k < NU; k++) { u % 86400) / 3600)` 用于计算时间差中不足一天的小时数。 - `int_traj[j*NU+k] = ocp_nlp_out_get(out, j+i, "u", k); } } for((diff % 3600) / 60)` 用于计算时间差中不足一小时的分钟数。 - `diff % 60` 用于计算时间差中不足一分钟的秒数。 - `printf("Time difference: % (int j = 0; j < NX; j++) { x_traj[NN*NX+j] = x_reference[j]; d days %02d:%02d:%02d\n", days, hours, minutes, seconds)` 用于输出时间差。 你 } // update solver parameters status = ocp_nlp_solver_set_parameter(solver_capsule, "x0", x可以根据自己的需求修改日期时间字符串和输出格式。如果你想计算更为复杂的时间差,_current); status = ocp_nlp_solver_set_parameter(solver_capsule, "p", u_reference); status = ocp_n比如跨越多个月或多年的时间差,可以使用更为高级的方式来处理日期时间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值