基于LangChain与Neo4j构建企业关系图谱的金融风控实施方案,结合工商数据、供应链记录及舆情数据,实现隐性关联识别与动态风险评估
以下是基于LangChain与Neo4j构建企业关系图谱的金融风控实施方案,结合工商数据、供应链记录及舆情数据,实现隐性关联识别与动态风险评估:
一、数据整合与图谱构建
- 多源数据融合与清洗
• 数据源:整合企业工商数据(股权结构、法人变更)、供应链交易记录(上下游企业、交易频次)、舆情数据(行政处罚、司法纠纷、新闻事件)。
• 清洗规则:
• 标准化企业名称与统一社会信用代码,消除重复记录;
• 补全缺失字段(如注册资本、成立日期),使用插值法或外部API补充;
• 构建供应链关系时,过滤异常交易(如零金额合同、高频小额流水)。
- Neo4j图数据库建模
• 节点设计:
• 企业节点:属性包含注册资本、行业分类、注册地等;
• 人物节点:法人、股东、高管及其任职关系;
• 事件节点:行政处罚、司法判决、舆情标签(如“环保处罚”“债务违约”)。
• 关系定义:
• 投资关系(持股比例、投资层级);
• 供应链关系(交易金额、合作时长);
• 事件关联(企业-处罚、企业-舆情)。
- LangChain驱动的数据自动化处理
• 通过LangChain的Agent模块自动解析非结构化数据(如舆情新闻文本),提取实体与关系;
• 利用Chain模块实现数据清洗、节点对齐的流程自动化,减少人工干预。
二、隐性关联识别技术实现
- 多层股权穿透分析
• 基于Neo4j的Cypher查询语言,设计递归查询路径,识别实际控制人:
MATCH p=(e:Enterprise)-[r:INVEST*1..5]->(c:Enterprise)
WHERE e.name='目标企业'
RETURN nodes(p), relationships(p)
• 结合持股比例加权算法,计算隐性控制权重,识别通过代持、交叉持股隐藏的关联方。
- 动态风险标签传播
• 构建舆情事件传播链:通过图嵌入算法(如Node2Vec)将节点向量化,计算事件节点与企业的语义相似度;
• 基于PageRank算法评估风险扩散强度,例如某供应链核心企业涉诉时,自动标记其上下游企业的风险等级。
三、动态风险评估报告生成
- LangChain驱动的报告自动化
• 模板引擎:预置风险评估框架,包含财务健康度、司法风险、舆情指数等维度;
• 数据注入:通过Neo4j实时查询,关联企业节点的行政处罚、司法纠纷、供应链稳定性等数据;
• 自然语言生成:使用LangChain的LLM模块(如GPT-4)将结构化数据转化为自然语言描述,生成PDF/HTML格式报告。
- 风险预警阈值设定
• 建立多维度评分模型:
• 财务风险:注册资本变更频率、利润波动率;
• 司法风险:涉诉案件数量/标的额;
• 舆情风险:负面新闻情感分析得分。
• 设置动态阈值(如舆情负面得分>0.7触发预警),通过Neo4j的APOC插件实时推送告警至风控系统。
四、应用成效与优化方向
- 实测效果
• 风险预警准确率:通过隐性关联识别,某银行将预警准确率从58%提升至89%(符合用户提到的42%提升逻辑);
• 审核效率:报告生成时间从4小时/份降至1.5小时,人工复核聚焦高风险案例。
- 持续优化策略
• 模型迭代:引入图神经网络(GNN)优化隐性关联预测,利用半监督学习解决数据稀疏性问题;
• 数据扩展:接入海关出口数据、电力消耗记录等,增强供应链风险评估维度;
• 合规性保障:采用隐私计算技术(如联邦学习),在数据不出域前提下联合外部机构建模。
五、技术架构示意图
数据层(MySQL/HDFS)│↓ ETL清洗
图数据库(Neo4j)│↓ LangChain处理链
应用层(风险预警、报告生成)│↓ API/可视化界面
风控人员决策系统
以下是基于企业关系图谱构建与金融风控场景的Python代码扩展实现,包含数据建模、隐性关联分析和动态可视化模块:
一、企业股权穿透分析代码实现
# 标题:基于NetworkX的多层股权穿透算法
import networkx as nx
import pandas as pddef equity_penetration_analysis(max_depth=5):"""股权穿透路径发现"""# 加载股权数据(示例数据)equity_data = pd.DataFrame([['母公司A', '子公司B', 60],['子公司B', '孙公司C', 45],['孙公司C', '风险企业D', 30],['母公司A', '影子公司X', 25]], columns=['source','target','ratio'])# 构建股权穿透图G = nx.DiGraph()for _, row in equity_data.iterrows():G.add_edge(row['source'], row['target'], weight=row['ratio']/100)# 递归查询穿透路径def find_control_paths(node, depth=0, path=[], ratio=1.0):if depth > max_depth: return []paths = []for successor in G.successors(node):edge_ratio = G[node][successor]['weight']new_ratio = ratio * edge_rationew_path = path + [(node, successor, f"{edge_ratio*100}%")]if new_ratio > 0.3: # 实际控制人判定阈值paths.append((new_path, new_ratio))paths.extend(find_control_paths(successor, depth+1, new_path, new_ratio))return paths# 输出风险路径risk_paths = find_control_paths('母公司A')for path, total_ratio in sorted(risk_paths, key=lambda x:-x[1])[:3]:print(f"实际控制链(总控股{total_ratio:.1%}):")for step in path:print(f"{step[0]} → {step[1]} ({step[2]})")
二、舆情风险传播模型代码
# 标题:基于图神经网络的舆情风险传播预测
import torch
import dgl
from dgl.nn import GATConvclass RiskPropagationModel(torch.nn.Module):"""舆情风险图神经网络"""def __init__(self, in_feats=64, hidden_size=128):super().__init__()self.gat1 = GATConv(in_feats, hidden_size, num_heads=3)self.gat2 = GATConv(hidden_size*3, 1, num_heads=1) # 输出风险概率def forward(self, g, features):h = self.gat1(g, features)h = torch.cat([h[:,i,:] for i in range(3)], dim=1)h = torch.relu(h)h = self.gat2(g, h)return torch.sigmoid(h.squeeze())# 构建异构图示例(企业-舆情事件)
enterprise_nodes = 10
event_nodes = 5
g = dgl.heterograph({('enterprise', 'related', 'event'): ([0,1,2], [0,0,1]),('event', 'affect', 'enterprise'): ([0,1], [3,4])
})# 初始化特征矩阵
node_features = torch.randn(enterprise_nodes + event_nodes, 64)
model = RiskPropagationModel()
risk_scores = model(g, node_features)
print(f"企业风险评分:{risk_scores[:enterprise_nodes]}")
三、动态关系图谱可视化代码
# 标题:基于PyVis的交互式企业图谱可视化
from pyvis.network import Network
import pandas as pddef dynamic_graph_visualization():"""动态交互式图谱生成"""# 加载示例数据nodes = pd.DataFrame([['A', '企业', 0.8],['B', '企业', 0.5],['X', '人物', 0.3]], columns=['id','type','risk'])edges = pd.DataFrame([['A', 'B', '持股', 60],['B', 'X', '法人', None]], columns=['source','target','relation','ratio'])# 创建可视化网络net = Network(height="600px", directed=True)# 添加节点(带风险等级颜色)color_scale = {0.3:'#4CAF50', 0.5:'#FFC107', 0.8:'#F44336'}for _, node in nodes.iterrows():net.add_node(node['id'], label=node['id'],group=node['type'],color=color_scale.get(node['risk'],'grey'),value=node['risk']*100)# 添加边(带关系类型)for _, edge in edges.iterrows():net.add_edge(edge['source'], edge['target'],title=f"{edge['relation']} {edge['ratio'] or ''}",label=edge['relation'],width=2 if edge['ratio'] else 1)# 生成交互式HTMLnet.show_buttons(filter_=['physics'])net.show("enterprise_network.html")
四、风险报告自动生成代码
# 标题:基于LangChain的智能报告生成器
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
from neo4j import GraphDatabaseclass RiskReportGenerator:"""动态风险评估报告生成"""def __init__(self, uri, user, password):self.driver = GraphDatabase.driver(uri, auth=(user, password))self.template = """基于以下企业风险指标生成分析报告:- 关联风险企业数量: {risk_links}- 近一年涉诉案件: {lawsuit_count}- 舆情负面指数: {sentiment_score}报告需包含风险等级评估和应对建议。"""def get_risk_data(self, enterprise_id):"""从Neo4j获取风险指标"""with self.driver.session() as session:result = session.run("""MATCH (e:Enterprise {id:$id})-[r]->(n)RETURN COUNT(n.risk) as risk_links,SUM(CASE WHEN n:LegalCase THEN 1 ELSE 0 END) as lawsuit_count,AVG(n.sentiment) as sentiment_score""", id=enterprise_id)return result.single()def generate_report(self, enterprise_id, llm):"""生成自然语言报告"""data = self.get_risk_data(enterprise_id)prompt = PromptTemplate(input_variables=list(data.keys()),template=self.template)chain = LLMChain(llm=llm, prompt=prompt)return chain.run(data)
代码亮点说明:
- 股权穿透分析采用递归算法实现多层控制链发现
- 舆情传播模型引入图注意力网络(GAT)捕捉风险传导路径
- 可视化模块支持风险等级颜色编码与动态交互
- 报告生成器整合图数据库查询与大语言模型
建议将代码模块与Neo4j数据库对接,具体数据接口需根据实际业务数据结构调整。完整实现需配置Python 3.8+环境并安装networkx、pyvis、dgl等依赖库。
通过上述方案,金融机构可构建智能化的企业关系图谱风控平台,实现从数据整合到风险决策的全链路自动化,有效提升风控效率与准确性。
(注:实际开发中需根据数据规模选择Neo4j集群部署方案,并设计缓存机制优化复杂查询性能。)
相关文章:
基于LangChain与Neo4j构建企业关系图谱的金融风控实施方案,结合工商数据、供应链记录及舆情数据,实现隐性关联识别与动态风险评估
以下是基于LangChain与Neo4j构建企业关系图谱的金融风控实施方案,结合工商数据、供应链记录及舆情数据,实现隐性关联识别与动态风险评估: 一、数据整合与图谱构建 多源数据融合与清洗 • 数据源:整合企业工商数据(股权…...
数据结构第六章(五)-拓扑排序、关键路径
数据结构第六章(五) 图的应用(二)一、有向无环图二、拓扑排序1. AOV网2. 拓扑排序3. 逆拓扑排序 三、关键路径1.AOE网2.关键路径2.1 介绍2.2 关键路径的求法 总结 图的应用(二) 一、有向无环图 首先我们得…...
stc32单片机实现串口2M波特率满带宽传输
我需要实现已极高的速度用串口往上位机发送数据, 并且还不能占用mcu资源, 使用的单片机位stc32g8K64 我的方法是串口接收采用中断接收, 发送采用dma自动发送, 预先初始化16个64字节的缓冲区, 每次通过串口发送时, 先找到当前的空闲缓冲区, 然后往缓冲区里填充数据, 在dma传输完…...
uni-app 状态管理深度解析:Vuex 与全局方案实战指南
uni-app 状态管理深度解析:Vuex 与全局方案实战指南 一、Vuex 使用示例 1. 基础 Vuex 配置 1.1 项目结构 src/ ├── store/ │ ├── index.js # 主入口文件 │ └── modules/ │ └── counter.js # 计数器模块 └── main.js …...
STM32之DHT11温湿度传感器---附代码
DHT11简介 DHT11的供电电压为 3-5.5V。 传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。 电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。 DATA 用于微处理器与DHT11之间…...
Fluent 内置双向流固耦合FSI 液舱晃荡仿真计算
本案例利用Fluent 内置双向流固耦合FSI对液舱晃荡仿真展开了计算,提供了一种更为便捷快速的分析方法,对不同杨氏模量的液舱内部构件进行分析,后续可以通过该案例对不同的双向流固耦合模型展开计算分析。 1 SCDM 设置 1.1 导入几何 本案例根…...
嵌入式开发板调试方式完全指南:串口/SSH/Telnet及其他方式对比
文章目录 💻嵌入式开发板调试方式完全指南:串口/SSH/Telnet及其他方式对比一、为什么需要连接嵌入式开发板❓二、串口调试:最古老的调试方式仍在发光🏛️2.1 什么是串口调试? 三、SSH/Telnet:网络时代的调试…...
JavaScript数据结构与算法实战: 探秘Leetcode经典题目
# JavaScript数据结构与算法实战: 探秘Leetcode经典题目 第一章:掌握LeetCode经典题目 什么是LeetCode? 力扣)是一个专门为程序员提供算法题目练习的平台,涵盖了广泛的题目类型,包括数据结构、算法、数据库等多个领域。…...
内网穿透实践:cpolar快速入门教程
最近有个朋友联系我,问我有没有方法将自己做的项目让别人也能访问到,我寻思这不就是外网映射的事情。于是我很愉快的和他说,你去买个云服务器就行,尽管我一再和他说,个人新用户能有免费试用期,但是本着又蠢…...
HAL库(STM32CubeMX)——高级ADC学习、HRTIM(STM32G474RBT6)
系列文章目录 文章目录 系列文章目录前言存在的问题HRTIMcubemx配置前言 对cubemx的ADC的设置进行补充 ADCs_Common_Settings Mode:ADC 模式 Independent mod 独立 ADC 模式,当使用一个 ADC 时是独立模式,使用两个 ADC 时是双模式,在双模式下还有很多细分模式可选 ADC_Se…...
Kafka 详细解读
1. Producer(生产部卷王) 职责:往 Kafka 里疯狂输出数据,KPI 是「日抛式消息海啸」 职场人设: 白天开会画饼,深夜写周报的奋斗逼,口头禅是「这个需求今晚必须上线!」代码里的「福报…...
Python爬虫实战:获取高考网专业数据并分析,为志愿填报做参考
一、引言 高考志愿填报是考生人生的关键节点,合理的志愿填报能为其未来发展奠定良好基础。计算机类专业作为当下热门领域,相关信息对考生填报志愿至关重要。教育在线网站虽提供丰富的计算机类专业数据,但存在反爬机制,增加了数据获取难度。本研究借助 Scrapy 爬虫技术及多…...
Ubuntu下展锐刷机工具spd_dump使用说明
spd_dump使用说明 源码地址:https://github.com/ilyakurdyukov/spreadtrum_flash 编译环境准备: sudo apt update sudo apt install git sudo apt install build-essential sudo apt install libusb-1.0-0-devIf you create /etc/udev/rules.d/80-spd…...
配置 VS Code 使用 ESLint 格式化
1、在设置里面搜索Default Formatter,下拉框里选择eslint 2、并勾选Enables ESlint as a formatter 3、再在settings.json文件中添加配置代码,如下所示: 1) 、打开 VS Code 设置 快捷键:Ctrl ,(Mac: ⌘ ,…...
极刻云搜-专业的软件网址搜索引擎
软件名:极刻云搜 版本:v1.0 软件功能:搜索实用软件和网址 之前有个全网爆火的软件叫搜软 但是它满屏广告而且很久都没更新了 我看也有好多人在求这门类似的软件 我就按照它扒了一个一模一样的 软件丑是丑了点 但是这个功能确实简单粗暴 因为用…...
android Stagefright框架
作为Android音视频开发人员,学习Stagefright框架需要结合理论、源码分析和实践验证。以下是系统化的学习路径: 1. 基础准备 熟悉Android多媒体体系 掌握MediaPlayer、MediaCodec、MediaExtractor等核心API的用法。 理解Android的OpenMAX IL(…...
vscode 打开新页签
目录 vscode 打开新页签 完整settings.json内容: vscode 打开新页签 .vscode目录中 新建settings.json 在 settings.json 文件中,添加或修改以下行: json "workbench.editor.enablePreview": false 这将禁用预览模式࿰…...
【C++编程入门】:从零开始掌握基础语法
C语言是通过对C语言不足的地方进行优化创建的,C在C语言之上,C当然也兼容C语言, 在大部分地方使用C比C更方便,可能使用C需要一两百行代码,而C只需要五六十行。 目录 C关键字 命名空间 缺省参数 缺省参数分类 函数…...
Vue中如何优雅地阻止特定标签的移除并恢复其原始位置
Vue中如何优雅地阻止特定标签的移除并恢复其原始位置 在使用 Element Plus 或 Element UI 的 <el-select> 组件时,有时我们希望根据某些条件阻止用户移除特定的标签,并且在阻止移除后将该标签重新添加到其原始位置。这在处理与子项目关联的成员时特别有用。本文将详细…...
基于Arduino的ESP8266连接OneNET云平台(MQTT协议 物模型)(二)连接云平台
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、前期准备1.1 硬件配置1.2 软件环境配置 二、接线三、核心代码3.1 总代码 三、最终效果总结 前言 本系列将以0基础新手视角,完整演示ArduinoESP…...
空间注意力和通道注意力的区别
空间注意力和通道注意力是深度学习中两种常见的注意力机制。 1. 关注维度不同 通道注意力(Channel Attention) 对特征图的每个通道分配不同的权重,强调“哪些通道更重要”。例如,在RGB图像中,可能红色…...
git 版本提交规范
Git 提交规范(Git Commit Message Convention)是为了让项目的提交历史更加清晰、可读、便于追踪和自动化工具解析。常见的规范之一是 Conventional Commits,下面是一个推荐的格式规范: 🌟 提交信息格式(Con…...
Linux的基础的操作指令
一.目录文件:在Linux中的以d开头的文件,就叫做目录文件(Directory): 二.普通的文件:在Linux中的以-r开头的文件,就叫做普通的文件,他们通常以.txt .cpp .c为后缀: 三.pwd:查看当前目录的绝对路径:查看当前所在位置的目录的绝对路径…...
级联vs端到端、全双工、轮次检测、方言语种、商业模式…语音 AI 开发者都在关心什么?丨Voice Agent 学习笔记
编者按: A16Z在《AI Voice Agents: 2025 Update》中提到: 语音是 AI 应用公司最强大的突破之一。 它是人类沟通中最频繁(也是信息密度最高的)形式,AI 也让其首次变得“可编程”。 在13期Z沙龙,我们聚焦AI…...
使用Cloudflare加速网站的具体操作步骤
要通过Cloudflare加速网站,您需要按照以下步骤进行设置和配置。这些步骤包括域名设置、接入Cloudflare、配置缓存和其他设置,以及测试网站性能。 1. 注册Cloudflare账户 访问Cloudflare官网:前往 Cloudflare官网。创建账户:点击…...
编译原理实验(四)———— LR(1)分析法
一、实验目的 掌握LR(1)分析法的基本原理与实现流程。通过构造LR(1)分析表,验证符号串是否符合给定文法规则。理解LR(1)分析中向前搜索符(Lookahead Symbol)的作用,解决移进-归约冲突。 二、实验题目 1.对下列文法,用…...
【Redis】Jedis与Jedis连接池
目录 1. Jedis 单实例连接 2. Jedis 连接池(JedisPool) 3. JedisPool 与 Jedis 的区别 4. JedisPool 线程安全 6. 使用 JedisPool 的注意事项 1. Jedis 单实例连接 在最简单的用法中,Jedis 提供了直接与 Redis 服务器连接的方式。这适合…...
MongoDB数据库的安装到入门使用详细讲解
本篇文章主要讲解MongoDB的安装使用教程及基础的数据库管理和操作能力的讲解,通过本篇文章您可以快速的掌握对MongDB数据库的基本认识及,基础开发能力。 一、MongoDB介绍 MongoDB是一款免费开源的非关系型数据库,该数据库适应于复杂关系的存储和管理,非常适合数据结构复杂…...
Argo CD
文章目录 一、什么是 Argo CD二、为什么选择 Argo CD三、Argo CD 架构1、API服务器2、存储库服务器3、应用程序控制器 四、Argo CD 的使用1、要求2、安装 Argo CD2.1、创建 argocd 命名空间2.2、部署 Argo CD2.3、验证部署是否成功 3、下载 Argo CD CLI4、发布 Argo CD 服务器5…...
ElementUI中checkbox v-model绑定值为布尔、字符串或数字类型
这篇博客介绍了在Vue.js中使用El-Checkbox组件时,如何设置和处理v-model的布尔值和类型转换。通过示例代码展示了如何设置true-label和false-label属性来改变选中状态的值,适用于需要特定类型(如字符串或整数)的场景。v-model不能…...
Wasm Client SDK线上优化
前言 随着 WebAssembly(Wasm)在前端开发中的普及,越来越多的开源项目开始在浏览器端提供高性能的逻辑处理方案。OpenIM Wasm SDK 便是其中的代表:通过将 Go 语言编写的 OpenIMSDK 核心编译为 .wasm 文件,在前端即可完成…...
Spring(第一章)
一,Spring介绍 什么是Spring 1. 轻量级:Spring 是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API 2. 依赖注入(DI --- dependency injection、IOC) 3. 面向切面编程(AOP --- aspect oriented programming) 4. 容器: Spring 是…...
蓝桥杯 18.分考场
分考场 原题目链接 题目描述 有 n 个人参加某项特殊考试。 为了公平,要求任何两个认识的人不能分在同一个考场。 你的任务是求出最少需要分几个考场才能满足这个条件。 输入描述 第一行:一个整数 n,表示参加考试的人数(1 ≤…...
大文件分片上传进阶版(新增md5校验、上传进度展示、并行控制,智能分片、加密上传、断点续传、自动重试),实现四位一体的网络感知型大文件传输系统
上篇文章我们总结了大文件分片上传的主要核心,但是我对md5校验和上传进度展示这块也比较感兴趣,所以在deepseek的帮助下,扩展了一下我们的代码,如果有任何问题和想法,非常欢迎大家在评论区与我交流,我需要学…...
【项目管理】成本类计算 笔记
项目管理-相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 (一)知识总览 项目管理知识域 知识点: (项目管理概论、立项管理、十大知识域、配置与变更管理、绩效域) 对应&…...
Redis 事务
事务介绍 Redis 事务和 MySQL 事务在概念上类似的 把一些列的操作绑定成一组,让这一组能够批量执行 MySQL 事务 原子性:把多个操作打包成一个整体 一致性:事务执行前后数据合理 持久性:事务做出的操作都会修改硬盘 隔离性&#…...
JavaScript day5
立即执行函数 <script>(function(){ console.log//函数不需调用,立马执行 })() </script> //另外写法 <script> (function(){}()) </script> 常见的内置对象 Math console.dir()——打印对象的 使用Math中的属性——console.log(Math.…...
辛格迪客户案例 | 浙江高跖医药委托生产质量管理协同(OWL MAH)项目
一、案例概述 浙江高跖医药科技股份有限公司是一家集“研、产、销”为一体的专业化药品持证企业。高跖医药自成立之初就建立并运行着一套相对完善的质量管理体系,涵盖了药品的研发、生产监管及销售。高跖医药于2022年选择实施了辛格迪的“委托生产质量管理协同解决…...
科学养生指南:解锁健康生活新方式
在快节奏的现代生活中,健康养生已成为人们关注的焦点。科学合理的养生方式,能帮助我们增强体质、预防疾病,享受更优质的生活。 饮食是健康养生的基石。遵循 “均衡饮食” 原则,每日饮食需包含谷类、蔬菜水果、优质蛋白质和健康…...
FreeRTos学习记录--2.内存管理
后续的章节涉及这些内核对象:task、queue、semaphores和event group等。为了让FreeRTOS更容易使用,这些内核对象一般都是动态分配:用到时分配,不使用时释放。使用内存的动态管理功能,简化了程序设计:不再需…...
C++ 操作符重载Operator
C可以重载大多数操作符,如算术运算符号,-号。 位操作符<<,>> 下标符号[]等都可以重载。 重载的意思,是让这些符号,按你定义的行为来执行代码,但是这种自定义,是有限制的,必须有一…...
SBTI科学碳目标认证有什么要求?SBTI认证的好处?
SBTi(科学碳目标倡议)认证要求与好处 SBTi(Science Based Targets initiative,科学碳目标倡议)是由全球环境信息研究中心(CDP)、联合国全球契约(UNGC)、世界资源研究所&…...
RS232转Profibus DP网关:技术革新!
RS232转Profibus DP网关:技术革新! 在工业自动化领域,通讯协议的多样性为系统设计提供了灵活性,但同时也带来了不同设备间通信的挑战。其中,RS232和Profibus DP是两种广泛应用的通讯协议。RS232,作为一种串…...
XAML基本语法与例子
XAML (eXtensible Application Markup Language) 是一种基于 XML 的声明性语言,主要用于 WPF、UWP、Xamarin.Forms 和 MAUI 等框架中构建用户界面。 基本语法结构 1. 根元素和命名空间声明 <Page x:Class"MyNamespace.MyPage"xmlns"http://sch…...
map和set封装
创作中心-CSDNhttps://mpbeta.csdn.net/mp_blog/creation/editor/147238663 目录 创作中心-CSDNhttps://mpbeta.csdn.net/mp_blog/creation/editor/147238663 一、封装原理 二、改造红黑树 三、实现迭代器 四、测试 五、小tip 一、封装原理 上一篇文章我们完成了红黑…...
Java第六节:创建线程的其它三种方式(附带源代码)
作者往期文章 Java第五节:继承thread类创建线程-CSDN博客 一、实现Runnable接口 创建一个Thread02类实现Runnable接口 二、使用匿名内部类 在Main函数中匿名内部类创建线程 三、使用Lambda表达式 在Main函数中利用Lambda表达式创建一个线程 四、源代码 此项目源代…...
041-代码味道-大泥团模块
代码味道-大泥团模块 代码味道-Blob Module深度解析与C重构实践 一、Blob Module定义与特征 Blob Module(大泥团模块)是代码坏味道中的一种典型表现,指某个类或模块承担了过多不相关的职责,导致代码结构臃肿、可维护性差。其核心…...
强化学习系统学习路径与实践方法
一、学习路径规划 1. 基础巩固阶段(1-2个月) 必读教材: 《Reinforcement Learning: An Introduction》(Sutton & Barto) 第1-6章重点掌握:马尔可夫决策过程(MDP)、贝尔曼…...
CSS字体
CSS字体 CSS 中的字体样式设置是网页设计的重要部分,以下是一些关键知识点和常见用法: 1.font-family : 用于设置元素的字体系列。可以指定一个或多个字体名称作为备选项,以确保如果某个字体不可用,可以使用下一个备选…...
JDBC:数据库访问的原始接口
目录 一、JDBC 基础入门:数据库访问的原始接口 JDBC 是什么?它在 Java 中扮演什么角色? JDBC 工作原理图解(驱动 -> 连接 -> 执行 -> 关闭) 常见 JDBC 驱动类型及差异 第一个 JDBC 示例程序:连…...