Neo4j图数据库实践——基于知识图谱方法开发构建猪类养殖疾病问答查询系统

Neo4j是一个开源的、高性能的图形数据库。它被设计用于存储、检索和处理具有复杂关系的大规模数据。与传统的关系型数据库不同,Neo4j使用图形结构来表示数据,其中节点表示实体,边表示实体之间的关系。这使得Neo4j在处理关系密集型数据时非常强大和高效。

以下是Neo4j的一些关键特点:

  1. 图形数据库:Neo4j是一个原生的、完全基于图形的数据库,它提供了图形模型来存储和管理数据。这使得它能够轻松地处理复杂的数据关系,如社交网络、推荐系统、网络安全等。

  2. 灵活的数据模型:Neo4j的数据模型非常灵活,可以轻松地表示各种类型的实体和关系。你可以定义自己的节点标签和边类型,并为它们添加属性,以便更好地表示你的数据结构。

  3. 高性能:Neo4j通过使用高效的图形遍历算法和索引机制来实现出色的性能。它可以快速地执行复杂的图形查询,支持深度遍历和快速的关系导航。

  4. 原生的查询语言:Neo4j使用一种名为Cypher的原生查询语言来操作和查询图形数据。Cypher具有直观的语法,可以轻松地表达各种图形查询模式,包括节点和边的匹配、路径遍历和聚合操作等。

  5. ACID事务支持:Neo4j支持原子性、一致性、隔离性和持久性(ACID)的事务特性。这确保了数据的完整性和一致性,同时提供了可靠的持久化机制。

  6. 生态系统和工具支持:Neo4j拥有丰富的生态系统和工具支持,包括可视化工具、ETL工具、驱动程序和集成库等。这些工具使得开发人员和数据分析师能够更轻松地使用和操作Neo4j数据库。

Neo4j官网在这里,如下所示:

可以根据自己的需要进行下载安装使用。

安装完成启动截图如下所示:

这里我安装的是1.5.8的版本的。

之前在学校的时候就有接触过Neo4j数据库,只是简单的安装实践了一下,后面因为课题方向换了,所以后面就没有再接触到了,周末闲来无事正好最近也又看到了这个图数据库的内容,就想着

来上手做一下实践开发项目,这里主要以前面项目中收集到的猪类相关养殖疾病数据集为基准,来构建基于知识图谱的问答系统。

知识图谱是一种用于组织、表示和存储结构化知识的图形化知识库。它将现实世界的实体、概念和它们之间的关系表示为图形结构,可以帮助我们更好地理解和分析知识。

知识图谱通常由三个主要组成部分构成:

  1. 实体(Entities):实体代表现实世界中的具体事物,可以是人、地点、物品、事件等等。每个实体都有唯一的标识符和相关的属性信息。

  2. 属性(Attributes):属性描述实体的特征和性质。例如,一个人实体可以有属性如姓名、年龄、性别等。

  3. 关系(Relationships):关系表示实体之间的连接和关联。它们描述了实体之间的语义关系,如"工作在"、"位于"、"是子集/超集"等等。

知识图谱的优势在于它能够捕捉和表示复杂的关联关系,并提供了一种结构化的方式来存储和查询知识。它可以用于构建智能推荐系统、问答系统、语义搜索引擎等应用。通过使用知识图谱,我们可以进行更高级的数据分析、语义推理和信息提取。

举个例子,以百科全书为例,知识图谱可以将不同的主题、人物、事件等实体组织成一个图形结构,并使用关系链接它们。通过这种方式,我们可以轻松地浏览和发现相关的知识,例如查找某个人物的家庭成员、了解某个事件的历史背景等等。

首先来简单看下数据集情况,如下所示:

"猪附红细胞体病": {"name": "猪附红细胞体病","desc": "由附红细胞体寄生于猪的红细胞表面或游离于血浆、组织液及脑脊液中引起的一种人畜共患病,猪发病时,皮肤发红,故又称“猪红皮病”。","cause": "附红细胞体病是由多种原因引发的疾病,只有在应激和肌体抗病力降低的情况下才会诱发此病。如饲养管理不良、天气突变、突然换料、更换圈舍、密度过大等应激因素或患猪瘟、猪蓝耳病、传染性胸膜肺炎、猪链球菌病、副猪嗜血杆菌病等慢性病时,最易并发和继发附红细胞体病。","prevent": "预防本病的发生应加强猪场的卫生防疫,消除各种应激因素。在温热季节应定期喷洒杀虫剂,以杀灭蚊、蝇、蜱、牛虻、体虱、跳蚤等吸血昆虫,消除传染媒介。发病猪只要进行及时有效的治疗。对无治疗价值的病猪应及时进行淘汰,以清除传染源。阳性猪群,饲料中可添加强力霉素等,以消除隐性感染。购入猪只要进行血液检查,防止引入病猪或隐性感染猪。本病流行季节给予预防用药,可在饲料中添加上强力霉素或金霉素添加剂,或每公斤饲料添加90毫克阿散酸,连续使用30天,或每月使用7-10天。 防重于治是养猪的最后方法。","cure_lasttime": "一般3-14天。","cure_way": "⑴血虫净(或三氮眯、贝尼尔) 每公斤体重用5mg-10mg,用生理盐水稀释成5%溶液,分点肌肉注射,1天1次,连用3天。⑵咪唑苯脲每公斤体重用1mg-3mg,1天1次,连用2天-3天。⑶四环素、土霉素(每公斤体重10mg)和金霉素(每公斤体重15mg)口服或肌注或静注,连用7天-14天。⑷新胂凡纳明按每公斤体重10mg-15mg静脉注射,一般3天后症状可消失。","easy_get": "不同年龄的猪均有易感性,通常发生在哺乳猪、怀孕的母猪以及受到高度应激的肥育猪身上。","symptom": ["体温升高为40.5℃~42℃","皮肤发红,指压退色","精神不振","食欲减退","怕冷聚堆","咳嗽","流鼻涕","呼吸困难","尿液淡黄","发病中期,病猪行走时后躯摇晃,喜卧厌立,便秘或拉稀,精神沉郁,呼吸困难","血液稀薄,色淡,往往随注射针孔流血不止","皮毛枯燥","背腹部毛色铁锈色","皮肤苍白","耳内侧、背侧、颈背部、腹侧部皮肤出现暗红色出血点,可视黏膜轻度肿胀,初期潮红,后期苍白","轻度黄疸","尿液淡黄、淡红或呈红褐色,卧地不起","后期,病猪耳朵变蓝色、坏死,排血便和血红蛋白尿,最后四肢呈游泳状划动,呼吸困难,衰竭死亡"],"recommand_drug": ["抗生素","磺胺类","砷制剂","血虫净","三氮眯","贝尼尔","咪唑苯脲","四环素","土霉素","金霉素","新胂凡纳明"],"checks": ["猪附红细胞体病的发热、贫血、黄疸等症状具有一定的诊断意义,其他临床症状,如食欲减退、呼吸急迫、心悸亢进等非特征性症状在本病的诊断上意义不大。","猪患附红细胞体病后全身各部均无特征性的病理变化,一般无需作病理学检查。因此,对本病确诊,必须先进行实验室检查。","实验室诊断的方法很多,如可用间接红细胞凝集试验、补体结合试验、相差显微镜观察和染色血液涂片观察等。","间接红细胞凝集试验和补体结合试验反应敏感、检出率高,但试验条件要求高,需要时间较长。","相差显微镜观察和染色血液涂片观察以及鲜血直接压片,所需设备和药品较少,且操作简单、快捷,检出率也较高,一般在半个小时内即可作出确切诊断。"],"departments": ["寄生虫病"],"methods": ["温热季节定期喷洒杀虫剂","及时治疗发病猪只,无治疗价值的猪只应及时淘汰","阳性猪群,饲料中可添加强力霉素等,以消除隐性感染。","购入猪只要进行血液检查,防止引入病猪或隐性感染猪。"],"acompany_with": ["链球菌病","猪水肿病","仔猪副伤寒","猪肺疫","猪丹毒","猪瘟","弓形虫病"]}

上面是单个疾病的相关内容详情,可以看到包含有很多的内容。

下面是一些常见猪病的介绍,如下所示:

{"猪附红细胞体病": {"疾病所属类别": "寄生虫病","疾病诊断要点": "相差显微镜观察和染色血液涂片观察以及鲜血直接压片,所需设备和药品较少,且操作简单、快捷,检出率也较高,一般在半个小时内即可作出确切诊断。","疾病推荐药物": "新胂凡纳明","疾病预防措施": "购入猪只要进行血液检查,防止引入病猪或隐性感染猪。"},"副猪嗜血杆菌病": {"疾病所属类别": "细菌性传染病","疾病诊断要点": "该病易与传染性胸膜肺炎相混淆,但该病引起的病变多数为脑膜炎,关节炎和四肢跛行等,而传染性胸膜性肺炎较少见。","疾病推荐药物": "阿莫西林","疾病预防措施": "疫苗免疫"},"猪支原体肺炎": {"疾病所属类别": "传染病","疾病诊断要点": "其他内脏一般无明显变化。","疾病推荐药物": "中药方剂 (苏子、杏仁、款冬花、桔梗、甘草、陈皮、鱼腥草等)","疾病预防措施": "加强消毒,保持栏舍清洁、干燥通风。"},"猪圆环病毒病": {"疾病所属类别": "病毒性传染病","疾病诊断要点": "血清学检查:是生前诊断的一种有效手段。诊断本病的方法有:间接免疫荧光法(IIF),免疫过氧化物单层培养法,ELISA方法,聚合酶链式反应(PCR)方法,核酸探针杂交及原位杂交试验(ISH)等方法。","疾病推荐药物": "选用新型的抗病毒剂如干扰素、白细胞介导素、免疫球蛋白、转移因子等进行治疗,同时配合中草药抗病毒制剂,会取得明显治疗效果。","疾病预防措施": "加强饲养管理"},"猪链球菌病": {"疾病所属类别": "人畜共患病","疾病诊断要点": "药敏试验","疾病推荐药物": "抗生素","疾病预防措施": "加强饲养管理"},"猪伪狂犬病": {"疾病所属类别": "急性传染病","疾病诊断要点": "血清学诊断可直接用免疫荧光法、间接血凝抑制试验、琼脂扩散试验、补体结合试验、酶联免疫吸附试验、乳胶凝集试验。","疾病推荐药物": "猪血清抗体","疾病预防措施": "同时,还要严格控制犬、猫、鸟类和其他禽类进入猪场,严格控制人员来往,并做好消毒工作及血清学监测等,这样对本病的防制也可起到积极的推动作用。"}

接下来就需要开发程序完成数据的加载解析入库操作了,这里定义pigMedicalGraph类,如下所示:

#!usr/bin/env python
# encoding:utf-8
from __future__ import division"""
功能:  猪类疾病知识图谱构建
"""import os
import json
from py2neo import Graph,Nodeclass pigMedicalGraph:def __init__(self):def read_nodes(self):def create_node(self, label, nodes):def create_diseases_nodes(self, disease_infos):def create_graphnodes(self):def create_graphrels(self):def create_relationship(self, start_node, end_node, edges, rel_type, rel_name):

首先是加载解析本地数据,如下所示:

count = 0
with open(self.data_path, encoding="utf-8") as f:data_dict = json.load(f)
for one_key in data_dict:data_json = data_dict[one_key]disease_dict = {}count += 1print(count)disease = data_json["name"]print(disease)disease_dict["name"] = diseaseif type(disease) == list:diseases += diseasedisease = disease[0]else:diseases.append(disease)disease_dict["desc"] = ""disease_dict["cause"] = ""disease_dict["prevent"] = ""disease_dict["cure_lasttime"] = ""disease_dict["cure_way"] = ""disease_dict["symptom"] = ""disease_dict["recommand_drug"] = ""print("59")if "symptom" in data_json:symptoms += data_json["symptom"]for symptom in data_json["symptom"]:has_symptom.append([disease, symptom])if "checks" in data_json:checks += data_json["checks"]for check in data_json["checks"]:need_check.append([disease, check])if "departments" in data_json:departments += data_json["departments"]for department in data_json["departments"]:belongs_to.append([disease, department])if "methods" in data_json:methods += data_json["methods"]for method in data_json["methods"]:recommand_method.append([disease, method])if "desc" in data_json:disease_dict["desc"] = data_json["desc"]if "prevent" in data_json:disease_dict["prevent"] = data_json["prevent"]if "cause" in data_json:disease_dict["cause"] = data_json["cause"]if "easy_get" in data_json:disease_dict["easy_get"] = data_json["easy_get"]if "cure_way" in data_json:disease_dict["cure_way"] = data_json["cure_way"]if "cure_lasttime" in data_json:disease_dict["cure_lasttime"] = data_json["cure_lasttime"]if "recommand_drug" in data_json:recommand_drug1 = data_json["recommand_drug"]drugs += recommand_drug1for drug in recommand_drug1:recommand_drug.append([disease, drug])disease_infos.append(disease_dict)

接下来是创建知识图谱中的节点node,实现如下所示:

def create_node(self, label, nodes):"""创建节点"""count = 0for node_name in nodes:node = Node(label, name=node_name)self.g.create(node)count += 1print(count, len(nodes))return

之后我们来实现创建知识图谱中疾病的节点,如下所示:

def create_diseases_nodes(self, disease_infos):"""创建知识图谱中疾病的节点"""count = 0for disease_dict in disease_infos:print(disease_dict)node = Node("Disease",name=disease_dict["name"],desc=disease_dict["desc"],cause=disease_dict["cause"],prevent=disease_dict["prevent"],cure_lasttime=disease_dict["cure_lasttime"],cure_way=disease_dict["cure_way"],easy_get=disease_dict["easy_get"],recommand_drug=disease_dict["recommand_drug"],symptom=disease_dict["symptom"],)print("132")self.g.create(node)count += 1print(count)return

接下来是创建知识图谱实体节点类型schema,核心实现如下所示:

self.create_diseases_nodes(disease_infos)
self.create_node("checks", checks)
self.create_node("departments", departments)
self.create_node("diseases", diseases)
self.create_node("drugs", drugs)
self.create_node("methods", methods)
self.create_node("symptoms", symptoms)

之后我们来创建实体关联边,实现如下所示:

def create_relationship(self, start_node, end_node, edges, rel_type, rel_name):"""创建实体关联边"""count = 0# 去重处理set_edges = []for edge in edges:set_edges.append("".join(edge))all = len(set(set_edges))for edge in set(set_edges):edge = edge.split("")p = edge[0]q = edge[1]query = ("match(p:%s),(q:%s) where p.name='%s' and q.name='%s' create (p)-[rel:%s{name:'%s'}]->(q)"% (start_node, end_node, p, q, rel_type, rel_name))try:self.g.run(query)count += 1print(rel_type, count, all)except Exception as e:print(e)return

最后我们来创建实体关系边,如下所示:

self.create_relationship("diseases", "departments", belongs_to, "belongs_to", "属于")
self.create_relationship("diseases", "checks", need_check, "need_check", "疾病诊断结果")
self.create_relationship("diseases", "drugs", recommand_drug, "recommand_drug", "疾病推荐药品"
)
self.create_relationship("diseases", "methods", recommand_method, "recommand_method", "疾病预防措施"
)
self.create_relationship("diseases", "symptoms", has_symptom, "has_symptom", "疾病症状")
self.create_relationship("diseases", "diseases", acompany_with_, "acompany_with_", "疾病并发疾病"
)

到这里基本上数据的解析加载入库操作就完成了。

可以直接在neo4j数据库桌面端打开查看,如下所示:

也可以直接复制http://localhost:7474/browser/

在浏览器端打开即可,如下所示:

显然我自己觉得浏览器端的操作和可视化更加柔顺丝滑。

这里可以直接借助于知识图谱的能力来进行知识的查询回答,简单的实现如下所示:

class ChatRobot:def __init__(self):self.classifier = QuestionClassifier()self.parser = QuestionPaser()self.searcher = AnswerSearcher()def chat_main(self, sent):answer = "尊敬的用户您好,我是AI医药智能助理,希望可以帮到您!"res_classify = self.classifier.classify(sent)if not res_classify:return answerres_sql = self.parser.parser_main(res_classify)print("res_sql: ", res_sql)final_answers = self.searcher.search_main(res_sql)if not final_answers:return answerelse:return "\n".join(final_answers)if __name__ == "__main__":handler = ChatRobot()while True:question = input("user:")answer = handler.chat_main(question)print("AI:", answer)

实例输出如下所示:

接下来我们再来简单看下neo4j数据库端可视化的呈现:

每一块都包括了Graph、Table、Text和Code四种表示或者是说存储形式,接下来我们以一个实际样例来进行展示,如下所示:

【Graph】

【Table】

{"start": {"identity": 284,"labels": ["diseases"],"properties": {"name": "猪圆环病毒病"},"elementId": "284"},"end": {"identity": 230,"labels": ["departments"],"properties": {"name": "病毒性传染病"},"elementId": "230"},"segments": [{"start": {"identity": 284,"labels": ["diseases"],"properties": {"name": "猪圆环病毒病"},"elementId": "284"},"relationship": {"identity": 0,"start": 284,"end": 230,"type": "belongs_to","properties": {"name": "属于"},"elementId": "0","startNodeElementId": "284","endNodeElementId": "230"},"end": {"identity": 230,"labels": ["departments"],"properties": {"name": "病毒性传染病"},"elementId": "230"}}],"length": 1.0
}

【Text】

╒════════════════════════════════════════════════════╕
│"p"                                                 │
╞════════════════════════════════════════════════════╡
│[{"name":"猪圆环病毒病"},{"name":"属于"},{"name":"病毒性传染病"}] │
├────────────────────────────────────────────────────┤
│[{"name":"猪圆环病毒病"},{"name":"属于"},{"name":"病毒性传染病"}] │
├────────────────────────────────────────────────────┤
│[{"name":"猪圆环病毒病"},{"name":"属于"},{"name":"病毒性传染病"}] │
├────────────────────────────────────────────────────┤
│[{"name":"猪圆环病毒病"},{"name":"属于"},{"name":"病毒性传染病"}] │
├────────────────────────────────────────────────────┤
│[{"name":"猪圆环病毒病"},{"name":"属于"},{"name":"病毒性传染病"}] │
├────────────────────────────────────────────────────┤
│[{"name":"猪圆环病毒病"},{"name":"属于"},{"name":"病毒性传染病"}] │
├────────────────────────────────────────────────────┤
│[{"name":"猪圆环病毒病"},{"name":"属于"},{"name":"病毒性传染病"}] │
├────────────────────────────────────────────────────┤
│[{"name":"猪圆环病毒病"},{"name":"属于"},{"name":"病毒性传染病"}] │
├────────────────────────────────────────────────────┤
│[{"name":"猪圆环病毒病"},{"name":"属于"},{"name":"病毒性传染病"}] │
├────────────────────────────────────────────────────┤
│[{"name":"猪肾虫病"},{"name":"属于"},{"name":"寄生虫病"}]     │
├────────────────────────────────────────────────────┤
│[{"name":"猪肾虫病"},{"name":"属于"},{"name":"寄生虫病"}]     │
├────────────────────────────────────────────────────┤
│[{"name":"猪肾虫病"},{"name":"属于"},{"name":"寄生虫病"}]     │
├────────────────────────────────────────────────────┤
│[{"name":"猪肾虫病"},{"name":"属于"},{"name":"寄生虫病"}]     │
├────────────────────────────────────────────────────┤
│[{"name":"猪肾虫病"},{"name":"属于"},{"name":"寄生虫病"}]     │
├────────────────────────────────────────────────────┤
│[{"name":"猪肾虫病"},{"name":"属于"},{"name":"寄生虫病"}]     │
├────────────────────────────────────────────────────┤
│[{"name":"猪肾虫病"},{"name":"属于"},{"name":"寄生虫病"}]     │
├────────────────────────────────────────────────────┤
│[{"name":"猪肾虫病"},{"name":"属于"},{"name":"寄生虫病"}]     │
├────────────────────────────────────────────────────┤
│[{"name":"猪肾虫病"},{"name":"属于"},{"name":"寄生虫病"}]     │
├────────────────────────────────────────────────────┤
│[{"name":"猪流行性腹泻"},{"name":"属于"},{"name":"急性肠道传染病"}]│
├────────────────────────────────────────────────────┤
│[{"name":"猪流行性腹泻"},{"name":"属于"},{"name":"急性肠道传染病"}]│
├────────────────────────────────────────────────────┤
│[{"name":"猪流行性腹泻"},{"name":"属于"},{"name":"急性肠道传染病"}]│
├────────────────────────────────────────────────────┤
│[{"name":"猪流行性腹泻"},{"name":"属于"},{"name":"急性肠道传染病"}]│
├────────────────────────────────────────────────────┤
│[{"name":"猪流行性腹泻"},{"name":"属于"},{"name":"急性肠道传染病"}]│
├────────────────────────────────────────────────────┤
│[{"name":"猪流行性腹泻"},{"name":"属于"},{"name":"急性肠道传染病"}]│
├────────────────────────────────────────────────────┤
│[{"name":"猪流行性腹泻"},{"name":"属于"},{"name":"急性肠道传染病"}]│
└────────────────────────────────────────────────────┘

【Code】

这个code可以直接复制过去在Neo4j桌面端里面执行可以得到与浏览器页面端同样的结果。

感兴趣的话也都可以实践尝试去开发构建自己的应用系统!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/131354.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GNN 03】PyG

工具包安装: 不要pip安装 https://github.com/pyg-team/pytorch_geometrichttps://github.com/pyg-team/pytorch_geometric import torch import networkx as nx import matplotlib.pyplot as pltdef visualize_graph(G, color):plt.figure(figsize(7, 7))plt.xtic…

企业架构LNMP学习笔记14

默认官方模块: Gzip压缩: 压缩文件,使文件变小了,传输更快了,目前大部分市场浏览器都支持Gzip。 传输的时候省流量。 目的是为了提高用户的加载速度。 #开启gzip压缩 gzip on; #http协议版本 gzip_http_version 1.0…

Maven 知识点总结

文章目录 Maven1、Maven 坐标2、Maven 仓库3、Maven 依赖依赖配置依赖范围依赖调解原则排除依赖 4、Maven 生命周期5、Maven 聚合与继承 Maven Maven是一个项目管理工具,它包含了项目对象模型(POM:Project Object Model)&#xf…

无人机通信协议MAVLink简介

Micro Air Vehicle Link(简称MAVLink)用于无人系统(例如,机器人、无人机、无人车、无人船和无人潜航器)。它定义了一组无人系统和地面站之间的消息交换规则。此协议广泛用于无人驾驶系统中,特别是ArduPilot和PX4无人驾驶系统,MAVLink协议提供了强大的功能,不仅用于监视…

Linux安装Redis(详细教程)

Linux安装Redis 注:希望将redis安装到此目录 /usr/local/redis 希望将安装包下载到此目录 /usr/local/src 可自己选择 1.创建安装目录/usr/local/redis mkdir /usr/local/redis 2.进入安装包目录 cd /usr/local/redis 3.进行下载安装包 wget https://download…

用python实现基本数据结构【03/4】

说明 如果需要用到这些知识却没有掌握,则会让人感到沮丧,也可能导致面试被拒。无论是花几天时间“突击”,还是利用零碎的时间持续学习,在数据结构上下点功夫都是值得的。那么Python 中有哪些数据结构呢?列表、字典、集…

JDK8新特性--函数式接口--(Consumer的概念理解,模拟练习,企业实战)全流程彻底搞懂

背景,起因是因为在项目开发过程中,发现了一处代码的写法觉得很新奇看不懂,了解后发现是用到了函数式接口的知识。特此学习记录,整体过程梳理在本文。如果你不满足就会写个CURD,业务代码只会new来new去,代码…

软件工程评级B-,有大量调剂名额。北京联合大学考情分析

北京联合大学(B-) 考研难度(☆) 内容:23考情概况(拟录取和复试分析)、院校概况、23专业目录、23复试详情、各专业考情分析、各科目考情分析。 正文1239字,预计阅读:3分钟 2023考情概况 北京…

从零开始-与大语言模型对话学技术-gradio篇(4)

前言 本文介绍「星火杯」认知大模型场景创新赛中的落选项目- AI命理分析系统,属于个人娱乐练手。总结提炼了往期文章精华并发掘出新的知识。 包括本地部署版本和Web在线版本,两种打包方式基于 半自动化使用.bat手动打包迁移python项目 如何把 Gradio …

Java——》synchronized互斥性

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

你应该知道的几个国产化平台-行云管家

近年来我国国产化加速发展,国产化平台也越来越多。但还有很多小伙伴不知道有哪些,这里就给大家汇总几个,大家应该知道的国产化平台。 你应该知道的几个国产化平台 1、cpu:龙芯、飞腾、鲲鹏、兆芯、海光、申威 2、浏览器&#xf…

Vercel的下一件大事:AI SDK和开发人员加速器

Vercel CEO Guillermo Rauch说,构建AI应用程序是开发人员注册Vercel的第二大原因。Ergo:Vercel AI SDK和加速器。 在 2020 年代,很少有公司比流行的 React 框架 Next.js 的管理者 Vercel 对前端开发人员生态系统产生更大的影响。当我在 2020…

骨传导耳机怎么听到声音?骨传导耳机是否会对听力造成损害?

其实骨传导耳机让我们听到的的传声原理很简单,而且骨传导现象很常见,简单的来说,就是像我们平时吃薯片或者挠头发,无论声音再小,自己也能听见,这就是骨传导的现象,也是为啥骨传导耳机不需要入耳…

GitHubGiteeGitlab极狐(JihuLab)同时生成并配置SSH公私钥详细过程

GitHub-微软-github.com Gitee-开源中国- gitee.com Gitlab-乌克兰GitLab 公司-gitlab.com 极狐(JihuLab)-中国代理商运营的Gitlab -gitlab.cn或者jihulab.com 使用SSH公钥可以让你在你的电脑和GitHub等平台通讯的时候使用更安全的连接(Git的Remote要使用SSH地址&a…

计算机竞赛 大数据疫情分析及可视化系统

文章目录 0 前言2 开发简介3 数据集4 实现技术4.1 系统架构4.2 开发环境4.3 疫情地图4.3.1 填充图(Choropleth maps)4.3.2 气泡图 4.4 全国疫情实时追踪4.6 其他页面 5 关键代码最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 大数据疫…

vue应用全局音乐(自动播放)

这里写自定义目录标题 1.从同事哪里白嫖过来的&#xff0c;主要是jq写的&#xff0c;需要单独引入jq cdn 2.打开index.html 将代码放到里面 <!DOCTYPE html> <html><head><meta charset"utf-8" /><metaname"viewport"content…

软件设计——面向对象的七大原则

前言 软件设计模式和设计原则是成为一个软件架构师的基本功&#xff0c;较好的理解这些基础知识无疑是十分重要的。在这篇文章中荔枝将会比较详细梳理一下面向对象的七大原则&#xff0c;大家可以先看看这部分内容再去学习设计模式会比较好哈哈哈哈~~~ 在软件开发中&#xff0c…

Linux RPM JDK升级

以JDK1.8升级JDK17为例 上传jdk17安装包到linux服务器 检查jdk版本 rpm -qa|grep jdk 删除查询到的jdk rpm -e --nodeps jdk1.8-1.8.0_201-fcs.x86_64 删除完毕后安装新的jdk rpm -ivh jdk-17_linux-x64_bin.rpm 检查jdk版本 java -version

深入探讨基于python的SGBM参数影响效果

什么是SGBM SGBM&#xff08;Semi-Global Block Matching&#xff09;是一种用于计算双目视觉中视差&#xff08;disparity&#xff09;的半全局匹配算法&#xff0c;在OpenCV中的实现为semi-global block matching&#xff08;SGBM&#xff09;。它是基于全局匹配算法和局部匹…

Matlab 2016安装MinGW-w64-4.9.2

Matlab 2016安装MinGW-w64-4.9.2 项目需求&#xff1a;需要将matlab中的.m文件编译为cpp文件 .dll .h .lib。 我相信大家在对matlab2016安装MinGW-w64出现了各种各样的问题。如&#xff1a;4.9.2安装失败&#xff1b;安装了其他版本但是matlab检测不到&#xff0c;或者其他各种…