当前位置: 首页 > article >正文

LiteratureReading:[2016] Enriching Word Vectors with Subword Information

文章目录

  • 一、文献简明(zero)
  • 二、快速预览(first)
    • 1、标题分析
    • 2、作者介绍
    • 3、引用数
    • 4、摘要分析
      • (1)翻译
      • (2)分析
    • 5、总结分析
      • (1)翻译
      • (2)分析
    • 6、部分图表
    • 7、引言分析
      • (1)翻译
      • (2)分析
    • 8、标题结构
    • 9、参考文献
  • 三、重点阅读(second)
  • 四、深入理解(third)
  • 五、技术复现(forth)

一、文献简明(zero)

领域:NLP
标题:[2016] Enriching Word Vectors with Subword Information(用子词信息丰富词向量)
作者:Bojanowski et al.

贡献:提出了fastText模型,利用子词信息解决未登录词问题,提升了词向量的泛化能力。
链接:原文

二、快速预览(first)

1、标题分析

标题“Enriching Word Vectors with Subword Information”直接表明了文章的核心内容和研究目标,即通过引入子词(subword)信息来丰富词向量。这种方法与传统的词向量模型不同,它不仅为每个独立的单词分配一个向量,而且还利用单词的字符n-gram来表示单词。这样的表示方法可以捕捉到单词的形态学信息,对于处理罕见词、合成词以及跨语言的词向量学习尤其有用。此外,这种方法允许模型快速地在大型语料库上训练,并能够为训练数据中未出现的单词生成词向量,这在自然语言处理任务中非常有价值。

2、作者介绍

  • Piotr Bojanowski:名字后有星号(*),可能表示他是论文的主要作者或通讯作者。
  • Edouard Grave:名字后有星号(*),同样可能表示他是论文的主要作者或通讯作者。
  • Armand JoulinTomas Mikolov:这两位作者没有特别的标记,表明他们也是论文的共同作者。

他们所属的机构是 Facebook AI Research,即 Facebook 的人工智能研究部门,这是一个专注于人工智能和机器学习研究的团队。

联系邮箱是 {bojanowski, egrave, ajoulin, tmikolov}@fb.com,这意味着每位作者的邮箱地址由他们的名字组成,域名是 fb.com,这是 Facebook 公司使用的域名。

3、引用数

……

4、摘要分析

在这里插入图片描述

(1)翻译

连续词表示,通过在大型未标记语料库上训练,对许多自然语言处理任务非常有用。那些学习此类表示的流行模型忽略了词的形态学,通过为每个词分配一个不同的向量。这是一个限制,特别是对于词汇量大且有许多罕见词的语言。在本文中,我们提出了一种基于skipgram模型的新方法,其中每个词被表示为字符n-gram的集合。与每个字符n-gram相关联的向量表示;词被表示为这些表示的总和。我们的方法快速,允许在大型语料库上快速训练模型,并允许我们计算在训练数据中未出现的词的词表示。我们在九种不同的语言上评估了我们的词表示,包括词相似性和类比任务。通过与最近提出的形态学词表示进行比较,我们展示了我们的向量在这些任务上实现了最先进的性能。

(2)分析

  1. 问题陈述

    • 摘要开头指出了现有词表示方法的一个主要限制:它们忽略了词的形态学信息,这在处理词汇量大和含有许多罕见词的语言时是一个问题。
  2. 方法介绍

    • 作者提出了一种基于skipgram模型的新方法,该方法通过字符n-gram来表示词。这种方法允许模型捕捉到词的内部结构,从而更好地处理形态丰富的语言。
    • 每个字符n-gram都有一个向量表示,而词的表示则是这些向量的总和。这种方法不仅能够处理已知的词,还能生成未见过的词的表示。
  3. 优势

    • 该方法快速,能够在大型语料库上快速训练模型。
    • 它能够为训练数据中未出现的词生成词表示,这在处理新词或罕见词时非常有用。
  4. 评估

    • 作者在九种不同的语言上评估了他们的词表示方法,包括词相似性和类比任务。
    • 通过与最近提出的形态学词表示方法进行比较,作者展示了他们的方法在这些任务上实现了最先进的性能。
  5. 结论

    • 摘要最后总结了作者的方法在处理词相似性和类比任务上的优势,强调了其在自然语言处理任务中的潜力。

总的来说,这篇摘要清晰地介绍了作者的研究动机、提出的方法、方法的优势以及评估结果,为读者提供了一个全面的概述。

5、总结分析

在这里插入图片描述

(1)翻译

在本文中,我们研究了一种简单的方法来学习词表示,该方法考虑了子词信息。我们的方法将字符n-gram纳入skipgram模型中,这一想法与Schütze(1993)提出的观点相关。由于其简单性,我们的模型训练速度快,并且不需要任何预处理或监督。我们展示了我们的模型优于那些不考虑子词信息的基线方法,以及依赖形态学分析的方法。为了促进未来在子词表示学习方面的工作,我们将开源我们的模型实现。

(2)分析

  1. 研究目的和方法

    • 作者在本文中探讨了一种新的词表示学习方法,该方法通过考虑子词(subword)信息来改进传统的词表示。
    • 具体来说,作者将字符n-gram整合到skipgram模型中,这是一种词嵌入技术,用于生成词的向量表示。
  2. 方法的创新点

    • 这种方法的创新之处在于它考虑了词的内部结构(即子词信息),这有助于更好地理解和表示词的意义。
    • 作者提到这种方法与Schütze在1993年提出的观点相关,表明他们的工作是建立在先前研究的基础上的。
  3. 模型的优势

    • 由于模型的简单性,它训练速度快,不需要复杂的预处理或监督学习。
    • 作者通过实验展示了他们的模型在性能上优于不考虑子词信息的基线方法,以及那些依赖形态学分析的方法。
  4. 开放源代码

    • 作者承诺将开源他们的模型实现,这有助于其他研究人员复现结果、进行比较研究,并在此基础上进一步发展。
  5. 结论的总结

    • 作者总结了他们的研究成果,强调了模型在处理词表示时考虑子词信息的重要性,并展示了其在性能上的优势。
    • 开源模型实现的决定进一步强调了作者对促进学术界在这一领域发展的承诺。

总的来说,这篇结论部分清晰地总结了研究的主要贡献和发现,并提出了未来研究的方向。通过开源模型,作者为学术界提供了一个宝贵的资源,以促进进一步的研究和开发。

6、部分图表

在这里插入图片描述
这幅图展示了训练数据规模对模型性能的影响,具体通过Spearman秩相关系数来衡量。图中有两个子图,分别对应两种不同的数据集:

  1. (a) DE-Gur350:这个子图显示了在DE-Gur350数据集上的性能表现。图中有三条曲线,分别代表三种不同的模型或方法:

    • 蓝色曲线(cbow):表示使用连续词袋模型(Continuous Bag of Words)的性能。
    • 黄色曲线(sigsq):表示使用一种特定的模型或方法的性能。
    • 红色曲线(sigsq):表示使用另一种变体的sigsq模型的性能。
  2. (b) En-RW:这个子图显示了在En-RW数据集上的性能表现。同样有三条曲线,颜色和含义与(a)相同。

在两个子图中,横轴表示使用的数据百分比(从0%到100%),纵轴表示Spearman秩相关系数(从15到75)。Spearman秩相关系数是一种统计度量,用于评估两个变量之间的单调关系,值越高表示模型性能越好。

从图中可以看出:

  • 在两个数据集上,随着训练数据的增加,所有模型的性能都有所提高。
  • 在DE-Gur350数据集上,红色曲线(sigsq)的性能最好,其次是黄色曲线,最后是蓝色曲线。
  • 在En-RW数据集上,红色曲线(sigsq)的性能同样最好,但黄色和蓝色曲线的性能差距较小。

图例位于每个子图的右侧,帮助区分不同的曲线。图下方的说明文字解释了实验设置:使用不同规模的数据集来训练模型,并在维基百科的完整数据集的一个分数上进行训练。

7、引言分析

(1)翻译

学习词的连续表示在自然语言处理中有着悠久的历史(Rumelhart et al., 1988)。这些表示通常通过使用共现统计从大型未标记语料库中得出(Deerwester et al., 1990; Schütze, 1992; Lund and Burgess, 1996)。大量工作,被称为分布式语义学,已经研究了这些方法的性质(Turney et al., 2010; Baroni and Lenci, 2010)。在神经网络社区,Collobert 和 Weston(2008)提出使用前馈神经网络学习词嵌入,通过基于左右两侧的两个词预测一个词。最近,Mikolov 等人(2013b)提出了简单的对数双线性模型,以高效地在非常大的语料库上学习词的连续表示。

这些技术中的大多数通过一个不同的向量表示词汇表中的每个词,而没有参数共享。特别是,它们忽略了词的内部结构,这对于形态丰富的语言(如土耳其语或芬兰语)来说是一个重要的限制。例如,在法语或西班牙语中,大多数动词有四十多种不同的屈折形式,而芬兰语有十五种名词格。这些语言包含许多在训练语料库中很少出现(或根本不出现)的词形,使得学习好的词表示变得困难。因为许多词形遵循规则,所以可以通过使用字符级信息来改善形态丰富的语言的向量表示。

在本文中,我们提出学习字符n-gram的表示,并将其作为n-gram向量的和来表示词。我们的主要贡献是引入了连续skipgram模型(Mikolov et al., 2013b)的扩展,该模型考虑了子词信息。我们在展示不同形态的九种语言上评估了这个模型,展示了我们方法的好处。

(2)分析

  1. 背景介绍

    • 引言部分首先介绍了词的连续表示在自然语言处理中的重要性和历史背景。
    • 提到了分布式语义学和早期的词嵌入方法,如Collobert和Weston(2008)以及Mikolov等人(2013b)的工作。
  2. 现有方法的局限性

    • 现有方法通常通过为每个词分配一个独立的向量来表示词,忽略了词的内部结构。
    • 这种表示方法在处理形态丰富的语言时存在局限性,因为这些语言中存在大量的词形变化,而这些变化在训练数据中可能很少出现。
  3. 提出的解决方案

    • 作者提出了一种新的方法,通过学习字符n-gram的表示,并将其作为n-gram向量的和来表示词。
    • 这种方法考虑了子词信息,可以更好地处理形态丰富的语言。
  4. 研究贡献

    • 作者的主要贡献是引入了连续skipgram模型的扩展,该模型考虑了子词信息。
    • 作者在九种不同的语言上评估了这个模型,展示了其在处理形态丰富的语言时的优势。
  5. 研究意义

    • 通过引入子词信息,作者的方法可以更好地处理形态丰富的语言,这对于自然语言处理中的许多任务(如词相似性、类比任务等)具有重要意义。
    • 开源模型实现也有助于促进未来在子词表示学习方面的研究。

8、标题结构

  1. Enriching Word Vectors with Subword Information - 用子词信息丰富词向量
  2. Abstract - 摘要
  3. 1 Introduction - 1 引言
  4. 2 Related work - 2 相关工作
  5. 3 Model - 3 模型
    • 3.1 General model - 3.1 通用模型
    • 3.2 Subword model - 3.2 子词模型
  6. 4 Experimental setup - 4 实验设置
    • 4.1 Baseline - 4.1 基线
    • 4.2 Optimization - 4.2 优化
    • 4.3 Implementation details - 4.3 实现细节
    • 4.4 Datasets - 4.4 数据集
  7. 5 Results - 5 结果
    • 5.1 Human similarity judgement - 5.1 人类相似性判断
    • 5.2 Word analogy tasks - 5.2 词类比任务
    • 5.3 Comparison with morphological representations - 5.3 与形态学表示的比较
    • 5.4 Effect of the size of the training data - 5.4 训练数据规模的影响
    • 5.5 Effect of the size of n-grams - 5.5 n-gram大小的影响
    • 5.6 Language modeling - 5.6 语言建模
  8. 6 Qualitative analysis - 6 定性分析
    • 6.1 Nearest neighbors - 6.1 最近邻
    • 6.2 Character n-grams and morphemes - 6.2 字符n-gram和词素
    • 6.3 Word similarity for OOV words - 6.3 未见词的词相似性
  9. 7 Conclusion - 7 结论
  10. Acknowledgements - 致谢
  11. References - 参考文献

9、参考文献

  1. Andrei Alexandrescu and Katrin Kirchhoff. 2006. Factored neural language models. In Proc. NAACL.
    安德烈·亚历山德雷斯库和卡特琳·基尔霍夫。2006年。分解神经语言模型。载于北美计算语言学协会会议论文集。

  2. Miguel Ballesteros, Chris Dyer, and Noah A. Smith. 2015. Improved transition-based parsing by modeling characters instead of words with LSTMs. In Proc. EMNLP.
    米格尔·巴列斯特罗斯,克里斯·戴尔和诺亚·A·史密斯。2015年。通过用LSTM对字符而非单词进行建模来改进基于转换的解析。载于自然语言处理经验方法会议论文集。

  3. Marco Baroni and Alessandro Lenci. 2010. Distributional memory: A general framework for corpus-based semantics. Computational Linguistics, 36(4):673– 721.
    马可·巴罗尼和亚历山德罗·伦奇。2010年。分布式记忆:基于语料库的语义的一般框架。计算语言学,36(4):673–721。

  4. Giacomo Berardi, Andrea Esuli, and Diego Marcheggiani. 2015. Word embeddings go to Italy: a comparison of models and training datasets. Italian Information Retrieval Workshop.
    贾科莫·贝拉迪,安德烈·埃苏利和迭戈·马尔凯贾尼。2015年。词嵌入进入意大利:模型和训练数据集的比较。意大利信息检索研讨会。

  5. Piotr Bojanowski, Armand Joulin, and Tomáš Mikolov. 2015. Alternative structures for character-level RNNs. In Proc. ICLR.
    彼得·博扬诺夫斯基,阿曼德·朱林和托马什·米科洛夫。2015年。字符级RNN的替代结构。载于国际学习表示会议论文集。

  6. Jan A. Botha and Phil Blunsom. 2014. Compositional morphology for word representations and language modelling. In Proc. ICML.
    扬·A·博塔和菲尔·布伦索姆。2014年。用于词表示和语言建模的组合形态学。载于国际机器学习会议论文集。

  7. Xinxiong Chen, Lei Xu, Zhiyuan Liu, Maosong Sun, and Huanbo Luan. 2015. Joint learning of character and word embeddings. In Proc. IJCAI.
    陈新雄,徐磊,刘志远,孙茂松和栾欢波。2015年。字符和词嵌入的联合学习。载于国际人工智能联合会议论文集。

  8. Grzegorz Chrupała. 2014. Normalizing tweets with edit scripts and recurrent neural embeddings. In Proc. ACL.
    格热戈日·赫鲁帕拉。2014年。使用编辑脚本和循环神经嵌入对推文进行规范化。载于计算语言学协会会议论文集。

  9. Ronan Collobert and Jason Weston. 2008. A unified architecture for natural language processing: Deep neural networks with multitask learning. In Proc. ICML.
    罗南·科洛贝尔和杰森·韦斯顿。2008年。自然语言处理的统一架构:具有多任务学习的深度神经网络。载于国际机器学习会议论文集。

  10. Ryan Cotterell and Hinrich Schütze. 2015. Morphological word-embeddings. In Proc. NAACL.
    瑞安·科特雷尔和欣里希·舒尔策。2015年。形态学词嵌入。载于北美计算语言学协会会议论文集。

  11. Qing Cui, Bin Gao, Jiang Bian, Siyu Qiu, Hanjun Dai, and Tie-Yan Liu. 2015. KNET: A general framework for learning word embedding using morphological knowledge. ACM Transactions on Information Systems, 34(1):4:1–4:25.
    崔青,高斌,边江,邱思宇,戴汉军和刘铁岩。2015年。KNET:使用形态学知识学习词嵌入的通用框架。信息系统学报,34(1):4:1–4:25。

  12. Scott Deerwester, Susan T. Dumais, George W. Furnas, Thomas K. Landauer, and Richard Harshman. 1990. Indexing by latent semantic analysis. Journal of the American Society for Information Science, 41(6):391– 407.
    斯科特·迪尔沃斯特,苏珊·杜迈斯,乔治·弗纳斯,托马斯·兰道尔和理查德·哈什曼。1990年。通过潜在语义分析进行索引。美国信息科学学会学报,41(6):391–407。

  13. Cicero Nogueira dos Santos and Maira Gatti. 2014. Deep convolutional neural networks for sentiment analysis of short texts. In Proc. COLING.
    西塞罗·努热拉·多斯桑托斯和迈拉·加蒂。2014年。用于短文本情感分析的深度卷积神经网络。载于计算语言学国际会议论文集。

  14. Cicero Nogueira dos Santos and Bianca Zadrozny. 2014. Learning character-level representations for part-of-speech tagging. In Proc. ICML.
    西塞罗·努热拉·多斯桑托斯和比安卡·扎德罗兹尼。2014年。学习字符级表示以进行词性标注。载于国际机器学习会议论文集。

  15. Lev Finkelstein, Evgeniy Gabrilovich, Yossi Matias, Ehud Rivlin, Zach Solan, Gadi Wolfman, and Eytan Ruppin. 2001. Placing search in context: The concept revisited. In Proc. WWW.
    列夫·芬克尔斯坦,叶夫根尼·加布里洛维奇,约西·马蒂亚斯,埃胡德·里夫林,扎克·索兰,加迪·沃尔夫曼和艾坦·鲁平。2001年。在上下文中放置搜索:概念再探。载于万维网会议论文集。

  16. Alex Graves. 2013. Generating sequences with recurrent neural networks. arXiv preprint arXiv:1308.0850.
    亚历克斯·格雷夫斯。2013年。使用循环神经网络生成序列。arXiv预印本 arXiv:1308.0850。

  17. Iryna Gurevych. 2005. Using the structure of a conceptual network in computing semantic relatedness. In Proc. IJCNLP.
    伊琳娜·古雷维奇。2005年。在计算语义相关性中使用概念网络的结构。载于国际计算自然语言处理会议论文集。

  18. Zellig S Harris. 1954. Distributional structure. Word, 10(2-3):146–162.
    泽利格·S·哈里斯。1954年。分布式结构。词语,10(2-3):146–162。

  19. Samer Hassan and Rada Mihalcea. 2009. Cross-lingual semantic relatedness using encyclopedic knowledge. In Proc. EMNLP.
    萨默·哈桑和拉达·米哈尔切亚。2009年。使用百科全书知识进行跨语言语义相关性。载于自然语言处理经验方法会议论文集。

  20. Colette Joubarne and Diana Inkpen. 2011. Comparison of semantic similarity for different languages using the google n-gram corpus and second-order co-occurrence measures. In Proc. Canadian Conference on Artificial Intelligence.
    科莱特·朱巴恩和戴安娜·因克潘。2011年。使用谷歌n-gram语料库和二阶共现度量比较不同语言的语义相似性。载于加拿大人工智能会议论文集。

  21. Yoon Kim, Yacine Jernite, David Sontag, and Alexander M Rush. 2016. Character-aware neural language models. In Proc. AAAI.
    尹金,亚辛·杰尼特,大卫·索塔格,亚历山大·M·拉什。2016年。字符感知神经语言模型。载于美国人工智能协会会议论文集。

  22. Maximilian Köper, Christian Scheible, and Sabine Schulte im Walde. 2015. Multilingual reliability and “semantic” structure of continuous word spaces. Proc. IWCS 2015.
    马克西米利安·克佩尔,克里斯蒂安·谢布尔,萨宾·舒尔特·伊姆·瓦尔德。2015年。连续词空间的多语言可靠性和“语义”结构。载于国际词义计算研讨会论文集。

  23. Angeliki Lazaridou, Marco Marelli, Roberto Zamparelli, and Marco Baroni. 2013. Compositionally derived representations of morphologically complex words in distributional semantics. In Proc. ACL.
    安杰莉基·拉扎里杜,马可·马雷利,罗伯托·赞帕雷利,马可·巴罗尼。2013年。分布式语义中形态复杂词的组合派生表示。载于计算语言学协会会议论文集。

  24. Wang Ling, Chris Dyer, Alan W. Black, Isabel Trancoso, Ramon Fermandez, Silvio Amir, Luis Marujo, and Tiago Luis. 2015. Finding function in form: Compositional character models for open vocabulary word representation. In Proc. EMNLP.
    王凌,克里斯·戴尔,艾伦·W·布莱克,伊莎贝尔·特兰科索,拉蒙·费尔南德斯,西尔维奥·阿米尔,路易斯·马鲁霍,蒂亚戈·路易斯。2015年。在形式中寻找功能:开放词汇词表示的组合字符模型。载于自然语言处理经验方法会议论文集。

  25. Kevin Lund and Curt Burgess. 1996. Producing high-dimensional semantic spaces from lexical co-occurrence. Behavior Research Methods, Instruments, & Computers, 28(2):203–208.
    凯文·伦德和科特·伯吉斯。1996年。从词汇共现产生高维语义空间。行为研究方法、仪器与计算机,28(2):203–208。

  26. Minh-Thang Luong and Christopher D. Manning. 2016. Achieving open vocabulary neural machine translation with hybrid word-character models. In Proc. ACL.
    明堂·卢翁和克里斯托弗·D·曼宁。2016年。使用混合词字符模型实现开放词汇神经机器翻译。载于计算语言学协会会议论文集。

  27. Thang Luong, Richard Socher, and Christopher D. Manning. 2013. Better word representations with recursive neural networks for morphology. In Proc. CoNLL.
    堂·卢翁,理查德·索彻和克里斯托弗·D·曼宁。2013年。使用形态学递归神经网络获得更好的词表示。载于自然语言处理共指决议付会议论文集。

  28. Tomáš Mikolov, Ilya Sutskever, Anoop Deoras, Hai-Son Le, Stefan Kombrink, and Jan ˇCernocký. 2012. Subword language modeling with neural networks. Technical report, Faculty of Information Technology, Brno University of Technology.
    托马什·米科洛夫,伊利亚·苏茨克维尔,阿诺普·德奥拉斯,海森·勒,斯特凡·科姆布林克,扬·切诺科。2012年。使用神经网络进行子词语言建模。技术报告,布尔诺理工大学信息技术学院。

  29. Tomáš Mikolov, Kai Chen, Greg D. Corrado, and Jeffrey Dean. 2013a. Efficient estimation of word representations in vector space. arXiv preprint arXiv:1301.3781.
    托马什·米科洛夫,凯·陈,格雷格·D·科拉多,杰弗里·迪恩。2013年。向量空间中词表示的有效估计。arXiv预印本 arXiv:1301.3781。

  30. Tomáš Mikolov, Ilya Sutskever, Kai Chen, Greg S. Corrado, and Jeff Dean. 2013b. Distributed representations of words and phrases and their compositionality. In Adv. NIPS.
    托马什·米科洛夫,伊利亚·苏茨克维尔,凯·陈,格雷格·S·科拉多,杰夫·迪恩。2013年。词和短语的分布式表示及其组合性。载于神经信息处理系统进展。

三、重点阅读(second)

四、深入理解(third)

五、技术复现(forth)

相关文章:

LiteratureReading:[2016] Enriching Word Vectors with Subword Information

文章目录 一、文献简明(zero)二、快速预览(first)1、标题分析2、作者介绍3、引用数4、摘要分析(1)翻译(2)分析 5、总结分析(1)翻译(2)…...

JavaScript 实现导出内容自动居中:从原理到实践

引言 在前端开发中,我们经常会遇到需要将页面上的内容导出为文件(如 PDF、Excel 等)的需求。而在导出的内容中,让元素自动居中显示可以提升内容的美观度和专业性。本文将围绕 JavaScript 实现导出内容自动居中展开,详…...

Docker 速通(总结)

Docker 命令 镜像 docker build: 从 Dockerfile 构建镜像。docker pull: 从 Docker Hub 或其他注册表拉取镜像。docker push: 将镜像推送到 Docker Hub 或其他注册表。docker images: 列出本地镜像。docker rmi: 删除本地镜像。 容器 docker run: 创建并启动一个新的容器。…...

人工智能之数学基础:矩阵的降维

本文重点 在现实世界中,我们经常会遇到高维数据。例如,图像数据通常具有很高的维度,每个像素点都可以看作是一个维度。高维数据不仅会带来计算和存储上的困难,还可能会导致 “维数灾难”,即随着维度的增加,数据的稀疏性和噪声也会增加,从而影响数据分析的效果。因此,我…...

Object 转 JSONObject 并排除null和““字符串

public static JSONObject objToJSONObject(Object obj) throws Exception{//创建一个 HashMap 对象 map&#xff0c;用于存储对象的属性名和属性值。//key 是属性名&#xff08;String 类型&#xff09;&#xff0c;value 是属性值&#xff08;Object 类型&#xff09;Map<…...

mysql5.7主从部署(docker-compose版本)

mysql5.7主从部署&#xff08;docker-compose版本&#xff09; 1:docker-compose-test.yml 文件信息 version: 3services:# MySQL 数据库mysql-master:image: mysql:5.7container_name: mysql-masterenvironment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: nacosports:- 23…...

Java+Html实现前后端客服聊天

文章目录 核心组件网络通信层事件调度层服务编排层 Spring实现客服聊天技术方案对比WebScoket建立连接用户上线实现指定用户私聊群聊离线 SpringBootWebSocketHtmljQuery实现客服聊天1. 目录结构2. 配置类3. 实体类、service、controller4. ChatWebSocketHandler消息处理5.前端…...

实用工具-Another Redis Desktop Manager介绍

GitHub&#xff1a;https://github.com/qishibo/AnotherRedisDesktopManager/releases Gitee&#xff1a;AnotherRedisDesktopManager 发行版 - Gitee.com Another Redis Desktop Manager 是一款免费的 Redis 可视化管理工具&#xff0c;具有以下特点和功能&#xff1a; 特…...

MySQL如何存储表情符号?

存储表情符号 默认mysql的字符集是utf8&#xff0c;排序规则为 utf8_general_ci INSERT INTO department (name) VALUES (&#x1f604;)在存储表情的时候会报 1366 - Incorrect string value: \xF0\x9F\x98\x84 for column name at row 1, Time: 0.007000s 这时需要修改字符…...

解锁 DeepSeek 安全接入、稳定运行新路径

背景 目前&#xff0c;和 DeepSeek 相关的需求总结为两类&#xff1a; 因官方 APP/Web 服务经常无法返回结果&#xff0c;各类云厂商、硬件或软件企业提供满血版或蒸馏版的 API 算力服务&#xff0c;还有不少基于开源家用计算和存储设备的本地部署方案&#xff0c;以分担 De…...

Spring Boot 配置属性 (Configuration Properties) 详解:优雅地管理应用配置

引言 Spring Boot 的 配置属性 (Configuration Properties) 是其另一个核心特性&#xff0c;它提供了一种 类型安全、结构化 的方式来管理应用的配置信息。 与自动配置相辅相成&#xff0c;配置属性允许开发者 以声明式的方式将外部配置 (如 properties 文件、YAML 文件、环境…...

【LangChain入门 1】安装

文章目录 一、安装LangChain二、安装Ollama三、Ollama下载DeepSeekR1-7b模型 本学习系列以Ollama推理后端作为大语言模型&#xff0c;展开对LangChain框架的入门学习。 模型采用deepseek-r1:7b。 毕竟是免费开源的&#xff0c;下载过程耐心等待即可。 如果可以连接外网&#x…...

HTML中required与aria required区别

在HTML中&#xff0c;required和aria-required"true"都用于标识表单字段为必填项&#xff0c;但它们的作用和适用场景有所不同&#xff1a; 1. required 属性 • 功能属性&#xff1a;属于HTML5原生属性&#xff0c;直接控制表单验证逻辑。 • 作用&#xff1a; • …...

IvorySQL 增量备份与合并增量备份功能解析

1. 概述 IvorySQL v4 引入了块级增量备份和增量备份合并功能&#xff0c;旨在优化数据库备份与恢复流程。通过 pg_basebackup 工具支持增量备份&#xff0c;显著降低了存储需求和备份时间。同时&#xff0c;pg_combinebackup 工具能够将多个增量备份合并为单个完整备份&#x…...

【css酷炫效果】纯CSS实现故障文字特效

【css酷炫效果】纯CSS实现故障文字特效 缘创作背景html结构css样式完整代码基础版进阶版(3D效果) 效果图 想直接拿走的老板&#xff0c;链接放在这里&#xff1a;https://download.csdn.net/download/u011561335/90492053 缘 创作随缘&#xff0c;不定时更新。 创作背景 刚…...

SpringSecurity配置(自定义认证过滤器)

文末有本篇文章的项目源码文件可供下载学习 在这个案例中,我们已经实现了自定义登录URI的操作,登录成功之后,我们再次访问后端中的API的时候要在请求头中携带token,此时的token是jwt字符串,我们需要将该jwt字符串进行解析,查看解析后的User对象是否处于登录状态.登录状态下,将…...

设计模式(行为型)-备忘录模式

目录 定义 类图 角色 角色详解 &#xff08;一&#xff09;发起人角色&#xff08;Originator&#xff09;​ &#xff08;二&#xff09;备忘录角色&#xff08;Memento&#xff09;​ &#xff08;三&#xff09;备忘录管理员角色&#xff08;Caretaker&#xff09;​…...

WebAssembly 技术在逆向爬虫中的应用研究

一、引言 1.1 Web 技术发展与性能需求 在当今数字化浪潮中,Web 应用已成为人们生活和工作中不可或缺的一部分。从简单的静态网页到功能复杂的单页面应用(SPA),Web 技术的发展日新月异。随着用户对 Web 应用交互性、实时性和复杂性的要求不断提高,传统的 Web 开发技术面临着…...

Advanced Intelligent Systems 软体机器手助力截肢者玩转鼠标

随着科技的不断进步&#xff0c;假肢技术在改善截肢者生活质量方面取得了显著成就。然而&#xff0c;截肢群体在就业方面仍面临巨大困难&#xff0c;适龄截肢群体的就业率仅为健全群体的一半。现有的肌电控制假肢手在与计算机交互时存在诸多挑战&#xff0c;特别是截肢者在使用…...

pyhton中 字典 元组 列表 集合之间的互相转换

在 Python 中,集合(set)、字典(dict)、元组(tuple)、列表(list)和序列(如字符串 str)之间可以互相转换。以下是它们之间转换的详细方法,涵盖从基础到高级的用法。 1. 列表(list)与其他类型的转换 1.1 列表 → 集合 my_list = [1, 2, 2, 3...

每日Attention学习27——Patch-based Graph Reasoning

模块出处 [NC 25] [link] Graph-based context learning network for infrared small target detection 模块名称 Patch-based Graph Reasoning (PGR) 模块结构 模块特点 使用图结构更好的捕捉特征的全局上下文将图结构与特征切片(Patching)相结合&#xff0c;从而促进全局/…...

理一理Mysql日期

在 MySQL 数据库中&#xff0c;关于日期和时间的类型主要有以下几种&#xff1a; 1. **DATE**: 仅存储日期部分&#xff0c;格式为 YYYY-MM-DD&#xff0c;例如 2023-10-31。 2. **TIME**: 仅存储时间部分&#xff0c;格式为 HH:MM:SS&#xff0c;例如 14:30:00。 3. **DATE…...

数据结构:栈的应用举例——括号匹配的检验

2. 括号匹配的检验 如果表达式中包含括号&#xff0c;当程序中含有这类表达式时&#xff0c;在代码编译过程中&#xff0c;必然会检查括号是否匹配&#xff0c;这是一项必需的语法检查环节。 &#xff08;1&#xff09;迭代版 此处假设表达式中只含有左、右圆括号&#xff0…...

DeepSeek成功的秘诀:谈谈DeepSeek的算法创新

李升伟 整理 DeepSeek 是一家专注于人工智能技术研发的公司&#xff0c;其算法创新在业界引起了广泛关注。以下是 DeepSeek 使用的核心算法及其特点的详细解析&#xff1a; 1. 原生稀疏注意力&#xff08;NSA&#xff09;算法 DeepSeek 提出的 原生稀疏注意力&#xff08;Na…...

初始OpenCV

OpenCV 是一个功能强大、应用广泛的计算机视觉库,它为开发人员提供了丰富的工具和算法,可以帮助他们快速构建各种视觉应用。随着计算机视觉技术的不断发展,OpenCV 也将会继续发挥重要的作用。 OpenCV 提供了大量的计算机视觉算法和图像处理工具,广泛应用于图像和视频的处理…...

深圳南柯电子|医疗设备EMC检测测试整改:保障患者安全的第一步

在医疗设备领域&#xff0c;电磁兼容性&#xff08;EMC&#xff09;是确保设备安全、有效运行的关键指标。随着医疗技术的飞速发展&#xff0c;医疗设备日益复杂&#xff0c;其电磁环境也愈发复杂多变。EMC检测测试及整改因此成为医疗设备研发、生产、销售过程中不可或缺的一环…...

【笔记】计算机网络——数据链路层

概述 链路是从一个结点到相邻结点的物理路线&#xff0c;数据链路则是在链路的基础上增加了一些必要的硬件和软件实现 数据链路层位于物理层和网络层之间&#xff0c;它的核心任务是在直接相连的节点&#xff08;如相邻的交换机&#xff0c;路由器&#xff09;之间提供可靠且…...

Rust语言介绍和猜数字游戏的实现

文章目录 Rust语言介绍和猜数字游戏的实现cargo是什么使用Rust编写猜数字 Rust语言介绍和猜数字游戏的实现 Rust语言是一种系统编程语言&#xff0c;核心强调安全性、并发性以及高性能&#xff0c;由类似于C/C的底层控制能力&#xff0c;性能也非常接近&#xff0c;Rust有一些…...

STM32-汇编

学习arm汇编的主要目的是为了编写arm启动代码&#xff0c;启动代码启动以后&#xff0c;引导程序到c语言环境下运行。换句话说启动代码的目的是为了在处理器复位以后搭建c语言最基本的需求。因此启动代码的主要任务有&#xff1a; 初始化异常向量表&#xff1b; 初始化各工作模…...

利用通义灵码AI在VS Code中快速开发扫雷游戏:Qwen2.5-Max模型的应用实例

引言 随着人工智能技术的不断进步&#xff0c;开发过程中的自动化程度也在逐步提高。阿里云推出的通义灵码AI程序员&#xff0c;作为一款创新型的智能编程助手&#xff0c;现已全面上线并兼容VS Code、JetBrains IDEs等多种开发环境。本文将介绍如何利用最新的Qwen2.5-Max模型…...