【分布式技术】ES扩展知识-Elasticsearch分词器的知识与选择

news2024/11/17 7:23:32

ES知识扩展

    • 分词器有哪些?
      • 1. 标准分词器(Standard Analyzer):
        • 示例
          • 示例文本分析
          • 配置参数与自定义
          • 应用场景
      • 2. Simple Analyzer:
        • 示例
          • 示例文本分析
          • 应用场景与限制
          • 结论
      • 3. Whitespace Analyzer:
        • 示例
          • 示例文本分析
          • 应用场景与限制
          • 结论
      • 4. Keyword Analyzer:
        • 示例
          • 示例文本分析
          • 应用场景与优势
          • 结论
      • 5. Stop Analyzer:
        • 示例
          • 示例文本分析
          • 应用场景与优势
          • 结论
      • 6. Pattern Analyzer:
        • 示例
          • 示例文本分析
          • 配置Pattern Analyzer
          • 应用场景与优势
          • 结论
      • 7. Language Analyzers:
      • 8. IK Analyzer:
        • 示例
          • IK Analyzer的分词模式
          • IK Analyzer的安装与配置
          • 示例文本分析
          • IK Analyzer的优势
          • 结论
      • 9. Smart Chinese Analyzer(smartcn):
        • 示例
          • 一、分词原理与特点
          • 二、安装与配置
          • 三、分词示例
          • 四、应用场景
          • 五、注意事项

分词器有哪些?

Elasticsearch(简称ES)中的分词器是用于将文本拆分为单词(词项)的组件,以便于搜索和索引。ES提供了多种内置的分词器,每种分词器适用于不同的场景和需求。以下是一些主要的ES分词器:

1. 标准分词器(Standard Analyzer):

  • 是ES默认的分词器,适用于大多数情况。
  • 会根据空格和标点符号将文本拆分为词项,并进行小写转换和标点符号过滤。
  • 对于中文,它按单字进行分词。
示例

ES(Elasticsearch)的Standard Analyzer是Elasticsearch中默认的分词器,其作用主要是在数据写入时对需要分词的字段进行词条切分转换,同时匹配Query语句的时候也需要使用相同的分词器对查询语句进行分析。下面通过举例来详细说明Standard Analyzer的作用:

示例文本分析

假设我们有以下文本:

  • 示例文本1(英文):“Elasticsearch is fun”
  • 示例文本2(中英文混合):“ES真好玩”
  • 示例文本3(英文含特殊字符和数字):“The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.”

使用Standard Analyzer对这些文本进行分词处理,可以得到以下结果:

  1. 示例文本1(英文)

    • 分词结果:[“elasticsearch”, “is”, “fun”]
    • 说明:Standard Analyzer按照空格将文本切分成单词,并进行小写处理。
  2. 示例文本2(中英文混合)

    • 分词结果(假设在支持中文分词的上下文中):[“es”, “真”, “好”]
    • 说明:对于中文文本,Standard Analyzer默认按字切分(在Elasticsearch的某些版本中或特定配置下,可能需要额外的中文分词器来处理中文文本)。对于英文部分(即"ES"),则保持原样(在实际应用中,"ES"可能会被识别为缩写或特定词汇,但在此示例中,我们假设它按字切分)。不过,值得注意的是,在纯英文环境下,Standard Analyzer不会对中文文本进行特殊处理,而是会将其视为连续字符序列。因此,在实际应用中,针对中英文混合文本,可能需要使用更复杂的分词策略或自定义分词器。
  3. 示例文本3(英文含特殊字符和数字)

    • 分词结果:[“the”, “2”, “quick”, “brown”, “foxes”, “jumped”, “over”, “the”, “lazy”, “dog’s”, “bone”]
    • 说明:Standard Analyzer会忽略标点符号(如空格、连字符等),并将文本切分成单词。数字"2"也被当作一个独立的词条。此外,分词结果保留了原始文本的大小写(但在实际查询中,通常会进行小写化处理以提高匹配度)。
配置参数与自定义

Standard Analyzer还支持一些配置参数,如max_token_length(单个词的最大长度)和stopwords(停用词列表)。通过调整这些参数,可以进一步定制分词器的行为。例如:

  • 设置max_token_length为5,则"jumped"会被切分成"jumpe"和"d"。
  • 添加"the"到停用词列表,则"the"在分词结果中会被过滤掉。
应用场景

Standard Analyzer适用于大多数英文文本的分词需求。对于中文文本,由于Standard Analyzer默认按字切分,可能无法满足实际需求。因此,在处理中文文本时,通常需要选择或自定义更适合的分词器(如IK Analyzer、Pinyin Analyzer等)。

综上所述,Standard Analyzer是Elasticsearch中非常重要的分词工具,它能够帮助用户快速、准确地将文本切分成单词或字符序列,为后续的搜索、分析和可视化等操作提供基础。

2. Simple Analyzer:

  • 会根据非字母字符将文本拆分为词项,并将词项转换为小写。
  • 不会进行标点符号和停用词的过滤。
  • 对于中文,它按空格进行分词(如果有空格的话)。
示例

ES(Elasticsearch)的Simple Analyzer是一个基本的分词器,它按照非字母字符(包括数字、符号和空格)来分割文本信息,并对英文进行小写处理,而非英文内容则不进行分词。下面通过具体例子来说明Simple Analyzer的作用:

示例文本分析

假设我们有以下文本:

  • 示例文本1(英文):“The quick brown fox!”
  • 示例文本2(中英文混合):“ES is fun, 真好玩!”
  • 示例文本3(特殊字符和数字):“2024-hello-world!”

使用Simple Analyzer对这些文本进行分词处理,可以得到以下结果:

  1. 示例文本1(英文)

    • 分词结果:[“the”, “quick”, “brown”, “fox”]
    • 说明:Simple Analyzer按照非字母字符(如空格和感叹号)将文本切分成单词,并将英文单词转换为小写。
  2. 示例文本2(中英文混合)

    • 分词结果(假设在纯英文分词上下文中):[“es”, “is”, “fun”]
      • 注意:这里的"真好玩"作为非英文内容,在Simple Analyzer中不会被分词。在实际应用中,如果需要对中文文本进行分词,需要使用专门的中文分词器。
    • 说明:Simple Analyzer只处理英文部分,将其按非字母字符切分并小写化。中文部分则保持原样,不被分词。
  3. 示例文本3(特殊字符和数字)

    • 分词结果:[“2024”, “hello”, “world”]
    • 说明:Simple Analyzer将特殊字符(如短横线)视为分隔符,将文本切分成单词或数字序列。数字"2024"和英文单词"hello"与"world"被成功切分出来。
应用场景与限制

Simple Analyzer适用于简单的英文文本分词需求,特别是在需要忽略特殊字符和数字的情况下。然而,对于包含中文或其他非拉丁字符的文本,Simple Analyzer则无法进行有效的分词处理。此外,由于Simple Analyzer只按非字母字符切分文本,因此它无法识别并处理缩写、复合词或带有连字符的单词等复杂情况。

结论

Simple Analyzer是Elasticsearch中一个简单而有效的分词器,特别适用于处理纯英文文本。然而,在处理包含中文或其他非拉丁字符的文本时,需要选择更合适的分词器(如IK Analyzer、Pinyin Analyzer等)来满足实际需求。同时,在使用Simple Analyzer时,也需要注意其分词规则的局限性,以避免出现意外的分词结果。

3. Whitespace Analyzer:

  • 会根据空格字符将文本拆分为词项。
  • 不会进行小写转换、标点符号过滤和停用词过滤。
示例

ES(Elasticsearch)的Whitespace Analyzer是一个基于空格字符进行分词的分析器。它非常简单,只会在空格处分割文本,并且不会对文本进行任何其他处理(如小写化或去除停用词)。下面通过具体例子来说明Whitespace Analyzer的作用:

示例文本分析

假设我们有以下文本:

  • 示例文本1(英文):“The quick brown fox jumps over the lazy dog.”
  • 示例文本2(中英文混合):“Hello World ES 真好玩”
  • 示例文本3(特殊字符和数字):“2023-elastic-search is great!”

使用Whitespace Analyzer对这些文本进行分词处理,可以得到以下结果:

  1. 示例文本1(英文)

    • 分词结果:[“The”, “quick”, “brown”, “fox”, “jumps”, “over”, “the”, “lazy”, “dog.”]
    • 说明:Whitespace Analyzer在空格处将文本分割成单词,保留了文本中的标点符号和大小写。
  2. 示例文本2(中英文混合)

    • 分词结果:[“Hello”, “World”, “ES”, “真好玩”]
    • 说明:同样地,Whitespace Analyzer在空格处将文本分割成单词或词组。对于中英文混合文本,它不会进行任何特殊处理,只是简单地按空格分割。
  3. 示例文本3(特殊字符和数字)

    • 分词结果:[“2023-elastic-search”, “is”, “great!”]
    • 说明:Whitespace Analyzer将文本在空格处分割,特殊字符和数字组成的字符串(如"2023-elastic-search")被视为一个整体。
应用场景与限制

Whitespace Analyzer适用于以下场景:

  • 文本中单词之间以空格分隔,且不需要进行其他处理(如小写化或去除停用词)。
  • 需要保留文本中的大小写和标点符号。

然而,Whitespace Analyzer也有其局限性:

  • 它无法处理没有空格分隔的复合词或缩写。
  • 对于非英文文本(如中文),由于单词之间通常没有空格分隔,Whitespace Analyzer无法进行有效的分词。
结论

Whitespace Analyzer是Elasticsearch中一个简单且直接的分词器,它只在空格处分割文本,不进行其他任何处理。适用于需要保留文本原始格式和标点符号的场景。然而,在处理非英文文本或需要更复杂分词规则的情况下,可能需要选择其他更合适的分词器。

4. Keyword Analyzer:

  • 不会对文本进行拆分,将整个文本作为一个词项。
  • 通常用于不需要进行分词的字段,如关键字字段或精确匹配字段。
示例

ES(Elasticsearch)的Keyword Analyzer是一种特殊的分词器,它的作用是将输入的整个字符串视为一个单独的词(term)或关键词,而不进行任何分词处理。这意味着,无论输入字符串中包含多少个单词或字符,Keyword Analyzer都会将其作为一个整体来索引和搜索。下面通过具体例子来说明Keyword Analyzer的作用:

示例文本分析

假设我们有以下文本:

  • 示例文本1:“The quick brown fox jumps over the lazy dog.”
  • 示例文本2:“Elasticsearch is fun!”
  • 示例文本3:“2023-annual-report”

使用Keyword Analyzer对这些文本进行分词处理,可以得到以下结果:

  1. 示例文本1

    • 分词结果:[“The quick brown fox jumps over the lazy dog.”]
    • 说明:尽管文本中包含多个单词,但Keyword Analyzer将其视为一个整体进行索引和搜索。
  2. 示例文本2

    • 分词结果:[“Elasticsearch is fun!”]
    • 同样地,Keyword Analyzer将整个字符串视为一个单独的词进行索引和搜索。
  3. 示例文本3

    • 分词结果:[“2023-annual-report”]
    • 对于包含特殊字符(如短横线)的字符串,Keyword Analyzer也会将其视为一个整体进行索引和搜索。
应用场景与优势

Keyword Analyzer适用于以下场景:

  • 精确匹配:当需要确保整个字符串作为一个单独的词进行精确匹配时,可以使用Keyword Analyzer。例如,商品编号、订单号、用户名等字段通常需要进行精确匹配。
  • 保留原始格式:如果希望保留输入字符串的原始格式和标点符号,可以使用Keyword Analyzer。这样,在搜索时就可以按照原始格式进行匹配。
  • 避免分词错误:对于某些特殊字符或缩写,分词器可能会产生错误的分词结果。使用Keyword Analyzer可以避免这种情况,因为整个字符串会被视为一个整体。
结论

综上所述,ES的Keyword Analyzer在需要将整个字符串视为一个单独的词进行索引和搜索时非常有用。它适用于精确匹配的场景,可以保留输入字符串的原始格式,并避免分词错误。通过合理使用Keyword Analyzer,可以提高Elasticsearch的搜索效率和准确性。

5. Stop Analyzer:

  • 与Simple Analyzer类似,但增加了对停用词的过滤。
  • 默认使用英文停用词列表,如“the”、“a”、“an”等。
示例

ES(Elasticsearch)的Stop Analyzer是一种内置的分词器,它在Simple Analyzer的基础上进行了扩展,加入了停用词(stop words)的过滤功能。停用词通常是在自然语言处理中被视为没有实际意义的词汇,如“the”、“a”、“is”等英文中的冠词、介词和动词时态标志等。通过使用Stop Analyzer,可以在索引和搜索时忽略这些停用词,从而提高搜索的效率和准确性。

示例文本分析

假设我们有以下文本:

  • 示例文本:“The quick brown fox jumps over the lazy dog.”

使用Stop Analyzer对这段文本进行分词处理,可以得到以下结果:

  • 分词结果:[“quick”, “brown”, “fox”, “jumps”, “lazy”, “dog”]

在这个例子中,Stop Analyzer去除了文本中的停用词“The”和“over”(注意:“over”虽然在这个句子中有实际意义,但某些停用词表可能包含它,这取决于具体的停用词配置),并保留了其他有实际意义的词汇。这样,在搜索时,用户可以输入不包含停用词的查询字符串,如“quick brown fox”,仍然能够匹配到这段文本,因为停用词在索引和搜索过程中被忽略了。

应用场景与优势

Stop Analyzer适用于以下场景:

  1. 提高搜索效率:通过去除停用词,可以减少索引的大小和搜索时的计算量,从而提高搜索效率。
  2. 提升搜索准确性:停用词通常不提供实际的搜索价值,去除它们可以减少噪音,使搜索结果更加准确。
  3. 自然语言处理:在自然语言处理任务中,如文本分类、情感分析等,去除停用词也是常见的预处理步骤之一。
结论

综上所述,ES的Stop Analyzer通过去除文本中的停用词,可以在索引和搜索时提高效率和准确性。它适用于各种需要自然语言处理的场景,特别是在搜索和文本分析任务中。通过合理使用Stop Analyzer,可以优化Elasticsearch的性能和用户体验。

6. Pattern Analyzer:

  • 根据正则表达式模式将文本拆分为词项。
  • 可以指定自定义的正则表达式模式来满足特定的分词需求。
示例

ES(Elasticsearch)的Pattern Analyzer是一种基于正则表达式(regular expression)进行分词的分析器。它允许用户通过定义特定的模式(pattern)来指定如何将文本分割成单词或标记(tokens)。Pattern Analyzer在处理文本时,会根据定义的正则表达式匹配文本中的字符,并将匹配到的部分作为单独的单词或标记输出。

示例文本分析

假设我们有以下文本:

  • 示例文本:“The-quick-brown-fox-jumps-over-the-lazy-dog”

我们希望使用Pattern Analyzer将文本中的连字符(-)作为分隔符,将文本分割成单独的单词。为此,我们可以定义一个正则表达式模式,如\W+(匹配任何非单词字符的序列,包括连字符)。

使用Pattern Analyzer并指定该正则表达式模式对示例文本进行分词处理,可以得到以下结果:

  • 分词结果:[“The”, “quick”, “brown”, “fox”, “jumps”, “over”, “the”, “lazy”, “dog”]

在这个例子中,Pattern Analyzer根据正则表达式模式\W+成功地将文本中的连字符(-)作为分隔符,将文本分割成了单独的单词。

配置Pattern Analyzer

在Elasticsearch中,可以通过定义自定义分析器(custom analyzer)来配置Pattern Analyzer。以下是一个配置Pattern Analyzer的示例:

PUT /my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_pattern_analyzer": {
          "type": "pattern",
          "pattern": "\\W+",  // 正则表达式模式,用于指定分词分隔符
          "lowercase": true   // 将分词结果转换为小写(可选)
        }
      }
    }
  }
}

在上面的示例中,我们创建了一个名为my_pattern_analyzer的自定义分析器,它使用Pattern Analyzer并指定了正则表达式模式\W+作为分词分隔符。同时,我们还设置了lowercase参数为true,以便将分词结果转换为小写。

应用场景与优势

Pattern Analyzer适用于以下场景:

  1. 自定义分词规则:当用户需要定义自定义的分词规则时,可以使用Pattern Analyzer并指定相应的正则表达式模式。
  2. 处理特殊字符:当文本中包含特殊字符或分隔符时,可以使用Pattern Analyzer来根据这些特殊字符或分隔符进行分词。
  3. 灵活性:由于Pattern Analyzer基于正则表达式进行分词,因此具有很高的灵活性,可以处理各种复杂的文本分割需求。
结论

综上所述,ES的Pattern Analyzer是一种强大的分词工具,它允许用户通过定义正则表达式模式来指定如何将文本分割成单词或标记。通过合理配置Pattern Analyzer,可以灵活地处理各种文本分割需求,提高搜索效率和准确性。

7. Language Analyzers:

  • ES还提供了多个针对特定语言的分词器,如English、French等。
  • 这些分词器会根据特定的语言规则和特征进行分词处理,以提供更准确的分词效果。

8. IK Analyzer:

  • 一个流行的第三方中文分词器,基于开源项目IK Analysis开发。
  • 提供了细粒度的中文分词能力,支持词库扩展和自定义词典。
  • 可以根据具体需求进行配置和定制,支持停用词过滤、同义词扩展等功能。
  • 在创建索引时,可以将字段的分词器指定为“ik_max_word”或“ik_smart”。“ik_max_word”会尽可能多地进行分词,而“ik_smart”则会更加智能地进行分词。
示例

ES(Elasticsearch)的IK Analyzer是一个基于Java语言开发的轻量级中文分词工具包。它最初是作为开源项目Lucene的中文分词组件而开发的,后来逐渐发展成为面向Java的公用分词组件,并提供了对Lucene的默认优化实现。IK Analyzer实现了简单的分词歧义排除算法,标志着其从单纯的词典分词向模拟语义分词衍化。

IK Analyzer的分词模式

IK Analyzer提供了两种分词模式:

  1. ik_smart模式:该模式会做最粗粒度的拆分,即会把文本做尽可能少的切分,适合搜索引擎建立索引时使用。例如,对于文本“我是中国人”,ik_smart模式会将其分词为“我”、“是”、“中国人”。
  2. ik_max_word模式:该模式会做最细粒度的拆分,即会把文本做尽可能多的切分,适合用于分词后统计词频等分析工作。对于同样的文本“我是中国人”,ik_max_word模式可能会将其分词为“我”、“是”、“中国”、“中国人”、“人”。
IK Analyzer的安装与配置

在Elasticsearch中安装IK Analyzer插件通常涉及以下步骤:

  1. 下载插件:从IK Analyzer的官方GitHub仓库或其他可信来源下载适用于当前Elasticsearch版本的插件包。
  2. 安装插件:将下载的插件包解压,并将解压后的文件复制到Elasticsearch的插件目录中(通常是plugins/ik)。
  3. 重启Elasticsearch:安装完插件后,需要重启Elasticsearch服务以使插件生效。
示例文本分析

假设我们有以下中文文本:

  • 示例文本:“我爱自然语言处理”

使用IK Analyzer的ik_smart模式对这段文本进行分词处理,可以得到以下结果:

  • 分词结果:[“我”,“爱”,“自然语言处理”]

而使用ik_max_word模式进行分词处理,则可能得到更细粒度的分词结果:

  • 分词结果:[“我”,“爱”,“自然”,“语言”,“处理”,“自然语言”,“自然语言处理”]
IK Analyzer的优势
  1. 中文分词效果好:IK Analyzer针对中文文本进行了优化,提供了准确的中文分词功能。
  2. 配置灵活:用户可以通过修改配置文件来自定义分词词典、停用词等,以满足特定的分词需求。
  3. 性能优越:IK Analyzer在分词速度和内存占用方面表现优秀,适合大规模文本处理场景。
结论

综上所述,ES的IK Analyzer是一个功能强大、配置灵活的中文分词工具包。它提供了两种分词模式以满足不同的应用场景需求,并在中文分词效果、性能和配置灵活性方面表现出色。通过合理使用IK Analyzer,可以显著提高Elasticsearch在处理中文文本时的搜索效率和准确性。

9. Smart Chinese Analyzer(smartcn):

  • ES内置的中文分词器,使用机器学习算法进行分词。
  • 适用于简体中文和繁体中文,具有较高的分词准确性和召回率。
  • 易于使用,无需额外配置即可使用。
示例

ES(Elasticsearch)的Smart Chinese Analyzer是基于Lucene自带的一款中文分词器,它使用基于规则的分词方法,能够进行精确的中文分词,并支持中文数字、中文量词、时间、日期等特殊词汇的识别和转换。以下是对Smart Chinese Analyzer的详细举例说明:

一、分词原理与特点
  1. 基于规则的分词:Smart Chinese Analyzer通过预设的规则库对中文文本进行分词,这些规则包括词汇边界、词汇组合规则等。
  2. 支持特殊词汇:它能够识别并正确分词中文数字(如一、二、三等)、中文量词(如个、只、条等)、时间(如年、月、日等)和日期等特殊词汇。
  3. 基于隐马尔可夫模型:Smart Chinese Analyzer在大型训练语料库上使用基于隐马尔可夫(Markov)模型的概率知识来查找简体中文文本的最佳分词。
二、安装与配置

Smart Chinese Analyzer通常作为Elasticsearch的一个插件进行安装。安装步骤包括下载插件包、将插件包解压到Elasticsearch的插件目录中,并重启Elasticsearch服务以使插件生效。

三、分词示例

假设我们有以下中文文本:

  • 示例文本:“股市,投资,稳赚不赔,必修课,如何做好仓位管理和情绪管理”

使用Smart Chinese Analyzer对这段文本进行分词处理,可以得到以下结果:

  • 分词结果:[“股市”,“投资”,“稳”,“赚”,“不”,“赔”,“必修课”,“如何”,“做”,“好”,“仓位”,“管理”,“和”,“情绪”,“管理”]

从分词结果可以看出,Smart Chinese Analyzer能够准确地将中文文本切分成有意义的词汇,并保留了原文中的关键信息。

四、应用场景

Smart Chinese Analyzer适用于以下场景:

  1. 搜索引擎:在搜索引擎中,Smart Chinese Analyzer可以帮助提高中文文本的索引和搜索效率,使用户能够更快速地找到相关信息。
  2. 文本分析:在文本分析任务中,如情感分析、主题检测等,Smart Chinese Analyzer可以提供准确的分词结果,从而提高分析的准确性和效率。
  3. 自然语言处理:在自然语言处理领域,Smart Chinese Analyzer可以作为分词组件,为后续的文本处理任务(如词性标注、句法分析等)提供基础支持。
五、注意事项
  1. 扩展性差:Smart Chinese Analyzer的扩展性相对较差,扩展词库、禁用词库和同义词库等处理起来可能不太方便。
  2. 性能考虑:在处理大规模文本数据时,需要注意Smart Chinese Analyzer的性能表现,并根据实际需求进行调优。

综上所述,ES的Smart Chinese Analyzer是一款功能强大、基于规则的中文分词器,它能够准确地对中文文本进行分词处理,并支持特殊词汇的识别和转换。通过合理配置和使用Smart Chinese Analyzer,可以显著提高Elasticsearch在处理中文文本时的搜索效率和准确性。

以上分词器各有特点,适用于不同的文本处理需求。在选择分词器时,需要根据具体的业务场景和文本特点进行选择。同时,也可以通过自定义分词器来满足特定的需求。

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

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

相关文章

MySQL社区版的启动与连接

1.启动: 注意:MySQL是默认开机自启的 方式一: 1.WinR 的命令行中直接输入services.msc 2.在服务中找到数据库名称,然后鼠标右键点击启动 方式二: 1.在开始选项中搜索“cmd”命令提示符,使用管理员身份运行 …

FFmpeg 4.3 音视频-多路H265监控录放C++开发十四,总结编码过程,从摄像头获得数据后,转成AVFrame,然后再次转成AVPacket,

也就是将摄像头采集到的YUV 的数据换成 AVFrame,然后再次转成 AVPacket,那么这AVPakcet数据要怎么办呢?分为三种情况: 一种是将AVPacket存储成h264文件,由于h264编码器在将avframe变成avpacket的时候就是按照h264的格…

TCP(下):三次握手四次挥手 动态控制

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持! TCP(上):成熟可靠的传输层协议-CSDN博客 🥝在上篇博客中,我们针对TCP的特性,报文结构,连接过程以及相对于其他协议的区别进行了探讨,提供了初步的理解和概览。本…

24 年第十届数维杯国际数模竞赛赛题浅析

本次万众瞩目的数维杯国际大学生数学建模赛题已正式出炉,无论是赛题难度还是认可度,该比赛都是数模届的独一档,含金量极高,可以用于综测加分、保研、简历添彩等各方面。考虑到大家解题实属不易,为了帮助大家取得好成绩…

菲涅耳全息图

菲涅耳全息图:记录介质在物光波场的菲涅耳衍射区(物体到记录介质表面的距离在菲涅耳衍射区内)。 一、点源全息图的记录和再现 1.1 记录 设物光波和参考光波是从点源O(xo, yo, zo)和点源 R(xr, yr, zr)发出的球面波, 波长为λ1, 全息底片位于z0 的平面上, 与两个点源…

Pygame坦克大战游戏开发实验报告

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

微搭低代码入门05循环

目录 1 for 循环2 while 循环3 do...while 循环4 break 语句5 循环展示组件总结 在编程中,循环是一种非常强大的控制结构,它允许我们重复执行一段代码直到满足某个条件为止。在微搭中,我们一般用循环来处理我们数据库返回的结果。 在微搭中&a…

C++:基于红黑树封装map和set

目录 红黑树的修改 红黑树节点 红黑树结构 红黑树的迭代器 红黑树Insert函数 红黑树的默认成员函数 修改后完整的红黑树 set、map的模拟实现 set map 测试封装的set和map 红黑树的修改 想要用红黑树封装map和set,需要对之前实现的key-value红黑树进行修…

【深度学习基础 | 预备知识】数据预处理

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…

前端面试笔试(四)

目录 一、数据结构算法等综合篇 1.线性探查法解决哈希冲突 2.请求分页系统中文件区和对换区 3.RADIUS认证协议,运行在哪个网络协议上 二、代码输出篇 1.res[1,2,100].map(parseInt) 如果我们想要输出为[1,2,100],可以: 还可以换map里…

从零开始学习 sg200x 多核开发之 milkv-duo256 编译运行 sophpi

sophpi 是 算能官方针对 sg200x 系列的 SDK 仓库 https://github.com/sophgo/sophpi ,支持 cv180x、cv81x、sg200x 系列的芯片。 SG2002 简介 SG2002 是面向边缘智能监控 IP 摄像机、智能猫眼门锁、可视门铃、居家智能等多项产品领域而推出的高性能、低功耗芯片&a…

【客户服务】互联网时代客户投诉处理金点子

互联网时代客户投诉新特点 客户投诉渠道广投诉的内容涉及到企业的各个方面客户维权意识越来越强负面效应很难管 卓越客户体验成为企业核心竞争力 移动互联网与社会化媒体背景下,客户的全方位感知、情感、卓越体验、高效需求成为驱动技术、应用、终端以及服务持续…

SQL 审核在 CloudQuery 的四大场景应用

数据库作为数据的核心载体,其安全性和稳定性对业务的影响至关重要。而在我们日常业务中,SQL 编写不当是引起数据库故障的一个重要原因,轻则影响数据库性能,重则可能直接导致「雪崩」。因此,SQL 审核作为 SQL 代码投入生…

【前端知识】Javascript前端框架Vue入门

前端框架VUE入门 概述基础语法介绍组件特性组件注册Props 属性声明事件组件 v-model(双向绑定)插槽Slots内容与出口 组件生命周期完整示例1. 创建 Vue 项目(如果还没有)2. 定义和使用组件3. 在主应用中使用组件4. 运行应用完整项目结构 参考文献 概述 V…

Jmeter基础篇(24)Jmeter目录下有哪些文件夹是可以删除,且不影响使用的呢?

一、前言 Jmeter使我们日常做性能测试最常用的工具之一啦!但是我们在和其他同学协同工作的时候,偶尔也会遇到一些问题,例如我想要给别人发送一个Jmeter工具包,但这个文件包往往会很大,比较浪费流量和空间,…

Python_爬虫3_Requests库网络爬虫实战(5个实例)

目录 实例1:京东商品页面的爬取 实例2:亚马逊商品页面的爬取 实例3:百度360搜索关键词提交 实例4:网络图片的爬取和存储 实例5:IP地址归地的自动查询 实例1:京东商品页面的爬取 import requests url …

StructuredStreaming (一)

一、sparkStreaming的不足 1.基于微批,延迟高不能做到真正的实时 2.DStream基于RDD,不直接支持SQL 3.流批处理的API应用层不统一,(流用的DStream-底层是RDD,批用的DF/DS/RDD) 4.不支持EventTime事件时间(一般流处理都会有两个时间:事件发生的事件&am…

计算机网络HTTP——针对实习面试

目录 计算机网络HTTP什么是HTTP?HTTP和HTTPS有什么区别?分别说明HTTP/1.0、HTTP/2.0、HTTP/3.0请说明访问网页的全过程请说明HTTP常见的状态码Cookie和Session有什么区别?HTTP请求方式有哪些?请解释GET和POST的区别?HT…

转轮数组(C语言实现)

题目介绍 方法一我们可以先把数字1 2 3 4逆转一下&#xff0c;第二步我们可以逆转一下5 6 7&#xff0c; 最后整体逆置一下就会变成上面的数字。 void reverse(int* nums, int begin, int end) {while (begin < end){int tmp nums[begin];nums[begin] nums[end];nums[en…

Ubuntu 的 ROS 操作系统 turtlebot3 gazebo仿真

引言 TurtleBot3 Gazebo仿真环境是一个非常强大的工具&#xff0c;能够帮助开发者在虚拟环境中测试和验证机器人算法。 Gazebo是一个开源的3D机器人仿真平台&#xff0c;它能支持物理引擎&#xff0c;允许机器人在虚拟环境中模拟和测试。结合ROS&#xff0c;它能提供一个完整的…