知识图谱Neo4j安装到实践全过程
前言:
Hello大家好,我是Dream。 在本次实战中,我们将一起完成知识图谱Neo4j安装到实践全过程,探索其中的关系和属性。知识图谱是一种以三元组形式存储的数据结构,由实体、关系和属性
组成,能够帮助我们更好地理解和分析复杂的知识关系,一起来看看吧~
一、语义网络写入图形数据库
实验目的
(1)了解向数据库中写入语义网络的方法。
(2)简单使用Neo4j呈现语义网络。
实验要求
本次实验后,能理解语义网络的 节点(Node)和关系(Relationship) 在数据库中是如何呈现的。
实验原理
将一个事实用语义网络表示,首先要找出它的节点,再描述它与其他节点的关系,最后用Python 写入数据库中。
实验准备
1.安装JDK
下载neo4j之前,首先要安装JDK。
1.1 下载
官网下载链接:https://www.oracle.com/java/technologies/javase-downloads.html
JDK版本的选择一定要恰当,建议jdk1.8 比较稳定 版本太高或者太低都可能导致后续的neo4j无法使用。
以下是安装路径:
1.2 配置环境变量
安装好JDK之后就要开始配置环境变量了。 配置环境变量的步骤如下:
在开始处直接搜索环境变量,打开后会出现如下界面,然后点击右下角处环境变量:
在下方的系统变量区域,新建环境变量,命名为JAVA_HOME,变量值设置为刚才JAVA的安装路径,我这里是D:\大机场\java\java1。
编辑系统变量区的Path,点击新建,然后输入 %JAVA_HOME%\bin
打开命令提示符CMD(WIN+R,输入cmd)
,输入 java -version,若提示Java的版本信息,则证明环境变量配置成功:
2. 安装neo4j
安装好JDK之后,就可以安装neo4j了。
2.1 下载
官方下载链接:https://neo4j.com/download-center/#community
在这里,我下载的是neo4j社区版5.8.0。
下载好之后,直接解压到合适的路径就可以了,无需安装:
2.2 配置环境变量
接下来要配置环境变量了,与刚才JAVA环境变量的配置方法极为相似,因此在这里只进行简单描述。
在系统变量区域,新建环境变量,命名为NEO4J_HOME
,变量值设置为刚才neo4j的安装路径,我这里是D:\大机场\neo4j\neo4j1。
编辑系统变量区的Path,点击新建,然后输入 %NEO4J_HOME%\bin,最后,点击确定进行保存就可以了。
3. 启动neo4j
以管理员身份运行cmd。
然后,在命令行处输入neo4j.bat console
如出现此界面,则证明neo4j
启动成功。
在浏览器中输入界面中给出的网址http://localhost:7474/
,则会显示如下界面。
默认的用户名和密码均为neo4j。
至此,neo4j安装完毕~
实验步骤
1.从neomodel包导入类。
from neomodel import StructuredNode, StringProperty, RelationshipTo, RelationshipFrom, config
2.连接Neo4j图形数据库。
config.DATABASE URL= 'bolt://neo4i:neo4ialocalhost:7687'
即将要构造的事实为“树和草都是植物。树和草都有叶和根。水早是早,且生长在水中。果树是树,日会结里、烈树是里树的一种,它会结梨”。
3.编写节点类。
植物、树、草、叶、根、水草、水、果树、结果、梨树、结架赵些节点英继承自StructuredNode类,包括节点属性和连接关系。
class Plant(StructuredNode):name = StringProperty(unique_index=True)has1 = RelationshipFrom("Tree", "AKO")has2 = RelationshipFrom('Grass', 'AKO')have1 =RelationshipTo('Leaf', 'Have')have2 = RelationshipTo('Root', 'Have')
class Tree(StructuredNode):name = StringProperty(unique_index=True)ako = RelationshipTo('Plant', 'AKO')have = RelationshipFrom('Fruiter', 'AKO')
class Grass(StructuredNode):name = StringProperty(unique_index=True)ako = RelationshipTo('Plant' , 'AKO')has = RelationshipFrom('Waterweeds', 'AKO')
class Leaf(StructuredNode):name = StringProperty(unique_index=True)have = RelationshipFrom('Plant', 'Have')
class Root(StructuredNode):name = StringProperty(unique_index=True)have = RelationshipFrom('Plant', 'Have')
class Waterweeds(StructuredNode):name = StringProperty(unique_index=True)ako = RelationshipTo('Grass' , 'AKO')live = RelationshipTo('Water', 'Live')
class Water(StructuredNode):name = StringProperty(unique_index=True)have = RelationshipFrom('Waterweeds', 'Live')class Fruiter(StructuredNode):name = StringProperty(unique_index=True)ako = RelationshipTo('Tree', 'AKO')can = RelationshipTo('Bear', 'Can')have = RelationshipFrom('Pear','AKO')class Bear(StructuredNode):name = StringProperty(unique_index=True)have = RelationshipFrom('Fruiter' , 'Can')class Pear(StructuredNode):name = StringProperty(unique_index = True)ako = RelationshipTo('Fruiter', 'AKO')can = RelationshipTo('BearPear', 'Can')class BearPear(StructuredNode):name = StringProperty(unique_index=True)have = RelationshipFrom('Pear', 'Can')plant =Plant(name="植物").save()
tree = Tree(name="树").save()
grass = Grass(name="草" ).save()
leaf = Leaf(name= "叶" ).save()
root = Ro
4.根据类生成实例。
leaf = Leaf(name= "叶" ).save()
root = Root(name="根").save()
waterweeds = Waterweeds(name="水草").save()
water = Water(name="水" ).save()
fruiter = Fruiter(name="果树").save()
bear = Bear(name="结果").save()
pear = Pear(name="梨树").save()
bearpear = BearPear(name="结梨").save()
5.创建实例之间的连接关系。
pear.ako.connect(fruiter)
pear.can.connect(bearpear)
fruiter.ako.connect(tree)
fruiter.can.connect(bear)
waterweeds.ako.connect(grass)
waterweeds.live.connect(water)
plant.have1.connect(leaf)
plant.have2.connect(root)
tree.ako.connect(plant)
grass.ako.connect(plant)
实验结果
二、水浒传知识图谱构建
启动neo4j
以管理员身份运行cmd,
在命令行处输入neo4j.bat console
如出现此界面,则neo4j启动成功
在浏览器中输入界面中给出的网址http://localhost:7474/,即可打开neo4j的可视化界面。
打开jupyter notebook
1.进入 jupyter notebook:
在命令行中输入"jupyter notebook"命令并回车后,会自动跳转到jupyter notebook的工作区页面。这样,我们就可以开始进行知识图谱的构建了。
2.数据集下载
数据集:triples.csv
链接:https://pan.baidu.com/s/19vrJ1vkEf2lgchBkF8OALQ?pwd=gn8o
提取码:gn8o
数据说明:构建知识图谱需要把数据处理成三元组<实体1,关系,实体2>或<实体,属性,属性值>的形式,每个三元组(triples)可看成是由subject(主语)、predicate(谓语)和object(宾语)组成。知识图谱中的三元组主要包含两种,一种是关系三元组relation triples,另一种是属性三元组attribute triples,relation triples中的subject和object均是实体,而predicate通常被称为关系。attribute triples中的subject是实体,而object则是取值(value),该值通常是一个数值或者文本,其predicate通常称为属性。
数据又分为非结构化数据(例如:文本、文档、图片等),半结构化文本(如:日志文件、XML文档、JSON文档等)和结构化数据,本实验使用的数据集是结构化的三元组数据,无需做额外处理,可以直接使用。
3.安装第三方库
为了能够顺利进行知识图谱构建,我们需要安装一些必要的第三方库:
- 安装py2neo库:用于与neo4j图数据库进行交互。
- 安装pyahocorasick,numpy和pandas库:用于处理数据集和进行相关操作。
!pip install py2neo pyahocorasick numpy pandas
!pip install pytest-cov==2. 0
!pip install pytest-filter-subpackage==0. 1
!pip install typed ast== 1. 4. 0
4.导包
在jupyter notebook中,我们需要导入一些必要的库来进行知识图谱的构建。在代码开始的地方加入以下代码即可:
import py2neo
from py2neo import Graph,Node,Relationship,NodeMatcher
5.连接图数据库
为了能够与neo4j图数据库进行交互,我们需要先连接到该数据库。接下来,我们可以使用以下代码来连接图数据库:
auth的值分别为neo4j登录时的账号和密码,一定要使用安装时更改之后的密码,否则无法连接到图数据库。
g=Graph("neo4j://localhost:7687", auth=("neo4j", "mima"))
6.图谱构建
import csv
with open(r"D:\PycharmProjects\知识表示\triples.csv",'r', encoding='utf-8') as f:reader=csv.reader(f)for item in reader:if reader.line_num==1:continueprint('当前行数:',reader.line_num,"当前内容:",item)start_node=Node("Person" ,name=item[0])end_node=Node("Person", name=item[1])relation=Relationship(start_node,item[3],end_node)g.merge(start_node,"Person", "name")g. merge(end_node,"Person","name")g.merge(relation,"Person","name")
这段代码将逐行读取数据集文件,并将每行数据转换为三元组的形式进行图谱构建。
运行代码后,可以在控制台上看到当前行数和对应的内容。
结果显示:
结果显示:
运行成功后,我们可以在neo4j的可视化界面中查看已经构建好的知识图谱。
图谱可视化结果
我们可以在neo4j的可视化界面中,通过查询相关节点和关系,来查看已经构建好的水浒传知识图谱的可视化结果。
在界面中输入相应的Cypher查询语句即可。
相关文章:
知识图谱Neo4j安装到实践全过程
前言: Hello大家好,我是Dream。 在本次实战中,我们将一起完成知识图谱Neo4j安装到实践全过程,探索其中的关系和属性。知识图谱是一种以三元组形式存储的数据结构,由实体、关系和属性组成,能够帮助我们更好地…...
贪心算法:简单而高效的优化策略
在计算机科学中,贪心算法是一种简单而高效的优化策略,用于解决许多组合优化问题。虽然它并不适用于所有问题,但在一些特定情况下,贪心算法能够产生近似最优解,而且计算成本较低。在本文中,我们将深入探讨贪…...
一生一芯6——ubuntu rpm软件安装
ubuntu不支持rpm,需要将rpm软件安装包转成deb进行安装 安装alien sudo apt-get install alien格式转换 sudo alien xxx.rpm 在目录下会生成deb的安装包 软件安装 sudo dpkg -i xxx_amd64.deb 安装完成...
Python练习 函数取列表最小数
练习2:构造一个功能函数,可以解决如下问题: 要求如下: 1,任意输入一个列表,函数可以打印出列表中最小的那个数, 例:输入: 23,56,67,4,17,9 最小数是 :4 方法一: #内置函…...
五种重要的 AI 编程语言
推荐:使用 NSDT场景编辑器 助你快速搭建3D应用场景 简而言之:决定从哪种语言开始可能会令人生畏。 不用担心!本文将解释 AI 中使用的最流行编程语言背后的基础知识,并帮助您决定首先学习哪种语言。对于每种语言,我们将…...
【linux】2 make/Makefile和gitee
文章目录 一、Linux项目自动化构建工具-make/Makefile1.1 背景1.2 实例代码1.3 原理1.4 项目清理 二、linux下第一个小程序-进度条2.1 行缓冲区2.2 进度条 三、git以及gitee总结 ヾ(๑╹◡╹)ノ" 人总要为过去的懒惰而付出代价ヾ(๑╹◡╹)ノ" 一…...
db-gpt安装指南(docker版本)
1 下载源码 下载v0.3.5的源码,截止今天(20230823)建议安装这个“稳定”版本。 2 构建镜像 依照自己硬件环境,看看是否要调整一下启动参数。 bash docker/build_all_images.sh \ --base-image nvidia/cuda:11.7.1-devel-ubuntu…...
「Java」《深度解析Java Stream流的优雅数据处理》
《深度解析Java Stream流的优雅数据处理》 一、引言1.1 背景1.2 Stream流的意义 二、Stream流的基本概念2.1 什么是Stream流2.2 Stream与传统集合的对比 三、创建Stream流3.1 通过集合创建Stream3.2 使用Arrays和Stream.of创建Stream3.3 从文件和网络流创建Stream 四、 中间操作…...
【云驻共创】华为云之手把手教你搭建IoT物联网应用充电桩实时监控大屏
文章目录 前言1.什么是充电桩2.什么是IOT3.什么是端、边、云、应用协同4.什么是Astro轻应用 一、玩转lOT动态实时大屏(线下实际操作)1.Astro轻应用说明1.1 场景说明1.2 资费说明1.3 整体流程 2.操作步骤2.1 开通设备接入服务2.2 创建产品2.3 注册设备2.4…...
Hadoop分布式计算与资源调度:打开专业江湖的魔幻之门
文章目录 版权声明一 分布式计算概述1.1 分布式计算1.2 分布式(数据)计算模式1.3 小结 二 MapReduce概述2.1 分布式计算框架 - MapReduce2.2 MapReduce执行原理2.3 小结 三 YARN概述3.1 YARN & MapReduce3.2 资源调度3.3 程序的资源调度3.4 YARN的资…...
为什么叫源表?源表是如何四象限工作的?
为何称呼为源表? “源”为电压源和电流源,“表”为测量表; “源表”即指一种可作为四象限的电压源或电流源提供精确的电压或电流,同时可同步测量电流值或电压值的测量仪表。(恒流源时测电压,恒压源时测电…...
云原生周刊:Kubernetes v1.28 正式发布 | 2023.8.21
开源项目推荐 kurt 一个 Kubernetes 插件,可提供 Kubernetes 集群中重启内容的上下文信息。 Kubean Kubean 是一个基于 kubespray 的 Kubernetes 集群生命周期管理工具。 k8sgpt k8sgpt 是一款用简单的英语扫描 Kubernetes 集群、诊断和分流问题的工具。 它将…...
Git基础——基本的 Git本地操作
本文涵盖了你在使用Git的绝大多数时间里会用到的所有基础命令。学完之后,你应该能够配置并初始化Git仓库、开始或停止跟踪文件、暂存或者提交更改。我们也会讲授如何让Git忽略某些文件和文件模式,如何简单快速地撤销错误操作,如何浏览项目版本…...
PythonJS逆向解密——实现翻译软件+语音播报
前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 环境使用: python 3.8 pycharm 模块使用: requests --> pip install requests execjs --> pip install PyExecJS ttkbootstrap --> pip install ttkbootstrap pyttsx3 --> pip install pyttsx3 第三…...
gPRC与SpringBoot整合教程
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...
Hadoop Yarn 配置多队列的容量调度器
文章目录 配置多队列的容量调度器多队列查看 配置多队列的容量调度器 首先,我们进入 Hadoop 的配置文件目录中($HADOOP_HOME/etc/hadoop); 然后通过编辑容量调度器配置文件 capacity-scheduler.xml 来配置多队列的形式。 默认只…...
c语言练习题28:杨氏矩阵
杨氏矩阵 从左到右增加 从上到下增加 思路: 代码: #include<stdio.h> int findNum(int(*arr)[3], int x, int y, int k) {int i 0;int j y - 1;while (i<x&&j>0) {if (arr[i][j] > k) {j--;}else if (arr[i][j] < k) {i;…...
梳理系统学习R语言1-R语言实战-使用ggplot进行高阶绘图
以下为书中代码,会添加一些理解 library("ggplot2") ggplot(datamtcars,aes(xwt,ympg))geom_point()geom_point(pch17,color"blue",size2)geom_smooth(method"lm",color"red",linetype2)labs(title"Automobile Data&…...
测试框架pytest教程(2)-用例依赖库-pytest-dependency
对于 pytest 的用例依赖管理,可以使用 pytest-dependency 插件。该插件提供了更多的依赖管理功能,使你能够更灵活地定义和控制测试用例之间的依赖关系。 Using pytest-dependency — pytest-dependency 0.5.1 documentation 安装 pytest-dependency 插…...
electron软件安装时,默认选择为全部用户安装
后续可能会用electron开发一些工具,包括不限于快速生成个人小程序、开发辅助学习的交互式软件、帮助运维同学一键部署的简易版CICD工具等等。 开发进度,取决于我懒惰的程度。 不过不嫌弃的同学还是可以先关注一波小程序,真的发布工具了&…...
MySQL常用表级操作
基础信息相关 1.修改表名: rename table 旧表名 to 新表名; 2、修改字段类型: alter table 表名 modify column 字段名 字段类型(长度) 3、修改字段名称和类型: alter table 表名 change 现有字段名称 修改后字段名称 数据类型 4、增加字段&a…...
Golang Gorm 一对多关系 关系表创建
一对多关系 我们先从一对多开始多表关系的学习因为一对多的关系生活中到处都是,例如: 老板与员工女神和添狗老师和学生班级与学生用户与文章 在创建的时候先将没有依赖的创建。表名称ID就是外键。外键要和关联的外键的数据类型要保持一致。 package ma…...
java八股文面试[数据结构]——ConcurrentHashMap原理
HashMap不是线程安全: 在并发环境下,可能会形成环状链表(扩容时可能造成,具体原因自行百度google或查看源码分析),导致get操作时,cpu空转,所以,在并发环境中使用HashMap是…...
学习记录——FeatEnHancer
FeatEnHancer: Enhancing Hierarchical Features for Object Detection and Beyond Under Low-Light Vision 一种适用于任意低光照任务增强方法 ICCV 2023 提出了FeatEnHancer,一种用于低光照视觉任务的增强型多尺度层次特征的新方法。提议的解决方案重点增强相关特…...
OpenCV中常用的函数
OpenCV是一个功能强大的计算机视觉库,提供了众多用于图像处理、计算机视觉和机器学习的函数和模块。以下是一些OpenCV中常用的函数和模块的子集: 图像读取和显示: cv::imread:用于读取图像文件。cv::imshow:用于显示图…...
【福利】Google Cloud Next ’23 精彩待发,Cloud Ace 作为联合赞助商提前发福利~
【Cloud Ace 是 Google Cloud 全球战略合作伙伴,在亚太地区、欧洲、南北美洲和非洲拥有二十多个办公室。Cloud Ace 在谷歌专业领域认证及专业知识目前排名全球第一位,并连续多次获得 Google Cloud 各类奖项。作为谷歌云托管服务商,我们提供谷…...
vue-admin-template实现按钮级控制
这里记录一下使用大佬的模板vue-admin-template,实现按钮级别控制 实现的思路:用户登录之后,返回用户详细信息(将用户的所有权限码发送给前端),然后将权限码保存在全局状态管理对象中,然后在组件中进行判断是否显示 最…...
数据驱动工作效率提升的5个层次—以PreMaint设备数字化平台为例
在现代工业领域,数据分析已成为提升工作效率和优化生产的不可或缺的工具。从描述性分析到规范性分析,数据分析逐步揭示了设备运行和维护的深层信息,帮助企业更明智地做出决策。本文将以PreMaint设备数字化平台为例,探讨工业数据驱…...
白介素对NK细胞功能的影响(IL-1β、IL-12、IL-15、IL-18、IL-21)
1、促进NK细胞扩增和活化:IL-2/21 Soiffer RJ等自1996年起即报道IL-2低剂量持续输注和间歇给药对转移癌患者的CD56NK细胞有明显扩增效果。大部分NK细胞表面具有IL-2中亲和性受体,IL-2诱导NK的杀伤活性约需18~24小时。此外,IL-2还…...
C++笔记之虚函数重写规则、返回类型协变、函数的隐藏
C笔记之虚函数重写规则、返回类型协变、函数的隐藏 code review! 文章目录 C笔记之虚函数重写规则、返回类型协变、函数的隐藏1.返回类型协变2.C中函数的隐藏 —— C Primer Plus (第6版) —— cppreference 1.返回类型协变 2.C中函数的隐藏 在C中&a…...
抢鲜体验!vLive虚拟直播5大实用新功能上线!
vLive虚拟直播系统2.6.2版本全新上线!新版本一共更新了5项实用功能,能让你的直播操作更加方便。现在就跟随小编一起来看看吧! 1.本地下载场景支持一键迁移 用户下载后的场景可以直接迁移至另一个磁盘,无需重复下载。 2.信号源添加…...
网约车平台如何开发?需要多少钱?
随着共享经济的兴起,网约车行业迅速发展,并成为人们生活中不可或缺的一部分。为了满足市场需求和提供更好的服务,开发一款高质量的网约车源码平台至关重要。本文将深入探讨网约车源码平台的开发方案,从技术架构、安全性和用户体验…...
Rust踩雷笔记(5)——刷点链表的题(涉及智能指针Box,持续更新)
目录 leetcode 2 两数相加——模式匹配单链表Box 只能说Rust链表题的画风和C完全不一样,作为新手一时间还不太适应,于是单独为链表、智能指针开一篇,主要记录leetcode相关题型的答案以及注意事项。 leetcode 2 两数相加——模式匹配单链表Bo…...
[附源码]计算机毕业设计-JAVA火车票订票管理系统-springboot-论-文-ppt
PPT论文 文章目录 前言一、主要技术javaMysql数据库JSP技术 二、系统设计三、功能截图总结 前言 本论文主要论述了如何使用JAVA语言开发一个火车订票管理系统 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想…...
CARLA spawn Actor (Vehicle and Pedestrian)
1. Spawn Vehicles 2. Spawn Pedestrian References [1] Carla简单入门-1 基本的API使用 - 知乎 [2] https://carla.org/2019/07/12/release-0.9.6/...
【官方中文文档】Mybatis-Spring #SqlSessionFactoryBean
SqlSessionFactoryBean 在基础的 MyBatis 用法中,是通过 SqlSessionFactoryBuilder 来创建 SqlSessionFactory 的。而在 MyBatis-Spring 中,则使用 SqlSessionFactoryBean 来创建。 设置 要创建工厂 bean,将下面的代码放到 Spring 的 XML …...
el-tree树回显删除某项,再次点开树形组件无变化,实际数据已改变
el-tree树回显删除某项,再次点开树形组件无变化,实际数据已改变 页面有添加和删除已选选项的按钮,点击删除一个选项,再点添加,打开树形弹窗,发现弹窗被删除的选项还在 原因: 发现是添加的时候&…...
生产作业标准化是什么?生产车间作业流程标准化的步骤
生产作业标准化是以精益化为目标,对现行作业方法进行量化细化的分析改善,最终形成优化后的更好的作业程序。标准化的作用主要是以文件的方式保存企业成员积累的技术和经验,而不是因为人员的流动而失去整个技术和经验。 生产作业标准化的实施非…...
CSS3盒模型+flex
1.盒模型 标准盒模型: wwidthpaddingborderhheightpaddingborder 怪异盒模型(ie盒模型) wwidth包含了(paddingborder)hheight包含了(paddingborder) 2.CSS3弹性盒(重点新版弹性盒) 弹性盒: 设置为弹性盒后,父元素为容器,子元素为项目弹性盒中存在两根轴,默认水平为主轴,垂…...
物种气候生态位动态量化与分布特征模拟
在全球气候快速变化的背景下,理解并预测生物种群如何应对气候变化,特别是它们的地理分布如何变化,已经变得至关重要。利用R语言进行物种气候生态位动态量化与分布特征模拟,不仅可以量化描述物种对环境的需求和适应性,预…...
微服务参数透传实现
说明:在微服务架构中,用户身份经网关验证后,我们可以将用户信息,如ID加入到请求头上。后面的微服务中,可以设置一个拦截器,拦截请求,获取请求头上的用户ID,加入到ThreadLocal中。 最…...
leetcode 767. Reorganize String(重组字符串)
重新排列字符串s中的字母,使得任意两个相邻的字母都不相同。 思路: 让相邻字母不同,能想到的办法是先把相同的字母排列, 然后在相同字母的缝隙中插入另一种字母。 比如"aab", 先把"a a"排出来,再…...
java八股文面试[数据结构]——List和Set的区别
List和Set是用来存放集合的接口,并且二者都继承自接接口Collection List 中的元素存放是有序的,可以存放重复的元素,检索效率较高,插入删除效率较低。 Set 没有存放顺序不能存放重复元素检索效率较低,插入删除效率较…...
脑机接口里程碑!一天2篇Nature!
2023年8月23日,《Nature》期刊一口气发表了两项独立的脑机接口方向的研究。 一项来自加州大学旧金山分校华裔科学家张复伦团队,另一项来自斯坦福大学的神经科学家弗朗西斯威利特(Francis Willett)团队。两项研究都旨在帮助那些因脑损伤和疾病而失去语言能…...
C语言strchr函数
描述 strchr函数用于在一个字符串中查找某个字符的第一次出现的位置。 函数的声明: char * strchr(const char *s, int c); 其中,s是要进行查找的字符串,c是要查找的字符。函数返回指向第一次出现字符 c 的指针,如果未找到&…...
Linux下的Shell基础——Shell概述和入门(一)
前言: Shell还是一个功能相当强大的编程语言,易编写、易调试、灵活性强。为了方便后续的学习,我们需要学习在Linux系统下的Shell编程 目录 一、Shell概述 1.Linux 提供的 Shell 解析器有 2. 默认的解析器是 bash 二、Shell 脚本入门 1.脚…...
当你在浏览器中输入了网址访问时产生了哪些技术步骤
当你在浏览器中输入了网址访问时产生了哪些技术步骤 前段时间在知乎上了看一些网络方面的知识,刚好小编自己也是从事这一块的相关工作由对网络方面有一定的了解。今天我们来讲讲,当你在浏览器中输入本站域名并回车后,这背后到底发生来什么事…...
嵌入式Linux人脸检测libfacedetection
人脸检测 此库依赖Opencv,所以首先要移植Opencv到板子上。 笔者使用LVGL搭建了一个界面,界面有些卡顿(主要原因是文件存取较慢),演示效果如下: OpenCV 首先要交叉编译Opencv 参考:https://…...
Hugo托管到Github Pages
Github通过其Github Pages服务可以user、project或organization提供免费快速的静态托管,同时使用Github Actions自动化开发工作流和构建。 1.创建Github仓库 可见性为public。 命名为username.github.io,username为你的Github用户名。 2.添加远程仓库…...
Python经典面试题——在txt里面添加字段和数据
1. 问题: 如何在txt中实现第一行的字段加一个"test",如果第二行开始有数据,在每条数据的最后加"ok" 2.条件 提供的txt文本如下 时间--地区--人口---降雨量----- 20220101--北京--200--0.5----- 20230101--成都--100--0.55----- …...