揭秘:斗破苍穹中到底有哪些人恐怖如斯?

前言

为什么会选择这样一个题目呢?因为,我在两年前停更的时候,写过“斗破苍穹中到底出现了多少次恐怖如斯”。一转眼,两年过去了,唉,时间过的真快啊,这次回归,也是百感交集,所以我决定,这次具体的找出,这些恐怖如斯出现在哪些地方了,就当作“两周年纪念”了。

简单的通过百度搜索一下,恐怖如斯到底出现了多少次呢?百度上都说是18次,可是我查阅了我自己两年前的文章,上面说是19次。这是怎么回事?难道是我统计错了吗?没关系,很快就可以知道了。

关于具体的实现呢,这次我打算使用elasticsearch的全文搜索,虽然其实只匹配关键字就可以完成要求了,但是,用es也有好处,也许我们能发现相关剧情也说不定? 

注:不关心实现细节,只想知道到底谁恐怖如斯,可以直接看最终结果。

环境配置

首先,我们需要安装一个es,可以通过官网下载,现在新的好像是8.15.2:elasticsearch-8-15-2

然后,我们需要下载一个ik分词器,这对于中文来说,真的很重要,原本可以通过github下载,但是现在新版本的下载位置转移了,作者提供的新的下载地址是:ik分词器下载 

在新地址中,才有最新的elasticsearch-8.15.2版本,如果用原本的github地址的话,只能下载到8.12.2。(图为ik分词器的作者通知,大意为以后就不继续在github提供下载了)

 

再然后,我们需要给python下载一个elasticsearch库,具体来说应该:pip3 install elasticsearch==8.15.2,如果你的es版本不是最新的8.15.2,那么要选择你的对应版本哦! 

有了这些以后,我们就可以将《斗破苍穹》的小说放入到elasticsearch进行研究了。

使用elasticsearch

添加数据

from elasticsearch import Elasticsearch


es = Elasticsearch("http://localhost:9200")

es.indices.create(index="doupo")

properties = {
    "content": {
        "type": "text",
        "analyzer": "ik_max_word",
        "search_analyzer": "ik_smart"
    }
}

es.indices.put_mapping(index="doupo", properties=properties)

# data中应该包括小说的数据,形式为{"id": id, "title": title, "content": content}
data = []

for row in data:
    doc = {
        "title": row["title"],
        "content": row["content"]
    }
    es.index(index="doupo", id=row["id"], document=doc)

查询数据

from elasticsearch import Elasticsearch

es = Elasticsearch("http://localhost:9200")

es.indices.refresh(index="doupo")

query = {
    "match": {
        "content": "恐怖如斯"
    }
}

response = es.search(index="doupo", query=query)

for hit in response["hits"]["hits"]:
    print(hit["_source"])

现在这样做存在几个问题:

首先,我想要看的是恐怖如斯,但是查询以后却显示了整篇文章,这不是我想要的。

其次,当前的排序不是按照章节顺序来的,而是根据相关性,这不利于我们的观察,应当重新按照章节排序。

再者,es的“match“查询,是与恐怖如斯相关,不代表其中一定要出现恐怖如斯,也就是说,里面可能没有恐怖如斯。需要改成”match_phrase“进行精确匹配,就可以避免没有恐怖如斯的问题了。

啊,真让人头疼,既然都精确匹配了,所以,我为什么要选择使用elasticsearch呢?不过已经到了这一步了,管不了那么多了,下面,我们需要对数据进行一些进一步处理。

再次处理

如同之前的分析,改成match_phrase就可以了。

query = {
    "match_phrase": {
        "content": "恐怖如斯"
    }
}

当然,你也可以自己遍历检测,可行,但是没有必要。

new_data = []
for i in data:
    if "恐怖如斯" in i["content"]:
        new_data.append(i)

然后,我们需要做的是排序,截取恐怖如斯的关键部分。

def find_keyword_in_text(text, keyword):
    # 按行分割可以是一个好想法,也许?
    paragraphs = text.split('\n')

    for i, paragraph in enumerate(paragraphs):
        if keyword in paragraph:
            start = max(0, i - 1)
            end = min(len(paragraphs), i + 2)
            return "\n".join(paragraphs[start: end])
        
result = find_keyword_in_text(text, "恐怖如斯")

很好,有了这些,我们就大功告成了!

最终结果

百度上的说法是错误的,恐怖如斯出现的次数不是18次,而是19次。这说明两年前的我还是非常专业的,正确的统计出了恐怖如斯的次数。

下面我将准确列举出全部的19次恐怖如斯,战绩可查。

  1. 第一百二十二章 地阶斗技:焰分噬浪尺!
    原文:“萧炎半晌无语,他没想到,药老的速度,竟然恐怖如斯。”(药老)
  2. 第二百二十八章 抽离火种
    原文:“没想到,莲地心火的温度,竟然恐怖如斯…”(萧炎-即将得到的青莲地心火)
  3. 第两百四十九章 纳兰!
    原文:“嘶…望着那一缕火焰竟然恐怖如斯,大厅之内,所有人都是倒吸了一口凉气,旋即将那震撼的目光,投向柜台处脸色淡然的黑袍少年。”(萧炎-火焰)
  4. 第三百五十二章 云岚宗的底牌!
    原文:“凌影一击之下,几乎是将整个云岚宗,搞得陷入了一种瘫痪状态,斗皇强者,居然强悍至此,恐怖如斯!”(凌影)
  5. 第三百六十四章 生死之局!
    原文:“完美形态的佛怒火莲,破坏力,竟然恐怖如斯......”(萧炎-佛怒火莲) 
  6. 第三百五十章 离开加玛帝国!
    原文:“好半晌之后,方才有人低低的呻吟了一声,斗灵级别的强者,仅仅是一回合...便是直接吐血败场...这个看似还不到二十岁的青年,竟然真的恐怖如斯?“(萧炎)
  7. 第四百零六章 虎啸震山林
    原文:“萧炎这一吼之力,竟然恐怖如斯!”(萧炎)
  8. 第五百四十七章 八极崩与大裂劈棺爪的碰撞!
    原文:“嘹亮的劲气炸响,突兀的在场中响起,一股堪称劲气风暴的涟漪,骤然从两人接触点暴涌而出,涟漪过处,地板不断的传出不堪重负的咔嚓声音,一道道裂缝,犹如蜘蛛网一般,从两人身下,急速蔓延。 劲气风暴所造成的破坏力,直接是令得看台上响起了一阵咽唾沫的声音,这可是极为纯粹的肉体力量啊,破坏力竟然恐怖如斯。”(萧炎-八极崩,对手为柳擎)
  9. 第五百五十章 大裂岩与焰分噬浪尺的对碰!
    原文:“柳擎全力一击,竟然恐怖如斯!”(柳擎)
  10. 第六百四十八章 斩杀
    原文:“这位平日高高在上的云岚宗长老,却是一脸惨白,嘴角还有着残余血迹,双眼带着几分惊恐与难以置信的望着天空上那黑袍青年,先前两人交手不过三回合,他便是直接陷入重伤状态,对方的实力,居然恐怖如斯。”(萧炎)
  11. 第六百八十章 杀无赦!
    原文:“斗宗强者,居然便是气势,便已恐怖如斯!感受着那自云山体内涌出的磅礴气势,萧炎面色也是缓缓凝重,这个家伙,果然比三年前又强了许多,看来这一次,真的是一场生死苦战了!”(云山)
  12. 第八百九十六章 最后胜者
    原文:“火莲之威,恐怖如斯!“(萧炎-佛怒火莲)
  13. 第九百零六章 炼制成功!
    原文:“仅仅是一拳之力,威力居然便是恐怖如斯!望着下方那不断扩散而出的巨大岩浆火浪,萧炎眼中也是掠过一抹震惊之色,先前的那一拳,绝对足以将一些实力在一星或者二星左右的斗宗强者,击成重伤!“(萧炎-地妖傀)
  14. 第九百六十一章 追杀
    原文:“清脆的碰撞之声,在整个天际响彻而起,在这道奇异的声波之下,下方山脉之内的一些实力不济的魔兽,脑袋顿时嗡的一声,居然是生生爆裂而开。两人交手之力,居然恐怖如斯!“(费天对战天火尊者)
  15. 第九百九十章 古界
    原文:“萧炎微微点了点头,难怪薰儿说他至少要达到斗宗实力方才能够去寻她,原来那所谓的古族,居然恐怖如斯“(古族)
  16. 第一千零六十三章 以卵击石
    原文:“在冰龙爆裂之时,那天蛇等人,脸色顿时一红,旋即一口鲜血,同时喷出!斗尊强者,恐怖如斯!“(天火尊者)
  17. 第一千零八十章 冰尊者
    原文:“这般凶悍交锋,小医仙与天火尊者身体一颤,喉咙间传出一道闷哼,旋即脚掌蹬蹬的踏着虚空急退了将近百米!以一敌二,反而是占据绝对上风,这冰尊者,居然恐怖如斯!“(冰尊者)
  18. 第一千三百三十四章 现身
    原文:“那魂刁冷笑一声,嘴巴一张,滚滚黑云便是自其嘴中暴涌而出,旋即在那咆哮声中,凝聚成一条足有千百丈庞大的黑色巨蟒,巨蟒尾巴一甩,然后萧炎等人便是听见空间之中传来一阵噼里啪啦的声响,整片虚空,都是在那千丈庞大的巨蟒冲撞下,变得粉碎下来。如此恐怖威势的攻击,直接是让得萧炎等人面色变得难看了许多,斗圣强者,居然恐怖如斯,而且这还仅仅是能量体,若是真的斗圣,那又是何等难以想象的可怕?“(魂刁,天墓中出现的魂族强者)
  19. 第一千五百八十五章 据为己有
    原文:“灵魂声波震翻魂元天,沿途还将众多魂族强者生生震翻,一些实力稍弱者,甚至连灵魂都是当场被震爆,帝境灵魂,竟然恐怖如斯!“(萧炎-帝境灵魂)

从这里,我们可以看出,第一位恐怖如斯的人是药老,药老的速度恐怖如斯!

最后一位恐怖如斯的人是萧炎自己,萧炎的灵魂恐怖如斯!

其中,萧炎作为主角,他自己(包括其异火/傀儡/功法/灵魂)独享9.5次恐怖如斯,可以说,整本书中一半的恐怖如斯都是形容萧炎自己的。

除了萧炎以外,其他任何人,都没有得到过2次恐怖如斯!具体排名如下:

萧炎:9.5次

柳擎:1.5次

天火尊者:1.5次

药老:1次

凌影:1次

云山:1次

古族:1次

冰尊者:1次

魂刁:1次

费天:0.5次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值