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

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.rhkb.cn/news/474272.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu 22.04 上快速搭建 Samba 文件共享服务器

Samba 简介 Samba 是一个开源软件,它扮演着不同操作系统间沟通的桥梁。通过实现 SMB(Server Message Block)协议,Samba 让文件和打印服务在 Windows、Linux 和 macOS 之间自由流动。 以下是 Samba 的特点: 跨平台兼…

stm32启动过程解析startup启动文件

1.STM32的启动过程模式 1.1 根据boot引脚决定三种启动模式 复位后,在 SYSCLK 的第四个上升沿锁存 BOOT 引脚的值。BOOT0 为专用引脚,而 BOOT1 则与 GPIO 引脚共用。一旦完成对 BOOT1 的采样,相应 GPIO 引脚即进入空闲状态,可用于…

CVE-2024-2961漏洞的简单学习

简单介绍 PHP利用glibc iconv()中的一个缓冲区溢出漏洞,实现将文件读取提升为任意命令执行漏洞 在php读取文件的时候可以使用 php://filter伪协议利用 iconv 函数, 从而可以利用该漏洞进行 RCE 漏洞的利用场景 PHP的所有标准文件读取操作都受到了影响&#xff1…

视觉SLAM相机——单目相机、双目相机、深度相机

一、单目相机 只使用一个摄像头进行SLAM的做法称为单目SLAM,这种传感器的结构特别简单,成本特别低,单目相机的数据:照片。照片本质上是拍摄某个场景在相机的成像平面上留下的一个投影。它以二维的形式记录了三维的世界。这个过程中…

Java通过calcite实时读取kafka中的数据

引入maven依赖 <dependency> <groupId>org.apache.calcite</groupId> <artifactId>calcite-kafka</artifactId> <version>1.28.0</version> </dependency> 测试代码 import java.sql.Connection; import java.sql.DriverMan…

【时间之外】IT人求职和创业应知【36】-肖申克的救赎

目录 新闻一&#xff1a;信息技术应用创新产业大会在深圳开幕 新闻二&#xff1a;人工智能与大数据融合应用成为创业新热点 新闻三&#xff1a;云计算与边缘计算协同发展推动IT行业创新 认知和思考决定了你的赚钱能力。以下是今天可能引起你思考的热点新闻&#xff1a; 新闻…

python高级之简单爬虫实现

一、前言 场景1&#xff1a;一个网络爬虫&#xff0c;顺序爬取一个网页花了一个小时&#xff0c;采用并发下载就减少到了20分钟。 场景2&#xff1a;一个应用软件优化前每次打开网页需要3秒&#xff0c;采用异步并发提升到了200毫秒。 假设一个工程的工作量为100&#xff0c…

01_MinIO部署(Windows单节点部署/Docker化部署)

单节点-Windows环境安装部署 在Windows环境安装MinIO&#xff0c;主要包含两个东西&#xff1a; MinIO Server&#xff08;minio.exe&#xff09;&#xff1a;应用服务本身MinIO Client&#xff08;mc.exe&#xff09;&#xff1a;MinIO客户端工具&#xff08;mc&#xff09;…

数据分析24.11.13

Excel 函数 求和 函数 sum() sumif() SUMIF(range, criteria, [sum_range]) sumifs() average() count() max() min() 逻辑 函数 if() iferror() 查询函数 VLOOKUP()

已有docker增加端口号,不用重新创建Docker

已有docker增加端口号&#xff0c;不用重新创建Docker 1. 整体描述2. 具体实现2.1 查看容器id2.2 停止docker服务2.3 修改docker配置文件2.4 重启docker服务 3. 总结 1. 整体描述 docker目前使用的非常多&#xff0c;但是每次更新都需要重新创建docker&#xff0c;也不太方便&…

java itext后端生成pdf导出

public CustomApiResult<String> exportPdf(HttpServletRequest request, HttpServletResponse response) throws IOException {// 防止日志记录获取session异常request.getSession();// 设置编码格式response.setContentType("application/pdf;charsetUTF-8")…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04目录1. Alopex: A Computational Framework for Enabling On-Device Function Calls with LLMs摘要&#xff1a;研究背景&…

NLP论文速读(谷歌出品)|缩放LLM推理的自动化过程验证器

论文速读|Rewarding Progress: Scaling Automated Process Verifiers for LLM Reasoning 论文信息&#xff1a; 简介&#xff1a; 这篇论文探讨了如何提升大型语言模型&#xff08;LLM&#xff09;在多步推理任务中的性能。具体来说&#xff0c;它试图解决的问题是现有的基于结…

k-近邻算法(K-Nearest Neighbors, KNN)详解:机器学习中的经典算法

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

Debezium-MySqlConnectorTask

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 MySqlConnectorTask&#xff0c;用于读取MySQL的二进制日志并生成对应的数据变更事件 整体架构流程 技术名词解释 数据库模式&#xff08;Database Schema&#xff09; 数据库模式是指数据库中数据的组织结构和定义&…

SDF,一个从1978年运行至今的公共Unix Shell

关于SDF 最近发现了一个很古老的公共Unix Shell服务器&#xff0c;这个项目从1978年运行至今&#xff0c;如果对操作系统&#xff0c;对Unix感兴趣&#xff0c;可以进去玩一玩体验一下 SDF Public Access UNIX System - Free Shell Account and Shell Access 注册方式 我一…

逆向攻防世界CTF系列41-EASYHOOK

逆向攻防世界CTF系列41-EASYHOOK 看题目是一个Hook类型的&#xff0c;第一次接触&#xff0c;虽然学过相关理论&#xff0c;可以看我的文章 Hook入门(逆向)-CSDN博客 题解参考&#xff1a;https://www.cnblogs.com/c10udlnk/p/14214057.html和攻防世界逆向高手题之EASYHOOK-…

C# 面向对象

C# 面向对象编程 面向过程&#xff1a;一件事情分成多个步骤来完成。 把大象装进冰箱 (面向过程化设计思想)。走一步看一步。 1、打开冰箱门 2、把大象放进冰箱 3、关闭冰箱门 面向对象&#xff1a;以对象作为主体 把大象装进冰箱 1、抽取对象 大象 冰箱 门 &#xff0…

【AI图像生成网站Golang】项目架构

AI图像生成网站 目录 一、项目介绍 二、雪花算法 三、JWT认证与令牌桶算法 四、项目架构 五、图床上传与图像生成API搭建 六、项目测试与调试(等待更新) 四、项目架构 本项目的后端基于Golang和Gin框架开发&#xff0c;主要包括的模块有&#xff1a; backend/ ├── …

Acme PHP - Let‘s Encrypt

Lets Encrypt是一个于2015年三季度推出的数字证书认证机构&#xff0c;旨在以自动化流程消除手动创建和安装证书的复杂流程&#xff0c;并推广使万维网服务器的加密连接无所不在&#xff0c;为安全网站提供免费的SSL/TLS证书。 使用PHP来更新证书&#xff1a; Acme PHP | Rob…