英雄联盟云顶之弈知识图谱构建

文章目录

  • **英雄联盟云顶之弈知识图谱创建**
    • 1.白板建模
      • 1.1云顶之奕是什么?
      • 1.2白板建模
    • 2.数据收集处理
    • 3.图谱创建
    • 4.查询分析
    • 4.5装备图谱
    • 5.总结反思

英雄联盟云顶之弈知识图谱创建

1.白板建模

1.1云顶之奕是什么?

云顶之奕是基于英雄联盟的一个回合制策略游戏模式每局比赛由八名玩家共同进行一对一决斗,直到场上只剩下最后一名玩家。获胜关键是在合理的战术策略下从随机化的英雄池中选择最佳的英雄阵容,用装备对阵容进行强化,并构架优势对战阵型。主要依靠棋子的属性(职业,元素)羁绊与装备的适配性和棋子的星级能力还有站位之间的相互作用

1.2白板建模

每个英雄都分别至少拥有一个职业与一个元素
以英雄、职业、元素为节点分别构建三者之间的关系网络。
英雄联盟云顶之弈知识图谱构建_第1张图片
英雄联盟云顶之弈知识图谱构建_第2张图片
英雄联盟云顶之弈知识图谱构建_第3张图片

2.数据收集处理

英雄联盟云顶之弈知识图谱构建_第4张图片
英雄联盟云顶之弈知识图谱构建_第5张图片

import requests

from bs4 import BeautifulSoup



def getSoup(url):

    response=requests.get(url)

    response.encoding=response.apparent_encoding

    html=response.text

    soup=BeautifulSoup(html,'html.parser')

    return soup


url='https://gl.ali213.net/html/2019-7/347457_2.html'

main='https://gl.ali213.net/html/2019-7/347457_'


for i in range(2,44):
     urls='{}{}.html'.format(main,i)
     soup=getSoup(urls)
     s=soup.find_all('strong')
     q=soup.find_all('b')
     t=soup.find_all('p')
     print(s[0].text,q,t[2].text)

英雄联盟云顶之弈知识图谱构建_第6张图片

3.图谱创建

load csv with headers from 'file:///Neo4j3.csv' as line
merge (element:元素{name:line.element})
merge (prefession:职业{name:line.prefession})
merge(hero:英雄
{name:line.name,money:line.money,tech:line.tech,attr:line.attr,sh:line.sh,sm:line.sm,hj:line.hj,mk:line.mk,wg:line.wg,gs:line.gs,bjl:line.bjl,gjjl:line.gjjl,csflz:line.csflz,fl:line.fl}
)
//merge(tech:技能{name:line.tech})
merge(zyxg:职业效果{name:line.zyxg})
merge(ysxg:元素效果{name:line.ysxg})
create  (hero)-[:属于]->(element)
create  (hero)-[:属于]->(prefession)
create  (element)-[:拥有]->(ysxg)
create  (prefession)-[:拥有]->(zyxg)
//create   (hero)-[:拥有]->(tech)
return*

英雄联盟云顶之弈知识图谱构建_第7张图片

match (p:职业)-[r]-(q:英雄) with p,q,tail(collect(r)) as rr where size(rr)>0 foreach (r in rr|delete r)
match (p:职业)-[r]-(q:职业效果) with p,q,tail(collect(r)) as rr where size(rr)>0 foreach (r in rr|delete r)//删除重复冗余的关系
match (p:元素)-[r]-(q:元素效果) with p,q,tail(collect(r)) as rr where size(rr)>0 foreach (r in rr|delete r)

以上代码优化图谱
英雄联盟云顶之弈知识图谱构建_第8张图片

4.查询分析

查询部分代码

英雄联盟云顶之弈知识图谱构建_第9张图片
英雄联盟云顶之弈知识图谱构建_第10张图片
英雄联盟云顶之弈知识图谱构建_第11张图片
英雄联盟云顶之弈知识图谱构建_第12张图片
英雄联盟云顶之弈知识图谱构建_第13张图片
//查询属于多个元素/职业的英雄
英雄联盟云顶之弈知识图谱构建_第14张图片
//刺客阵容英雄
英雄联盟云顶之弈知识图谱构建_第15张图片
//查询伤害元素的英雄
英雄联盟云顶之弈知识图谱构建_第16张图片//1费用伤害效果英雄
英雄联盟云顶之弈知识图谱构建_第17张图片
//前期过渡阵容
英雄联盟云顶之弈知识图谱构建_第18张图片
//前期过渡阵容

英雄联盟云顶之弈知识图谱构建_第19张图片
前期最佳阵容 森林-德鲁伊
英雄联盟云顶之弈知识图谱构建_第20张图片
英雄联盟云顶之弈知识图谱构建_第21张图片
2度关系查询
英雄联盟云顶之弈知识图谱构建_第22张图片
任意两英雄最短路径查询
英雄联盟云顶之弈知识图谱构建_第23张图片

4.5装备图谱

英雄联盟云顶之弈知识图谱构建_第24张图片
图谱构建
英雄联盟云顶之弈知识图谱构建_第25张图片
任意两英雄最短路径查询
英雄联盟云顶之弈知识图谱构建_第26张图片
查询拥有相同效果的英雄与装备
英雄联盟云顶之弈知识图谱构建_第27张图片
英雄联盟云顶之弈知识图谱构建_第28张图片

5.总结反思

1.通过查询语句分析
出多套阵容体系
2.将装备与英雄
特性组合适配
3.元素职业在不同人
口时期德强度分析

小编从未玩过这个游戏,只是通过数据进行了图谱分析。
有很多不足之处还请各位大佬见谅
很多内容也是询问了一下玩过这款游戏的人,对于小编这种小白来说做到这样已经满足了。
至于不少分析代码,还有原始数据,分析报告ppt小编会整理成压缩包后期发到上面。

你可能感兴趣的:(数据库,neo4j,知识图谱,大数据,游戏)