【Gensim概念】03/3 NLP玩转 word2vec

news2024/7/6 18:00:26

第三部分 对象函数

八 word2vec对象函数

        该对象本质上包含单词和嵌入之间的映射。训练后,可以直接使用它以各种方式查询这些嵌入。有关示例,请参阅模块级别文档字符串。

类型

KeyedVectors

1) add_lifecycle_event(event_namelog_level=20**event)

        将事件附加到该对象的生命周期事件属性中,还可以选择在log_level记录该事件。

        事件是对象生命周期中的重要时刻,例如“模型创建”、“模型保存”、“模型加载”等。

        Lifecycle_events属性在对象 和操作之间保持不变。它对模型的使用没有影响,但在调试和支持过程中很有用。save()load()

        设置self.lifecycle_events = None以禁用此行为。调用add_lifecycle_event() 不会将事件记录到self.lifecycle_events中。

参数:

  • event_name ( str ) – 事件的名称。可以是任何标签,例如“创建”、“存储”等。

  • 事件字典)–

    要附加到self.lifecycle_events 的键值映射。应该是 JSON 可序列化的,所以保持简单。可以为空。

    此方法会自动将以下键值添加到event,因此您不必指定它们:

    • 日期时间:当前日期和时间

    • gensim:当前的 Gensim 版本

    • python : 当前的Python版本

    • 平台:当前平台

    • 事件:此事件的名称

  • log_level ( int ) – 还以指定的日志级别记录完整的事件字典。设置为 False 则根本不记录。

2)add_null_word()

3)build_vocab(

        corpus_iterable=None

        corpus_file=Noneupdate=False

        progress_per=10000

        keep_raw_vocab=False

        trim_rule=None

        **kwargs)

从一系列句子构建词汇(可以是一次性生成器流)。

参数

  • corpus_iterable ( iterable of list of str ) – 可以只是标记列表的列表,但对于较大的语料库,请考虑直接从磁盘/网络流式传输句子的迭代。有关此类示例,请参阅BrownCorpus,Text8Corpus 或LineSentencemodule 。

  • corpus_file ( str ,可选) – 格式的语料库文件的路径LineSentence。您可以使用此参数而不是句子来提高性能。仅需要传递句子或 corpus_file参数之一(而不是两者)。

  • update ( bool ) – 如果为 true,句子中的新单词将添加到模型的词汇表中。

  • Progress_per ( int ,可选) – 指示在显示/更新进度之前要处理多少个单词。

  • keep_raw_vocab ( bool ,可选) – 如果为 False,则在缩放完成以释放 RAM 后将删除原始词汇。

  • trim_rule (functionoptional) -

    词汇表修剪规则,指定某些单词是否应保留在词汇表中、被修剪掉或使用默认值进行处理(如果字数 < min_count 则丢弃)。可以是 None (将使用 min_count,请查看),或者是接受参数(word、count、min_count)并返回、或 的keep_vocab_item()可调用函数 。该规则(如果给定)仅用于在当前方法调用期间修剪词汇,并且不存储为模型的一部分。gensim.utils.RULE_DISCARDgensim.utils.RULE_KEEPgensim.utils.RULE_DEFAULT

    输入参数有以下几种类型:

    • word (str) - 我们正在检查的单词

    • count (int) - 语料库中单词的频率计数

    • min_count (int) - 最小计数阈值。

  • **kwargs ( object ) – 传播到self.prepare_vocab 的关键字参数。

 4)build_vocab_from_freq(

word_freqkeep_raw_vocab=False

corpus_count=None

trim_rule=None

update=False)

从词频词典中构建词汇表。

参数

  • word_freq ( dict of str int ) ) – 从词汇表中的单词到其频率计数的映射。

  • keep_raw_vocab ( bool ,可选) – 如果为 False,则在缩放完成后删除原始词汇以释放 RAM。

  • corpus_count ( int ,可选) – 即使没有提供语料库,此参数也可以显式设置 corpus_count。

  • 修剪规则函数可选)-

    词汇表修剪规则,指定某些单词是否应保留在词汇表中、被修剪掉或使用默认值进行处理(如果字数 < min_count 则丢弃)。可以是 None (将使用 min_count,请查看),或者是接受参数(word、count、min_count)并返回、或 的keep_vocab_item()可调用函数 。该规则(如果给定)仅用于在当前方法调用期间修剪词汇,并且不存储为模型的一部分。gensim.utils.RULE_DISCARDgensim.utils.RULE_KEEPgensim.utils.RULE_DEFAULT

    输入参数有以下几种类型:

    • word (str) - 我们正在检查的单词

    • count (int) - 语料库中单词的频率计数

    • min_count (int) - 最小计数阈值。

  • update ( bool ,可选) – 如果为 true,则word_freq字典中提供的新单词将被添加到模型的词汇中。

5)create_binary_tree()

创建二叉树( )

使用存储的词汇字数创建二叉霍夫曼树。频繁出现的单词将具有较短的二进制代码。从 内部调用build_vocab()

估计内存(vocab_size =无报告=无

使用当前设置和提供的词汇量估计模型所需的内存。

参数

  • vocab_size ( int ,可选) – 词汇表中唯一标记的数量

  • report ( dict of str int ,可选) – 从模型内存消耗成员的字符串表示形式到其大小(以字节为单位)的字典。

        返回

                从模型内存消耗成员的字符串表示形式到其大小(以字节为单位)的字典。

        返回类型

                (str, int) 的字典

6)get_latest_training_loss()

        获取训练损失的当前值。

        返回

                当前训练损失。

        返回类型

                浮点

7)init_sims(replace=False

        预先计算 L2 标准化向量。已过时。

        如果您需要某个键的单个单位归一化向量,请 get_vector()改为调用: 。word2vec_model.wv.get_vector(key, norm=True)

        要在执行一些非典型带外矢量篡改后刷新规范,请改为调用:meth:`~gensim.models.keyedvectors.KeyedVectors.fill_norms()。

        参数

        Replace ( bool ) – 如果为 True,则忘记原始训练向量并仅保留标准化向量。如果您这样做,您就会丢失信息。

8)init_weights()

将所有投影权重重置为初始(未训练)状态,但保留现有词汇表。

9)classmethodload(*argsrethrow=False**kwargs)

加载以前保存的Word2Vec模型。

也可以看看

save()

保存模型。

参数

fname ( str ) – 保存文件的路径。

退货

已加载模型。

返回类型

Word2Vec

10)make_cum_table(domain=2147483647)

        使用存储的词汇字数创建累积分布表,以便在负采样训练例程中绘制随机单词。

        要绘制单词索引,请选择一个随机整数,直到表中的最大值 (cum_table[-1]),然后找到该整数的排序插入点(就像通过 bisect_left 或 ndarray.searchsorted( )一样)。该插入点是绘制的索引,其按比例等于该槽处的增量。

11)predict_output_word(context_words_listtopn=10)

        获取给定上下文单词的中心单词的概率分布。

        请注意,即使在 SG 模型中,这也会执行 CBOW 式的传播,并且不会像训练中那样对周围的单词进行加权——因此,这只是使用经过训练的模型作为预测器的一种粗略方法。

参数

  • context_words_list ( list of str 和/或 int ) ) – 上下文单词列表,可能是单词本身 (str) 或其在self.wv.vectors (int) 中的索引。

  • topn ( int ,可选) – 返回topn单词及其概率。

        return

                topn长度的(单词,概率)元组列表。

        返回类型

                (str, float) 列表

12)prepare_vocab(

update=False

keep_raw_vocab=False,

 trim_rule=None

min_count=None

sample=None

dry_run=False)

对min_count(丢弃频率较低的单词)和样本(控制频率较高的单词的下采样)应用词汇设置。

使用dry_run=True进行调用只会模拟提供的设置并报告保留词汇的大小、有效语料库长度和估计的内存需求。结果均通过日志记录打印并以字典形式返回。

缩放完成后删除原始词汇以释放 RAM,除非设置了keep_raw_vocab 。

13)prepare_weights(update=False)

        根据最终词汇设置构建表格和模型权重。

14)reset_from(other_model)

        从other_model借用可共享的预构建结构并重置隐藏层权重。

        复制的结构是:

  • 词汇

  • 索引到词映射

  • 累积频率表(用于负采样)

  • 缓存语料库长度

        在同一语料库上并行测试多个模型时非常有用。然而,由于模型共享除向量之外的所有词汇相关结构,因此两个模型都不应该扩展其词汇量(这可能会使另一个模型处于不一致、损坏的状态)。而且,对每个单词“vecattr”的任何更改都会影响这两个模型。

参数

15)other_model ( Word2Vec) – 从中复制内部结构的另一个模型。

16)save(*args**kwargs)

        保存(* args ** kwargs

        保存模型。可以使用 再次加载保存的模型load(),它支持在线训练和获取词汇向量。

        参数

        fname ( str ) – 文件的路径。

17)scan_vocab(

corpus_iterable=None,

 corpus_file=None

progress_per=10000

workers=None

trim_rule=None)

18)score(

sentences

total_sentences=1000000

chunksize=100

queue_factor=2

report_delay=1)

        对一系列句子的对数概率进行评分。这不会以任何方式改变拟合模型(参见train()参考资料)。

        Gensim 目前仅实现了分层 softmax 方案的分数,因此您需要在hs=1和negative=0的情况下运行 word2vec 才能正常工作。

        请注意,您应该指定total_sentences;如果你要求得分超过这个数量的句子,你就会遇到问题,但将值设置得太高是低效的。

        请参阅Matt Taddy 的文章:“通过分布式语言表示反转进行文档分类”和 gensim 演示,了解如何在文档分类中使用此类分数的示例。

参数

  • Sentences ( iterable of list of str ) – Sentences iterable 可以简单地是 token 列表的列表,但对于较大的语料库,请考虑直接从磁盘/网络流式传输句子的 iterable。请参阅BrownCorpus、Text8Corpus 或模块LineSentence中的word2vec此类示例。

  • Total_sentences ( int ,可选) – 句子计数。

  • chunksize ( int ,可选) – 作业的块大小

  • queue_factor ( int ,可选) – 队列大小的乘数(工作人员数量 * queue_factor)。

  • report_delay ( float ,可选) – 报告进度之前等待的秒数。

19 seeded_vector(seed_stringvector_size)

20)

train(corpus_iterable=Nonecorpus_file=Nonetotal_examples=Nonetotal_words=Noneepochs=Nonestart_alpha=Noneend_alpha=Noneword_count=0queue_factor=2report_delay=1.0compute_loss=Falsecallbacks=()**kwargs)

根据句子序列更新模型的神经权重。

注意:

        为了支持从(初始) alpha到min_alpha的线性学习率衰减以及准确的进度百分比记录,必须提供total_examples(句子计数)或total_words(句子中的原始单词计数) 。如果句子与之前提供的语料库相同,则可以简单地使用total_examples=self.corpus_count。build_vocab()

警告

为了避免模型自身进行多次训练的能力出现常见错误,必须提供明确的epochs参数。在常见且推荐的仅调用一次的情况下,您可以设置epochs=self.epochs。train()

参数

  • corpus_iterable ( str 列表的可迭代) –

    corpus_iterable可以是简单的标记列表列表,但对于较大的语料库,请考虑直接从磁盘/网络流式传输句子的迭代,以限制 RAM 使用。请参阅BrownCorpus、Text8Corpus 或模块LineSentence中的word2vec此类示例。另请参阅有关 Python 中的数据流的教程。

  • corpus_file ( str ,可选) – 格式的语料库文件的路径LineSentence。您可以使用此参数而不是句子来提高性能。仅需要传递句子或 corpus_file参数之一(而不是两者)。

  • Total_examples ( int ) – 句子计数。

  • Total_words ( int ) – 句子中原始单词的计数。

  • epochs ( int ) – 语料库的迭代次数(epoch)。

  • start_alpha ( float ,可选) – 初始学习率。如果提供,则替换构造函数中的起始alpha,以调用“train()”。仅当您想要自己管理 alpha 学习率时多次调用train()时才使用(不推荐)。

  • end_alpha ( float ,可选) – 最终学习率。从start_alpha线性下降。如果提供的话,这将替换构造函数中的最终min_alpha,对于这一次对train()的调用。仅当您想要自己管理 alpha 学习率时多次调用train()时才使用(不推荐)。

  • word_count ( int ,可选) – 已训练的单词计数。对于对句子中所有单词进行训练的通常情况,将其设置为 0。

  • queue_factor ( int ,可选) – 队列大小的乘数(工作人员数量 * queue_factor)。

  • report_delay ( float ,可选) – 报告进度之前等待的秒数。

  • compute_loss ( bool ,可选) – 如果为 True,则计算并存储可以使用 检索的损失值 get_latest_training_loss()。

  • callback(可迭代CallbackAny2Vec,可选)- 在训练期间的特定阶段执行的回调序列。

例子

>>> from gensim.models import Word2Vec
>>> sentences = [["cat", "say", "meow"], ["dog", "say", "woof"]]
>>>
>>> model = Word2Vec(min_count=1)
>>> model.build_vocab(sentences)  # prepare the model vocabulary
>>> model.train(sentences, total_examples=model.corpus_count, epochs=model.epochs)  # train word vectors
(1, 30)

21) update_weights()

        复制所有现有权重,并重置新添加词汇的权重。

九、classgensim.models.word2vec.Word2VecTrainables

class  gensim.models.word2vec.Word2Vect

基类:SaveLoad

        现在保留过时的类作为加载兼容性状态捕获。

1) add_lifecycle_event ( event_name , log_level = 20 , **evnt)

        将事件附加到该对象的生命周期事件属性中,还可以选择在log_level记录该事件。

        事件是对象生命周期中的重要时刻,例如“模型创建”、“模型保存”、“模型加载”等。

        Lifecycle_events属性在对象 和操作之间保持不变。它对模型的使用没有影响,但在调试和支持过程中很有用。save()load()

        设置self.lifecycle_events = None以禁用此行为。调用add_lifecycle_event() 不会将事件记录到self.lifecycle_events中。

参数

  • event_name ( str ) – 事件的名称。可以是任何标签,例如“创建”、“存储”等。

  • event字典)–要附加到self.lifecycle_events 的键值映射。应该是 JSON 可序列化的,所以保持简单。可以为空。

    此方法会自动将以下键值添加到event,因此您不必指定它们:

    • 日期时间:当前日期和时间

    • gensim:当前的 Gensim 版本

    • python : 当前的Python版本

    • 平台:当前平台

    • 事件:此事件的名称

  • log_level ( int ) – 还以指定的日志级别记录完整的事件字典。设置为 False 则根本不记录。

类方法加载(fname mmap = None

save()从文件中加载先前保存的对象。

参数

  • fname ( str ) – 包含所需对象的文件的路径。

  • mmap ( str ,可选) – 内存映射选项。如果对象是用单独存储的大型数组保存的,则可以使用mmap='r' 通过 mmap(共享内存)加载这些数组。如果正在加载的文件是压缩的(“.gz”或“.bz2”),则 必须设置“mmap=None”。

也可以看看

save()

将对象保存到文件。

退货

从fname加载的对象。

返回类型

目的

提高

AttributeError – 当调用对象实例而不是类时(这是一个类方法)。

保存(fname_or_handle单独= None sep_limit = 10485760 ignore = freezeset({}) pickle_protocol = 4

将对象保存到文件中。

参数

  • fname_or_handle ( strfile-like ) – 输出文件或已打开的类文件对象的路径。如果对象是文件句柄,则不会执行特殊的数组处理,所有属性将保存到同一个文件中。

  • 单独( strNone列表可选) –

    如果为 None,则自动检测正在存储的对象中的大型 numpy/scipy.sparse 数组,并将它们存储到单独的文件中。这可以防止大对象的内存错误,并且还允许对 大数组进行内存映射,以便在多个进程之间高效加载和共享 RAM 中的大数组。

    如果是 str 列表:将这些属性存储到单独的文件中。在这种情况下,不执行自动尺寸检查。

  • sep_limit ( int ,可选) – 不要单独存储小于此值的数组。以字节为单位。

  • ignore ( fredset of str ,可选) – 根本不应该存储的属性。

  • pickle_protocol ( int ,可选) – pickle 的协议号。

也可以看看

load()

从文件加载对象。

class  gensim.models.word2vec。Word2VecVocab

基地:SaveLoad

现在保留过时的类作为加载兼容性状态捕获。

add_lifecycle_event ( event_name , log_level = 20 , **事件)

将事件附加到该对象的生命周期事件属性中,还可以选择在log_level记录该事件。

事件是对象生命周期中的重要时刻,例如“模型创建”、“模型保存”、“模型加载”等。

Lifecycle_events属性在对象 和操作之间保持不变。它对模型的使用没有影响,但在调试和支持过程中很有用。save()load()

设置self.lifecycle_events = None以禁用此行为。调用add_lifecycle_event() 不会将事件记录到self.lifecycle_events中。

参数

  • event_name ( str ) – 事件的名称。可以是任何标签,例如“创建”、“存储”等。

  • 事件字典)–

    要附加到self.lifecycle_events 的键值映射。应该是 JSON 可序列化的,所以保持简单。可以为空。

    此方法会自动将以下键值添加到event,因此您不必指定它们:

    • 日期时间:当前日期和时间

    • gensim:当前的 Gensim 版本

    • python : 当前的Python版本

    • 平台:当前平台

    • 事件:此事件的名称

  • log_level ( int ) – 还以指定的日志级别记录完整的事件字典。设置为 False 则根本不记录。

类方法加载(fname mmap = None

save()从文件中加载先前保存的对象。

参数

  • fname ( str ) – 包含所需对象的文件的路径。

  • mmap ( str ,可选) – 内存映射选项。如果对象是用单独存储的大型数组保存的,则可以使用mmap='r' 通过 mmap(共享内存)加载这些数组。如果正在加载的文件是压缩的(“.gz”或“.bz2”),则 必须设置“mmap=None”。

也可以看看

save()

将对象保存到文件。

退货

从fname加载的对象。

返回类型

目的

提高

AttributeError – 当调用对象实例而不是类时(这是一个类方法)。

save(fname_or_handle单独= None sep_limit = 10485760 ignore = freezeset({}) pickle_protocol = 4

将对象保存到文件中。

参数

  • fname_or_handle ( strfile-like ) – 输出文件或已打开的类文件对象的路径。如果对象是文件句柄,则不会执行特殊的数组处理,所有属性将保存到同一个文件中。

  • 单独( strNone列表可选) –

    如果为 None,则自动检测正在存储的对象中的大型 numpy/scipy.sparse 数组,并将它们存储到单独的文件中。这可以防止大对象的内存错误,并且还允许对 大数组进行内存映射,以便在多个进程之间高效加载和共享 RAM 中的大数组。

    如果是 str 列表:将这些属性存储到单独的文件中。在这种情况下,不执行自动尺寸检查。

  • sep_limit ( int ,可选) – 不要单独存储小于此值的数组。以字节为单位。

  • ignore ( fredset of str ,可选) – 根本不应该存储的属性。

  • pickle_protocol ( int ,可选) – pickle 的协议号。

也可以看看

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

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

相关文章

Web前端—Flex布局:标准流、浮动、Flex布局、综合案例(短视频首页解决方案)

版本说明 当前版本号[20231024]。 20231024初版 目录 文章目录 版本说明目录Flex布局01-标准流02-浮动基本使用产品区域布局HTML标签CSS样式 清除浮动场景搭建额外标签法单伪元素法双伪元素法overfow法 03-Flex布局Flex组成主轴对齐方式侧轴对齐方式修改主轴方向弹性伸缩比弹…

从昏暗到明亮—改善照明环境,提升编程效率

作为一名程序员博主&#xff0c;长时间写代码、写博客&#xff0c;对着电脑屏幕的生活方式已经渐渐成为了我的日常。 然而&#xff0c;这种生活方式却给我的眼睛带来了相当大的压力。每当一天的工作结束&#xff0c;我的眼睛总是感到干涩、疲劳&#xff0c;让我感到不舒适。&am…

S5PV210裸机(六):SD卡

本文主要探讨s5pv210的SD的相关知识。 存储 软盘、硬盘、光盘、CD、磁带:磁存储,读写慢、可靠性低 NandFlash、NorFlash:电存储,读写接口时序复杂,接口众多 SD卡、MMC卡、MicroSD、TF卡:统一外部封装和接口,SD兼容MMC标准 iNand、MoviNand、e…

正点原子嵌入式linux驱动开发——Linux MISC驱动

misc的意思是混合、杂项的&#xff0c;因此MISC驱动也叫做杂项驱动&#xff0c;也就是当板子上的某些外设无法进行分类的时候就可以使用MISC驱动。MISC驱动其实就是最简单的字符设备驱动&#xff0c;通常嵌套在platform总线驱动中&#xff0c;实现复杂的驱动&#xff0c;本章就…

Web APIS——第一天(下)

一、随机轮播图案例 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"widthde…

JAVA多线程基础篇--守护线程(Daemon Thread)

1.概述 JAVA中的线程主要分为两类&#xff1a;用户线程&#xff08;User Thread&#xff09;和守护线程(Daemon Thread)。JAVA语言中无论是线程还是线程池&#xff0c;默认都是用户线程&#xff0c;因此用户线程也被称为普通线程。守护线程也被称之为后台线程、服务线程或精灵…

LeetCode977——有序数组的平方

LeetCode977——有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求新数组也按 非递减顺序 排序。 输入&#xff1a;nums [-4,-1,0,3,10] 输出&#xff1a;[0,1,9,16,100] 解释&#xff1a;平方后&…

【ECS游戏架构】逻辑帧驱动带来的性能和即时性问题分析

1024水一篇~ 个人拙见&#xff0c;如有错误希望大佬拔刀纠正。 根据守望先锋在GDC会议上对ECS架构的描述&#xff0c;所有的系统(system)都是由逻辑帧驱动的&#xff1a;每帧遍历所有的system&#xff0c;并调用system的update()更新游戏世界的状态。 在实际应用中这可能会存…

缓存分片中的哈希算法与一致性哈希算法

什么是缓存分片 在高并发场景下&#xff0c;缓存往往成为了瓶颈。这时候&#xff0c;我们可以通过缓存数据分片的方式来解决问题。所谓缓存数据分片&#xff0c;就是将缓存数据按照一定的规则分成多个片段&#xff0c;每个片段由不同的缓存节点负责。这样做有两个好处&#xf…

广告掘金全自动挂机项目,单设备30+【软件脚本+技术教程】

广告掘金项目是一种越来越受欢迎的赚钱方式&#xff0c;它通过观看广告视频来获取收益。然而&#xff0c;手动观看每个广告视频可能会耗费大量时间和精力。为了简化操作并提升效率&#xff0c;我们可以利用全自动挂机脚本来完成这一任务。接下来&#xff0c;将为您介绍如何使用…

proxmox pve /dev/mapper/pve-root扩容

vgs3 pvs4 vgs5 lvs6 lvremove /dev/pve/data8 lvresize -l 100%FREE /dev/pve/root9 resize2fs /dev/mapper/pve-root 10 history

爆肝整理,Pytest+Allure+Jenkins自动化测试集成实战(图文详细步骤)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、简介 pytesta…

宝塔FTP提示:553 Can‘t open that file: Permission denied的解决方案

[2023-10-18 15:16] 无法传输文件 ‘D:\phpstudy_pro\WWW\lockgis\static\js\coordtransform.js’。Cant open output connection for file “ftp://iot.test.net/lockgis/static/js/coordtransform.js”. Reason: “553 Can’t open that file: Permission denied”. 原因分析…

美国国防部网络战略如何改变国家网络防御

十年前&#xff0c;时任国防部长莱昂帕内塔说了一句后来臭名昭著的短语&#xff1a;“网络珍珠港”。帕内塔利用他作为该国主要国家安全官员的平台来警告美国未来将遭受可怕的数字攻击。 他警告说&#xff0c;能源基础设施、交通系统、金融平台等都容易受到剥削。媒体、专家和…

基于C语言 --- 自己写一个通讯录

C语言程序设计笔记---039 C语言之实现通讯录1、介绍C/C程序的内存开辟2、C语言实现通讯录2.1、ContactMain.c程序大纲2.2、Contact2.h2.3、Contact2.c2.3.1 InitContact( )初始化通讯录函数2.3.2 AddContact( )添加联系人和CheckCapaticy( )检查容量函数2.3.3、ShowContact( )显…

重大技术问题,iPhone 15 Pro Max面临“烧屏门”风波 | 百能云芯

近期&#xff0c;社交媒体平台上陆续涌现大量用户和数码博主就iPhone 15 Pro Max出现烧屏问题的投诉与评论。 烧屏问题是OLED屏幕常见的一个缺陷&#xff0c;这是由OLED屏幕发光机制引发的&#xff0c;OLED屏幕可视为由无数微小的灯泡-像素点构成&#xff0c;这些像素点可以独立…

redis场用命令及其Java操作

目录 1. Redis入门 1.1 Redis简介 1.2 Redis下载与安装 1.2.1 Redis下载 1.2.2 Redis安装 1.3 Redis服务启动与停止 1.3.1 服务启动命令 1.3.2 客户端连接命令 1.3.3 修改Redis配置文件 1.3.4 Redis客户端图形工具 2. Redis数据类型 2.1 五种常用数据类型介绍 2.2 …

【单片机基础】按键状态机实现短按、长按、双击、三击和N击

下载地址&#xff1a; 【CSDNNaiva】源码&#xff1a;HK32F030M-按键扫描-短按长按检测 参考资料 [1] 【CSDNPillarPeng】【按键】[独立按键] - 1&#xff1a; 单击&#xff0c;双击&#xff0c;三击以及N击 [2] 【CSDNPillarPeng】【按键】[独立按键] - 2&#xff1a;双击 …

git简介和指令

git是一个开源的的分布式版本控制系统&#xff0c;用于高效的管理各种大小项目和文件 用途&#xff1a;防止代码丢失&#xff0c;做备份 项目的版本管理和控制&#xff0c;可以通过设置节点进行跳转 建立各自的开发环境分支&#xff0c;互不影响&#xff0c;方便合并 在多终端开…

git pull 和 git fetch 有什么区别?

一、是什么 先回顾两个命令的定义 git fetch 命令用于从另一个存储库下载对象和引用git pull 命令用于从另一个存储库或本地分支获取并集成(整合) 再来看一次git的工作流程图&#xff0c;如下所示&#xff1a; 可以看到&#xff0c;git fetch是将远程主机的最新内容拉到本地…