用modelscope分析了百万字的《天龙八部》,原来金庸大师最偏爱的是TA

简介: 用modelscope分析了下百万字的《天龙八部》,摸清楚了金庸大师的取名智慧

作者:达摩院-咏江

内容

近期在读金庸先生的天龙八部,心念念在金庸先生作品中,偏爱哪位人物,喜欢哪个武功招式,偏向哪个武侠组织。正临云栖大会modelscope发布,了解modelscope里上线了40多个信息抽取的模型,不仅仅包括新闻、简历、微博、医疗、金融等行业,还覆盖中、英、饿、西、法等语种模型,甚至包括不同规格(base、large、lstm)模型。经过一番尝试,发现小说这个行业模型比较适合,拿来把玩一下,全部的实体抽取模型可以通过这个链接访问 https://modelscope.cn/models?page=1&tasks=named-entity-recognition

从网上下载了天龙八部新修版,一共百万余字,按行分别使用modelscope进行文本解析。按照 武侠人物、组织、招式、地点、头衔、武器分别进行分析,发现有些有趣的现象。

武侠人物云图

本来,我以为最top的是乔峰,但没想到金老爷子偏爱的是段誉。而且,屡战屡败的鸠摩智竟然名列前茅。

招式云图

《天龙八部》招式出现次数最多的是凌波微步。。打不过可以跑呀。

此外,还看到了降龙二十八掌,一开始以为是文本错误,经过一番查询,才知道是金老爷子在新版本把十八掌改成了二十八掌,与之同时,结局也改了下,段誉与王语嫣最终没能携手。。。。给众多读者留下了不少遗憾。


武侠组织图

丐帮,果然还是第一大帮,而且关于丐帮的故事在整个小说里也占据很大比重。


头衔云图

头衔其实就是外号或者昵称,出乎意料的是南海鳄神是出现最多的。不过看过天龙八部的都知道,南海鳄神十分在乎别人对自己的称呼,逢人必自报家门,且非常抗拒岳老三这个称呼,每次都要纠正自己是南海鳄神岳老二。


武器云图

六脉神剑,段家绝学,运转六脉剑气。段誉在少林寺、曼陀山庄,两度凭借此神功打败慕容复,为慕容博称赞为“天下第一剑”。


地点云图

天龙八部小说合计五册,基本每册都会有一个新的舞台。从这些热门地点我们基本就能还原出天龙八部的故事梗概:

第一章:段誉在无量山-大理国-天龙寺的神奇经历

第二章:段誉乔峰在姑苏结为兄弟,乔峰被指契丹人逐出丐帮

第三章:虚竹巧破珍珑棋局,成为缥缈峰灵鹫宫主人

第四章:少林寺大战,三兄弟聚义

第五章:收尾,西夏招婿,段誉继位,雁门关大战,萧峰自戕


附加代码

我们可以选择通过modelscope的notebook或本地安装,如是在本地安装,先通过一行命令下载安装modelscope

pip install "modelscope[nlp]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html

先通过以下命令下载模型,试用模型的pipeline能力

from modelscope.pipelines import pipeline

from modelscope.utils.constant import Tasks


ner_pipeline = pipeline('named-entity-recognition', 'damo/nlp_raner_named-entity-recognition_chinese-base-book')

ner_pipeline('风族最强大的存在,风帝,为当世顶尖强者之一。')

调用上面的代码后,输出如下:

[

 {

   "end": 2,

   "span": "风族",

   "start": 0,

   "type": "ORG"

 },

 {

   "end": 11,

   "span": "风帝",

   "start": 9,

   "type": "TIT"

 }

]


再通过以下代码开始处理《天龙八部》,可以从网上找了个txt,保持成"天龙八部.txt", 接下来通过以下代码将不同类型对应的实体保存到词典里

import codecs


per_map = {}

org_map = {}

loc_map = {}

kun_map = {}

tit_map = {}

wea_map = {}


def find_typemap(v):

   if v['type'] == 'PER':

       return per_map

   if v['type'] == 'ORG':

       return org_map

   if v['type'] == 'LOC':

       return loc_map

   if v['type'] == 'KUN':

       return kun_map

   if v['type'] == 'TIT':

       return tit_map

   if v['type'] == 'WEA':

       return wea_map

   

def proc(js):

   for v in js['output']:

       entity = v['span']

       m = find_typemap(v)

       if entity in m:

           m[entity] += 1

       else:

           m[entity] = 1


lines = codecs.open('天龙八部.txt', encoding='gb18030', errors='replace').readlines()


for line in lines:

   result = ner_pipeline(line)

   proc(result)

打印下六组类型对应的实体词,获得词云数据,通过微词云平台获取词云图片。

相关文章
|
9月前
|
数据采集 人工智能
对ModelScope 中的中文竞技场进行分析测评
ModelScope 是一款功能强大的人工智能模型,它在多个领域都有着广泛的应用
|
9月前
|
人工智能 自然语言处理 搜索推荐
对ModelScope模型进行测评分析
对ModelScope模型进行测评分析
172 0
civ
|
9月前
|
大数据
ModelScope模型分析测评
中文竞技场大模型页面的双模型匿名对话模式可以给我很多启发,下面是针对 Modelscope 测评文章的写作创造、人类价值观和中文游戏模块进行测评总结:
civ
190 2
ModelScope模型分析测评
|
9月前
|
机器学习/深度学习 自然语言处理 数据可视化
对Modelscope中文竞技场模型分析
对Modelscope中文竞技场模型分析
164 3
|
9月前
|
开发者
从Modelscope模块分析测评
从Modelscope模块分析测评
|
9月前
|
机器学习/深度学习 自然语言处理 PyTorch
关于对Modelscope模型测评分析
关于对Modelscope模型测评分析
|
9月前
|
机器学习/深度学习 自然语言处理 数据可视化
阿里云 ModelScope模块分析测评
阿里云 ModelScope 是一种用于模型评估和性能分析的开源工具。它旨在帮助用户更好地了解和评估不同的机器学习模型,并提供可视化和统计分析来支持决策制定。
|
9月前
|
机器学习/深度学习 自然语言处理 API
Modelscope 对中文竞技场模块分析
Modelscope 对中文竞技场模块分析
204 31
|
9月前
|
机器学习/深度学习 自然语言处理 数据可视化
modelscope对中文竞技场测评分析
modelscope对中文竞技场测评分析
228 26
|
10月前
|
机器学习/深度学习 自然语言处理 云栖大会
用modelscope分析《天龙八部》,金庸大师最偏爱的是TA
用modelscope分析《天龙八部》,金庸大师最偏爱的是TA