精华内容
下载资源
问答
  • 知识图谱可视化工具免费杭州市西湖区教育装备保障服务中心除了知识图,图还能做什么?编者注:作者的高级解决方案顾问包汉林。本文将集中在三个方面,侧重于图数据库和图分析的价值,并列举图分析应用程序的一些方案...

    知识图谱可视化工具免费杭州市西湖区教育装备保障服务中心

    除了知识图,图还能做什么?编者注:作者的高级解决方案顾问包汉林。本文将集中在三个方面,侧重于图数据库和图分析的价值,并列举图分析应用程序的一些方案,工具和路径。提及图表,您可能了解不多,但是提及知识图表()绝对是当前的热门话题。近年来,各行各业涌现了大量垂直应用程序和服务提供商,从技术到业务线的各种企业已经学习了知识图的概念,技术和构造方法。知识图是现实世界的抽象,它通过点和边描述实体之间的关系,形成一个大型的语义网络,并提供了一种从关系的角度观察世界的方式。但是,就其本质而言,知识图实际上只是图的应用之一。除了知识图,图还能做什么? 1.该图直观地反映了实体之间的连接。当提到新事物时,我们必须首先知道它是什么。我相信一个了解图形的小伙伴可以立即告诉图形的概念:图形由一组或多组点以及点与点之间的关系(也称为边)组成。例如,知识图实际上是在提取知识以进行连接。如果仅用于连接数据,则可能只是数据图。但是,在与客户进行实际沟通的过程中,我们发现仅了解图的概念就无法真正转向图思维,图思维对于重新思考业务具有重要的价值。关于图的思考方式是什么?让我举一个例子,这个场景中的每个人都必须熟悉它。白板是公司最常用的工具之一。当我们遇到问题并需要共同努力时,我们将在会议室聚集一些朋友并集思广益。首先,提出一些主题,每个人都有自己的想法,并在白板上写任意数量的内容。然后,对某些信息进行分类,排序或映射。在努力思考并陷入僵局时,我们将密切关注白板上的信息并快速运行我们的大脑,以期提出一些新想法。突然,灯光闪烁了,也许是白板上的某些东西与他大脑中的信息相撞,或者可能是白板上的某些信息之间有了新的联系。这样,一个新的想法应运而生。现在,我们可以对此想法进行新的讨论并重复该过程。并解释这个想法,

    并重新组织关系。听起来有点熟?是的,这实际上是我们的自然思维方式,即关于图形的思维方式。在此示例中,最重要的是连接。我们需要将每个人大脑中的信息联系起来,以发现新事物。同样,当我们向他人解释我们的想法时,我们使用图表来解释信息的方式。连接在一起形成一个想法,其他人则更容易被接受。在侦探电影中,我们经常看到侦探将案件的所有信息粘贴在墙上以发现内部的一些隐藏关系,因为这很可能是解决案件的关键。如果家里有各种各样的实体书,散布在各处,那么在我们思考时,我们可能会偶然看到一本书,想到其中的一些内容,并将它们与思考的内容结合起来,从而产生一些新的想法。 。跨学科思维实际上将一些似乎与产生新想法或解决方案无关的内容联系起来。其次,图思维实际上是发现联系的过程。因此,图思维的核心是联系。当我们思考的重点是如何联系事物时,或者当我们想通过联系事物产生一些新的思想时,我们实际上已经使用了图思维。 。意识到这是一种图形思维,这意味着什么?例如,这实际上为我们提供了解决问题的另一种方法。这是斯坦福大学的数学逻辑和人工智能中的一个问题。看到对此问题的第一反应,您可能会考虑使用纯逻辑推理来解决此问题。但是,如果使用图思维,我们将专注于解决情况之间的联系上的问题。我们可以先构造一个认知图(),列出所有可能的情况,通过不确定的边连接可能的情况,查看每个人的认知与可能的情况之间的联系,然后根据条件组合每个节点点的相邻边继续缩小图中节点的范围,最后得出结论。这种方法将使问题更简单。图是一个高度抽象的模型,并且数据中的各种关系可以用图表示。图中的点和边可以非常灵活,并且不仅限于现实生活中的实体。当然,最直接的想法是人可以是点,产品可以是点,人与人之间的联系是边缘。交叉路口是一个点,连接交叉路口和该交叉路口的道路是一条边。但是,您可以将产品的某个特定特征完全抽象为一些要点,例如颜色和重量。道路抽象为点,交叉路口也抽象为点,

    它甚至可以扩展到某些虚拟实体。例如,可能是一个点,一个交易是一个点,一个订单是一个点。即使当某些分子是点时,分子之间的连接也是边(是的,该图可用于化学生物学和其他学科)。该图由您自由定义,并且可以连接人员,对象,知识,数据,连接规则,连接过程,抽象实体和实际实体。 3.图的实际应用和价值图可以为企业带来什么价值?以上两个示例可能给了您一些启发。图非常擅长通过联系发现数据中的隐藏价值。实际上,在国外,许多行业的客户都将地图用于实际应用,包括金融,电信,电子商务,能源,医疗,供应链,制造业,政府和其他行业。图形本身不是垂直行业技术,而是通用技术。在金融行业中,地图可用于反欺诈,反盗窃,信用卡逃避和洗钱团伙。事先发现潜在风险,然后减少损失。在电信行业中,地图可以与机器学习结合使用,以帮助客户进行电信对策。欺诈,实时识别欺诈电话,广告电话,骚扰电话,普通电话,并及时向公安部门报告;在电子商务行业中,地图可以构建用户头像,以帮助客户提出实时个性化产品推荐;在能源行业中,可以构建电网图以进行潮流分析,以实现超实时计算;在医疗行业中,该图可以向用户推荐实时护理路径;在供应链行业中,客户可以使用图表了解何时某个因素发生变化,上游和下游以及发现总成本,产品延迟,运输状态以及其他质量控制和风险问题的影响;在制造业中,地图可以找到复杂生产过程的最佳途径;在政府行业中,地图可以改善社会福利服务管理。在一般行业中,图可以在数据治理中执行数据沿袭分析,实体分析和网络资源优化,从而为机器学习提供图特征。国内应用场景主要集中在金融行业。当然,图片非常适合于反欺诈,反洗钱等。这些也是非常成熟的应用程序。为什么其他行业不大规模应用图形呢?实际上,因为对图形有很好理解的人基本上都集中在学术和计算机领域。而要带出图形的价值,就需要业务人员的参与和思考,因为业务人员最了解业务。了解并使用图表的思维方式,

    4.图分析的条件和工具我们通常将这种图分析问题的方法称为图分析()。我们相信,如果您想应用图形分析为企业带来真正的价值,则需要一种图形化的思维方式(生成需求问题),企业数据(解决问题的数据基础),解决方案(解决问题的方法),工具(选择正确的工具解决问题)。图形的思维方式是由于历史原因(感兴趣的合作伙伴可以了解数据库的历史并浏览数据库关系数据库数据库)。当我们考虑业务和数据的组合时,我们通常会考虑技术的局限性并应用关系类型。数据库的方式,就是用表的思想来思考,将极大地限制我们的思想。现在有了一个新的工具图数据库,该数据库可以更直接地将我们的想法与工具结合起来,而无需将原始想法分解为表格,然后通过表格来表达实际的业务。让我们以企业的防羊毛羊毛的实际情况为例。羊毛是指为新俱乐部举办一些促销活动的商人或金融机构。例如,每次邀请新用户注册时,他们都可以获得某些积分奖励,可以将其兑换为现金或优惠券。或奖品。该活动的启动将吸引来自三合会的团伙,这已经给推广者造成了很多资金浪费。坪羊毛和防毛刺羊毛已经成为三合会帮派和晋升党之间的一场比赛。对于这种促销,关系数据库中最简单的存储方法被分为两个表,即邀请登记表和积分交换表,这些表用于通过统计方法(例如数量,数量)来识别黑人行业的帮派。每个独立设备登录的帐户。登录帐户的数量等。但是,黑社会黑帮可以通过组控制设备,虚拟化和其他技术来规避这些检测。但是,如果您将思维变成图表,并专注于从关系角度进行分析,您会发现一些非常有趣的模式。这些受用户邀请注册的新用户,既没有产生新的交易,也没有邀请新的人,甚至没有根据时间形成有序的安排。毫无疑问,这也是羊毛的典范,纯粹通过统计很难找到。 (有关详细信息,请参阅它。)因此,第一步需要业务人员转而使用图思维来重新考虑业务,找到过去难以解决或无法解决的复杂业务问题,尝试使用图思维来解决,以及甚至找到一些新的。商业价值点。企业数据我们的想法经常需要通过数据分析进行验证或实施。当我们的数据很大时

    简单的统计分析已无法满足我们的需求。当商人进行探索性分析时,他们需要进行多方面的思考。当它们进入关系数据库时,它们会反映在多表关联中。当数据量巨大时,这对于关系数据库是一场灾难。使用数据仓库和大型表的方案并不令人满意。本质上是因为这些技术的重点不在数据之间的关系上。应用程序图分析平台,业务人员和数据分析师可以从数据的角度进行一些探索,以找到一些隐藏的连接。尝试从关系的角度发现新的价值。解决方案当您有要解决的问题以及解决问题的数据基础时,就需要解决该问题的方法。我们可以将行业经验与图算法结合起来。您可以从简单的关系查询开始,例如,查看新客户是否已连接到现有黑点,根据现有规则进行更深入的探索,并通过子图确定两个客户是否相似。同时,我们还可以使用一些图算法来协助,例如,我们想要找到一些隐藏的洗钱团伙,欺诈团伙,我们可以使用该图来衡量分组算法的程度-鲁汶算法();我们希望找到所有客户中最多的人。有影响力的人可以使用该算法来衡量图形页排名算法中的中心性。找到一些模式后,您可以通过图形上的模式匹配找到所有相似的客户,并通过一些目标值进行重复验证和迭代。业务人员,数据分析师和人员都可以参与其中,包括一些经验丰富的解决方案提供商,他们都是我们的有力帮助者。从业务探索到最终应用,都需要安全,易于使用,稳定和可靠的工具来支持工具。更重要的是,选择正确的工具。首先,如何使用图形,它们是图形的纯粹可视化?还是做图形计算?还是用于制图的数据和业务探索?其次,传统的关系数据库是否可以解决这个问题,还是图数据库可以解决这个问题,仍然需要多种工具的组合。最后,关于工具本身的功能。业务人员可能会更加注意探索和交互的易用性;开发人员可能会更加注意开发的便利性以及该语言是否功能强大;运维人员可能会更加注重系统管理和资源监控。不同的角色有不同的关注点,这些都是工具需要解决的问题。阅读以上四个步骤后,您肯定会遇到很多问题,例如,

    图解决方案?是否可以满足不同角色对工具的关注?由于篇幅所限,我们将在后续内容中逐一回答这些问题。总而言之,除了知识图之外,该图还能做什么?

    展开全文
  • 知识图谱可视化

    千次阅读 2018-05-15 20:00:08
    人物关系知识图谱 一、背景 将结构化数据通过关系预处理程序处理为图数据库可以查询的数据,示例是将其中一部分(人物关系数据)可视化表示。 二、用到的技术 技术点:图数据库Neo4j,d3.js,java,css,...

    人物关系知识图谱

    一、背景

    将结构化数据通过关系预处理程序处理为图数据库可以查询的数据,示例是将其中一部分(人物关系数据)可视化表示。

    二、用到的技术

    技术点:图数据库Neo4j,d3.js,java,css,spring boot
    开发工具:IDEA专业版(可找学生账号注册免费使用一年,社区版不支持WEB开发)

    三、项目结构以及代码实现过程

    启动入口类KnowledgeGraphApplication之后,
    调用接口:http://localhost:7476/knowledge-graph/hello/index
    此接口调用控制类加载index.html,HTML中调用了js文件加载展示数据,详细的实现过程请看完整的代码注释。
    这里写图片描述
    这里写图片描述

    四、可视化效果(所有可视化效果均带有力布局效果)

    1.节点与关系均带有选中效果,节点关系裁剪与扩展
    ☿ 解锁当前节点
    ✂ 剪切当前节点于关系
    ✠ 扩展当前节点与关系
    오 固定所有节点
    ◎ 解锁所有节点
    这里写图片描述
    这里写图片描述
    2.完整示例
    这里写图片描述
    这里写图片描述

    五、完整案例下载

    点击下载完整知识图谱可视化案例
    url:http://www.demodashi.com/demo/13181.html

    展开全文
  • 垂直知识图谱可视化服务平台的设计与实现随着互联网技术与大数据技术的不断发展,互联网信息呈指数形式增长,越来越多数据被人们获取。面向海量的数据,不同角色的行业从业人员面向不同用户场景,对数据有着不同的应用...

    垂直知识图谱可视化服务平台的设计与实现

    随着互联网技术与大数据技术的不断发展

    ,

    互联网信息呈指数形

    式增长

    ,

    越来越多数据被人们获取。

    面向海量的数据

    ,

    不同角色的行业

    从业人员面向不同用户场景

    ,

    对数据有着不同的应用需求。但是当前

    所提供的垂直知识图谱可视化服务存在以下问题

    :1)

    鲜少将知识图谱

    与可视化知识相融合

    ,

    从而造成了直观度和交互性较低且数据利用不

    充分等问题

    ,

    且面向不同场景需要不同类型的可视化工具进行可视化

    ,

    接口数据异构性大

    ;2)

    对于垂直知识图谱的大数据量不能够做到物尽

    其用

    ,

    缺少一个能够一站式将知识图谱进行可视化表达且支持知识图

    谱数据编辑及统计可视化表达、

    进一步生成高交互性行业报告的平台

    ,

    不能够快速生成行业报告很大程度的影响了报告的时效性与交互

    ;3)

    面向知识图谱数据的可视化平台有着数据量庞大的特点

    ,

    直接

    从终端数据库请求响应

    ,

    尤其是请求量大的时候

    ,

    会给数据库造成非

    常大的压力。

    数据库处理数据的能力给系统的吞吐量造成了很大局限

    ,

    甚至导致宕机。针对以上问题

    ,

    通过对相关系统的研究

    ,

    本文设计

    并实现了一款垂直知识图谱可视化服务平台

    ,

    为行业用户提供查看实

    体关系、对图谱数据进行探索式分析以及提供创建行业报告的功能。

    本研究主要包含以下几点工作

    :(1)

    设计并发布基于

    Vue

    的知识图谱

    可视化工具

    Kgv.js,

    ECharts

    D3.js

    可视化工具进行二次封装

    ,

    方便图谱可视化开发者的调用

    ,

    提高知识图谱的可视化开发能力

    ,

    到可视化过程与数据解耦的目的

    ,

    从而保证系统前端展现与后端业务

    逻辑的分离。

    (2)

    设计并实现了支持动态改变数据源的垂直知识图谱

    展开全文
  • 今天分享一个自己从数据爬取到d3可视化的中式菜谱知识图谱可视化系统的搭建流程。Github项目地址:https://github.com/ngl567/CookBook-KG访问可视化系统GithubPage地址:https://ngl567.github.io/CookBook-KG/1...
    今天分享一个自己从数据爬取到d3可视化的中式菜谱知识图谱可视化系统的搭建流程。Github项目地址:https://github.com/ngl567/CookBook-KG访问可视化系统GithubPage地址:https://ngl567.github.io/CookBook-KG/1

    系统功能

           本项目开发的系统名称为AI Food Time,中文名为爱食光。通过收集网上完全公开的有关中式菜谱的数据,经过数据清洗和分析,转换为知识图谱的存储结构,并提供可视化展示和模糊搜索等功能,为热爱美食与烹饪的人们提供方便快捷的中式菜谱服务,并以知识图谱的形式直观显示出不同菜品的关系及所用原料,在生活中具有很大的实际应用需求,包括:

    • 一类菜品的不同具体做法,例如水煮鱼包括麻辣水煮鱼、小清新版水煮鱼和家常版水煮鱼等;

    • 通过菜品与食材的关联关系,可以查询家中现有食材可以烹饪哪些菜品;

    • 可以直接显示出每种菜品所需主料,辅料,配料及其具体数量和烹饪方法,与网上的一些菜谱网页相比更加简单直观;

    • 可视化能够对各种菜品及关联关系有一个全局的认识,并能够显示每种菜品对应的图片;

    • 搜索菜谱关键词,显示出和关键词相关的各类菜品信息。

    2

    先来看看效果

    实体间关联关系及实体信息显示

    225e6671325fb6ce3ad2a6dd7025cfae.gif

    不同类型实体开关显示

    65beabb68ee2b658c35b99c4611993d4.gif

    搜索功能展示

    e52ab3174b01aacbd54f0ce13bde35a6.gif

    怎么样,是不是觉得还有那么点意思。在可视化系统中,同一类实体用相同颜色的节点表示,鼠标位于某个节点上方时显示其相关联的其它实体和之间的关系名称;具有同一类实体显示开关,节点显示模式转换,并支持搜索功能;同时,我们对每种菜品的信息栏中显示菜品对应的成品图片,并进行了实体对齐,消除了食品原料中比如“蒜”和“大蒜”这类的冗余信息。

    这里展示的是mini版系统,包含10大类,50种菜品之间的关联关系,包括菜品制作的各种食材和制作步骤,轻量级的mini版同时支持电脑和手机浏览器打开,如需体验可直接进入Github Page访问入口。

    3

    系统实现流程

    1

    数据爬取

    所有菜谱的数据都是从完全公开的网页上爬取的,这些网页上的数据是以半结构化知识呈现的,如图所示:

    29b083cd4caf31caf7320fdcd339e182.png

    使用XPath可以很轻松地从网页上将这些半结构化知识爬取出来,先以树形结构存储菜谱及属性数据:  

                    菜品大类

                       |_具体的精品特色菜

                                 |_主料

                                 |_辅料

                                 |_配料

                                        |_制作步骤

    接着,对于树形结构存储的数据,以三元组的格式:菜品大类-属于-具体的精品特色菜,精品特色菜-主料-主料名,精品特色菜-配料-配料名,精品特色菜-辅料-辅料名,精品特色菜-制作步骤-制作步骤列表表示所有数据。用于可视化的数据分为三元组组成的关系图结构数据vizdata.json和实体属性组成的数据entities_items.json。

    三元组组成的关系图结构数据vizdata.json存储的是字典数据,“links”键对应的是所有头实体-关系-尾实体组成的三元组,“nodes”设定了节点的类型、名称和大小等属性。

        "links": [                                                                           

            {

                "relation": "选材",

                "source": "山楂红烧肉",

                "target": "五花肉",

                "value": 3

            },

            {

                "relation": "选材",

                "source": "山楂红烧肉",

                "target": "山楂",

                "value": 3

            },

            ...

        ]

        "nodes": [

            {

                "class": "菜品大类",

                "group": "0",

                "id": "红烧肉",

                "size": "16"

            },

            {

                "class": "精品特色菜",

                "group": "1",

                "id": "家庭版水煮活鱼",

                "size": "10"

            },

            ...

        ]

    实体属性组成的entities_items.json文件存储所有实体属性的字典数据,是以”菜品“为一级索引,对应的主料、辅料、配料和制作步骤分别为二级索引,以及属性值组成的列表,如下所示:

    "桂香红烧肉": {    

    "主料": [    

    "五花肉: 两条"    

    ],    

    "辅料": [    

    "葱: 一根",    

    "姜: 两片",    

    "桂皮: 一块",    

    "香叶: 两片"    

    ],    

    "配料": [    

    "老抽: 一汤匙",    

    "生抽: 两汤匙",    

    "冰糖: 适量",    

    "料酒: 两汤匙"    

    ],    

    "特色": [    

    "口味: 咸甜",    

    "工艺: 烧",    

    "耗时: 一小时",    

    "难度: 简单"    

    ],    

    "制作步骤": [    

    "1: 五花肉放入沸水中,煮至断生,洗净",    

    "2: 准备材料",    

    "3: 五花肉切块",    

    "4: 取砂锅,热锅冷油,加入葱姜,桂皮,香叶爆香。放入五花肉,加高汤。",    

    "5: 加入冰糖,料酒,生抽和老抽,加盖小火煮一个小时,开盖收汁。"    

    ]    

    },   

    2

    D3可视化

    D3是基于数据的文档操作javascript库,D3能够把数据和HTML、SVG、CSS结合起来,创造出可交互的数据图表。我分别用D3知识图谱力导向图和Neo4j分别构建了知识图谱可视化系统,D3在可视化方面具有更好的展示和灵活性,因此选用D3进行知识图谱的可视化。

    对于上面得到的关系图数据vizdata.json和实体属性数据entities_itmes.json两个文件可以存储在自己的github项目中,因为D3可视化只支持从web服务读取json数据。由于字数限制,本文给出D3可视化的几个主要模块。

    首先,需要设定可视化的样式,具体可以看github中的代码。然后,需要从json文件中读取关系图数据:

    var graph;    

    d3.json("https://raw.githubusercontent.com/ngl567/CookBook-KG/master/visualization/vizdata_mimini_aglin.json", function(error, data)   

    用vizdata.json中的links数据去驱动两个节点之间的边的线宽。

    //边上的文字(实体之间的关系)                                                             

    var linktext = svg.append('g')    

    .attr("class", "linetexts")    

    .selectAll("text")    

    .data(graph.links)    

    .enter()    

    .append("text")    

    .style("display","block")    

    .style("color","red")    

    .text(function(d){    

    return d.relation;    

    });    

    用vizdata.json中的links数据去驱动两个节点之间的边的线宽。

    //边上的文字(实体之间的关系)                                                             

    var linktext = svg.append('g')    

    .attr("class", "linetexts")    

    .selectAll("text")    

    .data(graph.links)    

    .enter()    

    .append("text")    

    .style("display","block")    

    .style("color","red")    

    .text(function(d){    

    return d.relation;    

    });    

    添加所有的节点,并对每个节点按照不同的类型设置节点颜色。

    // 添加所有的node                                                                           

    var node = svg.append('g')    

    .attr('class', 'nodes')    

    .selectAll('circle')    

    .data(graph.nodes)    

    .enter().append('circle')    

    .attr("r", function(d) {    

    return d.size    

    })    

    .attr('fill', function(d){ // 填充的颜色    

    return colors[d.group];    

    })    

    .attr('stroke', 'none')    // 没有描边    

    .attr('name', function(d){    

    return d.id;    

    })    

    .call(d3.drag()             // 绑定d3的拖动函数    

    .on("start", dragstarted) // 拖动开始    

    .on("drag", dragged)      // 拖动进行    

    .on("end", dragended));   // 拖动结束    

    通过点击圆点和文字两种方式表示节点切换不同的模式:

    // 处理模式点击后的事件(这些元素页面上本来有)                                          

    $('#mode span').click(function(event) {    

    // 把mode里面所有span的active全部去掉    

    // 把被点击的这个设置为active    

    $('#mode span').removeClass('active')    

    $(this).addClass('active')    

    if ($(this).text() == 'Circles') {    

    // 隐藏所有文本里面的svg元素    

    // 把node里面的显示出来    

    $('.texts text').hide();    

    $('.nodes circle').show();    

    }    

    else {    

    $('.texts text').show();    

    $('.nodes circle').hide ();    

    }    

    });    

    不同类型的实体有一个开关,决定一类实体节点是否显示:

    // 处理开关1点击后的事件(这些元素页面上本来有)                                       

    $('#switch1 span').click(function(event) {    

    // 把mode里面所有span的active全部去掉    

    // 把被点击的这个设置为active    

    $('#switch1 span').removeClass('active')    

    $(this).addClass('active')    

    if ($(this).text() == 'On') {    

    sw1 = true;    

    d3.select('#svg1 .nodes').selectAll('circle').attr('class', function(d){    

    // 当前选中类型实体显示    

    if (d.group == 0 && sw1 == true) {    

    return '';    

    }    

    else if (d.group == 1 && sw2 == true){    

    return '';    

    }    

    else if (d.group == 2 && sw3 == true){    

    return '';    

    }    

    else{    

    return 'inactive'    

    }    

    });    

    当鼠标悬浮在某个实体节点上方时,实体的属性信息都能够显示出来,如果是精品特色菜类的实体,菜品图片等信息都能显示:

    // 增加各个菜品的图片    

    if (typeof(info[name]) != "undefined") {    

    //avatar_ID = info[name]['ID'][0]    

    //if(outlier_avatar_ID.indexOf(avatar_ID) != -1) {    

    //    avatar_ID = avatar_ID + '0'    

    //}    

    if ('主料' in info[name]){    

    $('#info').append('

    ' + '' + '

    ');    

    }    

    }    

    for (var key in info[name]) {    

    value = info[name][key];    

    var flag_none = false;    

    for (var item in value) {    

    if (value[item] == null || value[item] == 'N/A' || value[item] == '') {    

    flag_none = true;    

    break;    

    }    

    }     

    if (flag_none == true) {              // 排除为空的属性值    

    continue;    

    }    

    $('#info').append('

    ' + key + '

    ');    

    var item_info = '';    

    count = 0    

    for (var food_item in info[name][key]){    

    if (count == 0){    

    item_info = item_info + info[name][key][food_item];    

    }    

    else{    

    item_info = item_info + " || " + info[name][key][food_item];    

    }    

    count = count + 1;    

    }    

    $('#info').append('

    ' + item_info + '

    ');   

    }    

    设置搜索功能,按照搜索框中的关键词显示所有匹配到关键词的所有节点:

    // 搜索框    

    $('#search input').keyup(function(event) {    

    // 如果输入为空,全部显示出来    

    if ($(this).val() == '') {    

    d3.select('#svg1 .texts').selectAll('text').attr('class', '');;    

    d3.select('#svg1 .nodes').selectAll('circle').attr('class', '');;    

    d3.select('#svg1 .links').selectAll('line').attr('class', '');;    

    d3.select("#svg1 .linetexts").selectAll('text').attr('fill-opacity', 0);    

    }    

    else { // 筛选,判断这三个东西里的元素是否包含输入的东西    

    var name = $(this).val();    

    d3.select('#svg1 .nodes').selectAll('circle').attr('class', function(d) {    

    if (d.id.toLowerCase().indexOf(name.toLowerCase()) >= 0) {    

    return '';    

    } else {    

    return 'inactive';    

    }    

    });    

    d3.select('#svg1 .texts').selectAll('text').attr('class', function(d) {    

    if (d.id.toLowerCase().indexOf(name.toLowerCase()) >= 0) {    

    return '';    

    } else {    

    return 'inactive';    

    }    

    });    

    d3.select("#svg1 .links").selectAll('line').attr('class', function(d) {    

    return 'inactive';    

    });    

    d3.select("#svg1 .linetexts").selectAll('text').attr('fill-opacity', 0);    

    }    

    });    

    具体一些比如页面设计的代码具体可以看github中的代码,如果有任何问题也可以与我交流讨论,希望这个工作可能帮助大家一起来做点有意思的小项目。

    欢迎关注”爱上知识图谱“公众号,让我们一起学习知识图谱技术。

    展开全文
  • ## 人物关系知识图谱#### 一、背景将结构化数据通过关系预处理程序处理为图数据库可以查询的数据,示例是将其中一部分(人物关系数据)可视化表示。#### 二、用到的技术技术点:图数据库Neo4j,d3.js,java,css,...
  • js实现知识图谱可视化,可移植性强,效果良好,我是用在了Django框架下,对于知识图谱查询结果的输出,也可以用在spring框架下。
  • 1.前言正在做知识图谱 ,以前可视化用的是D3,因为D3不是太会,而且D3学习成本比较高,所以改用Echarts,Echarts做出来的关系图还是挺好的。2.关系图实例样例代码如下:ECharts 关系图var myChart = echarts.init...
  • 信息检索课写的一篇文献综述,这里记录一下,或许以后研究会用到 文章目录摘要关键词AbstractKey words引言知识图谱概念知识图谱可视... 知识图谱可视化知识图谱可视化构建工具知识图谱可视化应用领域搜索引擎知识...
  • 知识图谱可视化工具选型

    千次阅读 2020-03-16 23:00:24
    本人作为大一狗,有幸参加了老师的工业大数据知识图谱可视化研究的项目,那么,选择一个好用的可视化工具当然是必要的——一个好的工具能够大大降低后期研发成本和维护成本。 选型原则 根据本次调研的需要,可视化...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 603
精华内容 241
关键字:

知识图谱可视化