2002.6 Partitioning the UMLS semantic network.划分 UMLS 语义网络

news2024/12/27 1:09:21

Partitioning the UMLS semantic network | IEEE Journals & Magazine | IEEE Xplore

问题

统一医学语言系统(UMLS)语义网络中的语义类型(ST)在知识表示和应用中存在不足,例如 ST 的组织方式缺乏直观性和可解释性,其结构影响基于相似性的度量效果,导致在医学信息检索、自然语言处理等任务中难以准确应用,限制了对医学知识的有效利用和挖掘。

挑战

  1. 网络结构复杂性:UMLS 语义网络规模庞大且复杂,包含众多的语义类型和关系,难以直接进行有效的分析和处理。
  2. 分区合理性确定:如何确定合理的分区方式,使划分后的区域既能反映内在结构特点,又能在实际应用中发挥作用,如提高相似性度量的准确性等,是一个挑战。
  3. 评估的全面性:缺乏全面有效的评估指标和方法来衡量不同分区方案的优劣,难以确定最优的分区策略。

创新点

  1. 分区方法创新:提出了一种基于拓扑数据分析(TDA)的分区方法,将拓扑数据分析工具应用于 UMLS 语义网络,利用其独特的数据分析能力挖掘网络结构信息,这是一种新的思路和尝试。
  2. 评估指标改进:引入了平均轮廓系数(ASWC)作为评估分区质量的指标,相较于传统指标,该指标能更全面地考虑分区内和分区间的关系,更准确地衡量分区的合理性。

贡献

  1. 理论贡献:为 UMLS 语义网络的研究提供了新的理论方法和分析视角,丰富了该领域在语义类型组织和结构理解方面的理论体系。
  2. 实践贡献:通过改进的分区方法和评估指标,提高了 UMLS 语义网络在实际应用中的性能,如提升了语义类型相似性度量的准确性,有助于改善医学信息检索、自然语言处理等相关任务的效果。

提出的方法

  1. 数据预处理:首先对 UMLS 语义网络数据进行清理和转换,提取出语义类型(ST)及其关系,构建用于分析的网络结构。
  2. 拓扑数据分析(TDA)应用
    • 利用拓扑数据分析工具计算网络的持久同源性,获取拓扑特征信息,如环、空洞等的存在和分布情况。
    • 根据拓扑特征对语义类型进行初步分组,形成不同的候选分区方案。
  3. 分区优化与评估
    • 基于平均轮廓系数(ASWC)对候选分区方案进行评估,筛选出较优的分区方案。
    • 对较优分区方案进行进一步调整和优化,以获得最终的分区结果。

指标

  1. 平均轮廓系数(ASWC)
    • 计算方式:综合考虑了分区内样本的紧密程度和分区间样本的分离程度,通过计算每个样本与同分区内其他样本的平均距离以及与最近邻分区内样本的平均距离来确定。
    • 作用:用于评估分区的质量,ASWC 值越高,表示分区内样本越紧密,分区间样本越分离,分区效果越好。
  2. 语义类型相似性度量指标
    • 计算方式:根据分区结果,结合网络结构信息计算不同语义类型之间的相似性。
    • 作用:衡量分区对语义类型相似性度量的影响,评估分区是否有助于提高相似性计算的准确性,从而在医学信息检索、自然语言处理等任务中发挥更好的作用。

模型结构

论文中未提及明确的模型结构,主要是基于拓扑数据分析(TDA)的一系列数据处理和分析步骤来实现对 UMLS 语义网络的分区,包括数据预处理、拓扑特征提取、分区生成与优化等过程,这些过程相互关联,共同构成了对语义网络进行处理的整体逻辑架构。

结论

  1. 通过提出的基于拓扑数据分析(TDA)的分区方法,成功对 UMLS 语义网络进行了分区,提高了语义类型的组织合理性和可解释性。
  2. 引入的平均轮廓系数(ASWC)指标有效地评估了分区质量,并且通过实验验证了基于该指标优化后的分区方案在语义类型相似性度量方面具有更好的性能,优于传统的分区方法和相似性度量方式。
  3. 研究成果为 UMLS 语义网络在医学信息处理领域的进一步应用提供了更坚实的基础,有助于提升相关任务的效率和准确性。

剩余挑战和未来工作

  1. 剩余挑战
    • 虽然分区方法在一定程度上提高了性能,但对于大规模、动态变化的医学知识体系,如何更及时有效地更新分区以适应新的知识和关系的加入仍是一个挑战。
    • 拓扑数据分析(TDA)方法在处理复杂网络时仍存在计算效率方面的问题,如何进一步优化算法以提高处理速度是需要解决的问题。
  2. 未来工作
    • 探索将分区方法应用于其他类似的语义网络或知识图谱,验证其通用性和有效性。
    • 研究如何结合更多的语义信息和上下文信息,进一步优化分区结果,提高语义类型相似性度量的准确性。
    • 改进拓扑数据分析(TDA)算法,提高其计算效率,使其能够处理更大规模的语义网络数据。

数据集

使用了 UMLS(统一医学语言系统)数据集,该数据集是医学领域广泛应用的标准术语资源,包含了丰富的医学概念、术语、语义类型及其关系等信息。通过对 UMLS 数据集中语义类型(ST)及其关系的提取和处理,构建了用于研究和分析的语义网络结构,为后续的分区方法研究、评估指标计算等提供了数据基础。

抽象的:

统一医学语言系统 (UMLS) 集成了许多成熟的生物医学术语。UMLS 语义网络 (SN) 可以通过其抽象的概念视图帮助用户了解 UMLS 元词库 (META) 的大量知识内容。但是,SN 本身又大又复杂,可能仍然难以理解。我们的技术将 SN 划分为更小的有意义的单元,适合在有限尺寸的计算机屏幕上显示。划分的基础是 SN 内关系的分布。应用三条规则将原始分区转换为第二个更具凝聚力的分区

第一部分

介绍

统一医学语言系统 (UMLS) [1] – [4]将许多成熟的医学信息学术语组合成一个统一的知识表示系统。UMLS 可用于克服由不同术语之间的差异引起的问题[5] , [6]。然而,UMLS 的庞大规模和复杂性(元词库 (META) [7]中的 730 000 个概念)可能会给潜在用户带来严重的理解问题[8]。

UMLS 语义网络 (SN) 有助于引导用户[9]了解 META 的海量知识内容。SN 由一组 134 种语义类型组成,这些语义类型定义了 META [10] – [12]中概念集的高级抽象。META 中的每个概念都被分配给 SN 中的一个或多个语义类型。总体而言,语义类型按 IS-A 关系的层次结构排列。此外,还有 54 种其他类型的(语义)关系连接语义类型。

然而,META 的 SN 抽象视图仍然太大,难以理解。用户熟悉大型知识库的一种方便方法是研究图表。为了使这种图表易于理解,它应该适合计算机屏幕,因此包含有限数量的节点及其互连。图 1仅显示了 SN 的四分之一,已经很难理解,它既没有显示语义类型的传入关系,也没有显示继承关系。

在本文中,我们专注于通过更简单的视图提供对 SN 的可理解访问,这些视图可轻松显示在单个屏幕上。鉴于 SN 的面向对象数据库表示的完善,这种需求更加迫切,我们创建了 1296 个类作为 SN 的扩展[13]。具体来说,我们提出了一种基于关系配置对 SN 进行分区的技术。我们的技术的结果是将 SN 划分为语义类型集,称为语义类型组考虑到一些增强功能,我们修改了方法,将 SN 划分为有凝聚力的语义类型集合

我们注意到,存在根据各种标准(如最大-最小[14]、最小-最大[15]等)对树结构进行划分的有效算法。然而,这些定量标准并不符合我们的目的,即获取语义相关语义类型的内聚单元,每个单元都适合一个主题领域。虽然我们在划分中应用了一些结构性措施,但它们与语义相关,并导致划分具有所需的内聚性(如[16]所示)。由于需要语义,类似缩放的划分方法也不成功。

[16]中进行了一项研究,通过将其与专家根据语义考虑对 SN 进行的划分进行比较,衡量了这种划分的意义。在[16]中,内聚划分的集合还用于定义 SN 的各种部分视图,从而为 SN 提供了强大的查看机制。

第二节提出了一种基于语义类型关系结构划分 SN 的方法。第三节定义了三条规则来增强结构划分,从而实现有凝聚力的划分。第四节是结论。

第二部分

结构分区

在 SN 中,IS-A 层次结构支持语义类型之间的语义关系继承。当两个语义类型通过 IS-A 链接时,子语义类型将继承为父语义类型定义的所有关系。例如,语义类型Activity IS-A Event,因此继承了Eventissue _ in关系。

让我们注意一下本文中使用的一些印刷惯例:语义类型将以粗体字体书写。语义关系的名称将以斜体小写字母书写。

UMLS 提供了两个影响关系继承的附加建模功能。第一个功能允许将新引入的关系指定为“已定义但未继承”(“DNI”),这意味着引入该关系的语义类型的任何子代都不会继承该关系。第二个功能称为“阻止”,它使继承关系的定义无效。

SN 的 IS-A 层次结构有两个根,即实体事件。我们将在 SN 中以事件为根的部分(图 1)上演示我们的技术,该部分包含 35 种语义类型、34 种 IS-A 关系和 134 种(语义)关系。(请注意,在图 1中,矩形表示语义类型,IS-A 关系用粗箭头表示,其他关系则以带标记的细箭头表示。出现在图范围之外的语义类型表示为内部标有“?”的圆圈。此外,一些关系的名称以数字形式写出,并在图例中列出。)

为了使语义类型分组能够有效地理解,每个组都应该有一个统一的主题。也就是说,每个组都应该是由相似的语义类型组成的逻辑单元。理解这种统一的集合比理解非统一的集合更容易。

我们的分区技术基于 SN 语义类型之间关系的分布。从现在开始,每当我们使用“关系”时,我们指的是语义关系而不是 IS-A。关系在给定的语义类型中引入,并由其所有后代继承(除非继承被 DNI 指定或阻止打断)。例如,现象或过程的所有后代都会继承在该点引入的结果_。在图 1中,当语义类型从其父级继承关系但目标语义类型被细化时,我们会明确显示继承的关系。例如,器官或组织功能继承了在其父级生理功能中定义的关系发生_。但是,它有一个新的目标,即有机体功能

我们关注关系是因为它们在整体定义上具有重要意义。事实上,我们将语义类型的“结构”定义为其定义的关系集,无论它们是直接引入的还是继承的。如果两种语义类型都具有为其定义的完全相同的关系集,则它们“结构相同”。它们关系结构的相同性质表明它们在意义上非常相似。因此,有理由沿着相似性的维度将它们分组在一起以形成统一的逻辑单元:所有表现出完全相同关系集的语义类型都被分组在一起。有关使用结构相似性对医学实体词典 (MED) 术语的组概念进行分组以生成术语模式的示例,请参阅[17]和[18] [19] 。有关划分词汇表的另一种结构技术,请参阅[20]。

语义类型组是一个抽象的概念实体,包含具有完全相同关系集的所有语义类型的集合。

如果某个语义类型的父类都不属于某个语义类型组,那么该语义类型就是该语义类型组的根。

显然,引入新关系的语义类型将成为其语义类型组的根。大多数(但不是全部)语义类型组都有唯一的根。如果一个语义类型组有一个唯一的根,那么该组中的所有其他语义类型都是其后代,因此是根语义类型的更专业的语义类型。

总而言之,SN 的语义类型组形成一个分区:每个语义类型都必须属于一个语义类型组,而且事实上,该语义类型组是唯一的。

语义类型Event是 SN 层次结构这一部分的根,它引入了关系issue _ in,因此启动了一个新的语义类型组。Activity继承了Eventissue _ in关系,并且没有引入任何新的自身关系。 因此,它属于Event的语义类型组。 相反,另一个子级Phenomenon 或 Process引入了新的关系result _ of,并启动了另一个语义类型组。(参见图 2,其中具有多个成员的语义类型组被虚线气泡包围。)

图 2.由语义类型组组成的结构分区

总体而言,SN 的事件层次结构被划分为 21 个语义类型组,如图 2所示。整个 SN 共有 71 个语义类型组。其中,47 个组只包含一种语义类型。(我们将此类组称为“单例”组。)11 个组有两种语义类型;5 个组有三种语义类型;3 个组有四种语义类型;2 个组有五种语义类型;1 个组有六种语义类型;1 个组有八种语义类型。最后,还有一组有 14 种语义类型。

【可以只保留最常用的20种,其他的合并或者丢弃】

请注意,语义类型s引入 DNI 关系的组是组的根,因为其父语义类型的结构不包含此关系。另一方面,此关系不包含在任何子语义类型的结构中s因为 DNI 指定导致缺乏继承。我们将这种语义类型称为DNI 根

第三部分

内聚分区

为了有效地划分 SN,语义类型组不仅要在结构上统一,而且还要具有凝聚力。要使语义类型组具有凝聚力,它应该有一个唯一的根,即组中所有其他语义类型都是其后代的一种语义类型。凝聚力是由于组中的每个语义类型都是唯一根的特殊化。因此,通过以根命名语义类型组,该名称正确地反映了组的总体语义。如图2所示,大多数语义类型组都有唯一的根。只有少数没有,这些被称为非凝聚力。这种现象表明,结构均匀的组在大多数情况下往往具有凝聚力,但并非总是如此。由于凝聚力对于理解也很重要,我们将在本节中提供将结构划分转换为凝聚力划分的规则。对于这种转换,我们需要做出一些权衡,这意味着一些有凝聚力的群体将失去其结构一致性。然而,它们仍然具有近似的结构一致性。

结构划分的另一个问题是 Singleton 数量过多,这对理解没有帮助。因此,我们将提供一条规则,将 Singleton 添加到其他语义类型组,以尽量减少分区中的 Singleton 数量。同样,这意味着创建结构不统一的组,因为这些 Singleton 是由于结构差异而创建的。然而,我们将提供的规则将确保新组具有近似的结构一致性。

将我们的规则应用于结构分区后,将产生基于语义类型集合的内聚分区。每个语义类型集合都是一个抽象的概念实体,代表 SN 中的一组语义类型。每个集合都有一个唯一的根,因此具有内聚性。当语义类型集合也是语义类型组时,它在结构上将是统一的。否则,它将具有近似的结构一致性。

规则 1:每个具有非叶唯一根的语义类型组成为语义类型集合。

第二条规则处理“叶”语义类型,即没有子级的语义类型。

规则2:如果叶子语义类型在结构分区中处于Singleton状态,并且其父语义类型组没有DNI根,则将其添加到包含其父级的语义类型集合中。

例如,请注意,包含叶子Social BehaviorIndividual Behavior 的Singleton (图 2 )与包含Behavior 的Singleton 相结合,生成一个包含三个成员的新语义类型集合(图 3)。应用规则 2 有助于将许多 Singleton 语义类型组合并为更大的语义类型集合。我们仍然允许在分区中使用非叶子 Singleton,因为它可以充当分支点。

让我们将语义类型集合的“结构”定义为其根的关系集。添加到语义类型集合的叶子的结构等于语义类型集合的结构与叶子引入的任何关系的并集。(如果叶子的父语义类型集合的关系均未声明为 DNI,则情况确实如此。)需要注意的是,没有其他语义类型集合可以具有该叶子的结构。此外,添加到语义类型集合的多个叶子将具有语义类型集合根的所有共同关系。因此,尽管语义类型集合中的语义类型并不总是具有统一的结构,但该结构大致是统一且唯一的。

Behavior的子类Social BehaviorIndividual Behavior最初都属于 Singleton。一方面,它们继承了Behavior的所有关系。另一方面,它们在结构上与父类不同。Social Behavior引入了一种新的关系,即概念上的part _ of directing at itself。Individual Behavior引入了process _ of directing at Social Behavior和另外两种关系。但是,它们的结构与Behavior的结构比与其他语义类型集合的结构更相似。

现在,我们将注意力转向具有多个根的语义类型组的情况。在我们的讨论中,我们将集中讨论图 2中出现的情况。一个例子包含同级语义类型器官或组织功能有机体功能。两者都继承了其父生理功能的所有关系,并引入了新的关系

另一个示例围绕疾病的实验模型疾病或综合症,它们各自定义了另一个相关的新关系。 两种语义类型都将这种关系指定为“DNI”,这意味着它不会被它们各自的任何子级继承。 由于疾病或综合症的子级没有引入任何的关系,因此以病理功能为根的子树被划分为两个语义类型组。 一个包括疾病的实验模型疾病或综合症。 另一个包括病理功能细胞或分子功能障碍肿瘤过程精神或行为功能障碍(再次参见图 2)。 对于这种情况,我们需要引入额外的规则。

规则 3:让语义类型一个1,一个2,… ,一个n (n≥2 )​​是同一语义类型组的词根格结构分区。添加所有语义类型的格到 IS-A 层次结构中它们最低公共祖先的语义类型集合,假设该语义类型集合的根不是 DNI 根。

表一语义类型集合列表

例如,器官或组织功能有机体功能根据规则 3加入以生理功能为根的语义类型集合(图 3 )。然后,根据规则 2,语义类型的心理过程也加入相同的语义类型集合。因此,生理功能的所有后代现在都属于其语义类型集合。

图 3显示了应用内聚划分技术识别最终语义类型集合后的 SN 事件层次结构。

Fig. 3.Cohesive partition consisting of semantic-type collections.

语义类型集合“自然过程或现象”“生物功能”仍然是单例。“生物功能”是通往“生理功能”集合和“病理功能”集合的分支点。图中有十个语义类型集合。在整个 SN 中,有 28 个语义类型集合。在表一中,我们按字母顺序列出了 SN 的 28 个语义类型集合,以及每个集合中的语义类型数量和列表。语义类型集合的平均大小为 4.786。在表二中,我们列出了 28 个语义类型集合的大小分布。

表1

表2

基于这种划分,我们在[21]中开发了一个元模式,它是 SN 的紧凑抽象级别。元模式的每个节点对应于一个内聚划分的集合。McCray 等人在[22]中提出了一种将 SN 划分为 14 个组的替代方法。 [22]中的每一组代表一个主题领域。它们的划分旨在符合六个标准:有效性、简约性、完整性、排他性、自然性和实用性。然而,其中一些组是不相连的。正如作者自己所指出的,这与有效性的性质相矛盾。由于这个事实,[22]的划分不适合提取自然的元模式。这与我们提出的划分形成对比。元模式与[16]中的部分视图一起,帮助用户在语义类型集合中获得方向,并理解它们之间的交互。

第四部分

结论

我们提出了一种专门为 UMLS 的 SN 设计的分区方法,该方法依赖于语义类型之间的结构相似性,并结合了消除 Singleton 叶子的步骤和为每个分区查找唯一根的步骤。 最终的分区包含 28 个语义类型集合,其大小可轻松显示在一个屏幕上。 在[16]【 "Evaluation and application of a semantic network partition"中,我们提出了一项评估研究,将我们的内聚分区与人类专家在对 UMLS SN(同一部分)进行分区时获得的结果进行了比较。

致谢

作者感谢 J. Cimino 博士对本文早期草稿的评论。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

帽子矩阵--记录

帽子矩阵(Hat Matrix)并不是由某一位具体的科学家单独发明的,而是逐渐在统计学和线性代数的发展过程中形成的。帽子矩阵的概念最早出现在20世纪初的统计学文献中,尤其是在回归分析的研究中得到了广泛应用。然而,具体是…

vue面试题8|[2024-11-14]

问题1:什么是渐进式框架? vue.js router vuex element ...插件 vue.js 渐0 router 渐1 vuex 渐2 vue.js只是一个核心库,比如我再添加一个router或者vuex,不断让项目壮大,就是渐进式框…

web与网络编程

使用HTTP协议访问Web 通过发送请求获取服务器资源的Web浏览器等,被成为客户端(client)。 Web使用一种名为HTTP(超文本传输协议)的协议作为规范,完成从客户端到服务器端等一系列运作流程。 可以说,Web时建立在HTTP协议上通信的。 网络基础T…

docker 部署freeswitch(非编译方式)

一:安装部署 1.拉取镜像 参考:https://hub.docker.com/r/safarov/freeswitch docker pull safarov/freeswitch 2.启动镜像 docker run --nethost --name freeswitch \-e SOUND_RATES8000:16000 \-e SOUND_TYPESmusic:en-us-callie \-v /home/xx/f…

opencv kdtree pcl kdtree 效率对比

由于项目中以一个环节需要使用kdtree ,对性能要求比较严苛&#xff0c;所以看看那个kdtree效率高一些。对比了opencv和pcl。 #include <array> #include <deque> #include <fstream> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp…

ab (Apache Bench)的使用

Apache Bench&#xff08;ab&#xff09;是一个用于基准测试HTTP Web服务器的命令行工具&#xff0c;广泛用于评估和优化Web服务器的性能。以下是关于Apache Bench的详细介绍&#xff0c;包括其功能、使用方法、常用参数和输出结果解析。 功能 性能测试&#xff1a;通过模拟多…

【数据分享】全国农产品成本收益资料汇编(1953-2024)

数据介绍 一、《全国农产品成本收益资料汇编 2024》收录了我国2023年主要农产品生产成本和收益资料及 2018年以来六年的成本收益简明数据。其中全国性数据均未包括香港、澳门特别行政区和台湾省数据。 二、本汇编共分七个部分,即:第一部分,综合;第二部分,各地区粮食、油料;第…

基于OpenCV的图片人脸检测研究

目录 摘要 第一章 引言 第二章 基于 OpenCV 的图片人脸检测 2.1 实现原理 2.2 代码实现与分析 2.3 代码详细分析 第三章 实验结果与分析 第四章 OpenCV 人脸检测的优势与局限性 4.1 优势 4.2 局限性 第五章 结论 第六章 未来展望 参考文献 摘要 人脸检测是计算机视…

BI(Bilinear interpolation)双线性插值实现上采样

在深度学习中 上采样是将图像放大 如上图所示 要求放大后的图像坐标(2,1)处的像素值 要找到目标图像中对应的原图像素 需要与扩大前和扩大后的边长比相乘得到一个坐标(1.5,0.75) 对应原图中没有一个像素点是重合的 蓝色框框的像素值与红色框框的四个点的像素值有关 相关的计算方…

多模态大模型简介

多模态大模型是机器学习领域的一个新兴趋势&#xff0c;它结合了文本、图像、音频等多种数据模态&#xff0c;以实现更全面和深入的信息理解和处理。这种模型能够处理跨模态任务&#xff0c;如图像标注、视觉问答、文本到图像的生成等&#xff0c;是人工智能领域的重要进展。 技…

Python 正则表达式的一些介绍和使用方法说明(数字、字母和数字、电子邮件地址、网址、电话号码(简单)、IPv4 )

## 正则表达式的概念和用途 正则表达式&#xff08;Regular Expression&#xff0c;简称Regex&#xff09;是对字符串操作的一种逻辑公式&#xff0c;由一些事先定义好的特定字符以及这些特定字符的组合所构成。这些特定字符及其组合被用来描述在搜索文本时要匹配的一个或多个…

java排序算法汇总

一、排序算法我介绍 1.1、介绍 排序也称排序算法(Sort Algorithm)&#xff0c;排序是将一组数据&#xff0c;依指定的顺序进行排列的过程。 1.2、排序的分类&#xff1a; 1) 内部排序&#xff1a;指将需要处理的所有数据都加载到内部存储器中进行排序。 2) 外部排序法&…

Ubuntu22.04.2 k8s部署

k8s介绍 简单介绍 通俗易懂的解释&#xff1a; Kubernetes&#xff08;也被称为 K8s&#xff09;就像是一个大管家&#xff0c;帮你管理你的云计算服务。想象一下&#xff0c;你有很多个小程序&#xff08;我们称之为“容器”&#xff09;&#xff0c;每个都在做不同的事情&…

FastGPT部署通义千问Qwen和智谱glm模型|OneAPI配置免费的第三方API

继这篇博客之后 从零开始FastGPT本地部署|Windows 有同学问&#xff0c;不想在多个平台申请API-Key&#xff0c;不好管理且要付费&#xff0c;有木有白嫖方案呀&#xff1f; 答&#xff1a;有啊。用硅基流动。 注册方法看这篇 【1024送福利】硅基流动送2000万token啦&#xff0…

每日OJ题_牛客_DP36 abb_C++_Java

目录 牛客_DP36 abb 题目解析 C代码1暴力 C代码2DP Java代码 牛客_DP36 abb abb_牛客题霸_牛客网 描述&#xff1a; leafee 最近爱上了 abb 型语句&#xff0c;比如“叠词词”、“恶心心” leafee 拿到了一个只含有小写字母的字符串&#xff0c;她想知道有多少个 &quo…

Redis五大基本类型——String字符串命令详解(命令用法详解+思维导图详解)

目录 一、String字符串类型介绍 二、常见命令 1、SET 2、GET 3、MGET 4、MSET 使用MGET 和 使用多次GET的区别 5、DEL 6、SETNX SET、SET NX和SET XX执行流程 7、INCR 8、INCRBY 9、DECR 10、DECYBY 11、INCRBYFLOAT 12、APPEND 13、GETRANGE 14、SETRANGE …

Dubbo 3.x源码(25)—Dubbo服务引用源码(8)notify订阅服务通知更新

基于Dubbo 3.1&#xff0c;详细介绍了Dubbo服务的发布与引用的源码。 此前我们学习了接口级的服务引入订阅的refreshInterfaceInvoker方法&#xff0c;当时还有最为关键的notify服务通知更新的部分源码没有学习&#xff0c;本次我们来学习notify通知本地服务更新的源码。 Dubb…

STM32+AI语音识别智能家居系统

基于 STM32 和 AI 语音识别的智能家居系统的详细硬件和软件设计&#xff0c;包括各个模块的详细描述和代码示例。 一、硬件设计 1. 微控制器&#xff08;STM32&#xff09;&#xff1a; 选择 STM32F7 系列或更高性能的芯片&#xff0c;如 STM32F767ZIT6&#xff0c;以满足处理…

飞凌嵌入式RK3576核心板已适配Android 14系统

在今年3月举办的RKDC2024大会上&#xff0c;飞凌嵌入式FET3576-C核心板作为瑞芯微RK3576处理器的行业首秀方案重磅亮相&#xff0c;并于今年6月率先量产发货&#xff0c;为客户持续稳定地供应&#xff0c;得到了众多合作伙伴的认可。 FET3576-C核心板此前已提供了Linux 6.1.57…

elementUI input 禁止内容两端存在空格,或者是自动去除两端空格

需求 项目中有需求&#xff1a;输入框中禁止内容两端存在空格&#xff0c;或者是自动去除两端空格。 解决方法 vue的api文档中有过介绍&#xff0c;使用.trim可以去掉用户输入内容中两端的空格&#xff0c;如下图 代码 <el-input v-model.trim"name" cleara…