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

【跟着ChatGPT学深度学习】ChatGPT带我入门NLP


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

【跟着ChatGPT学深度学习】系列

  • 第零弹——ChatGPT介绍以及一些使用案例
  • 第一弹——ChatGPT带我入门深度学习
  • 第二弹——ChatGPT带我入门NLP
  • 第三弹——ChatGPT教我文本分类
  • 番外篇——ChatGPT教我谈恋爱

【跟着ChatGPT学深度学习】ChatGPT带我入门NLP

ChatGPT
【跟着ChatGPT学深度学习】第二弹,入门NLP。本次ChatGPT老师共教我六个知识点,分别是NLP基础、NLP细分方向和学者、NLP学习指南、NLP学习计划、NLP学习资源和NLP相关科技企业等。最后,ChatGPT老师还教我NLP的就业前景,为了给我找到一份理想的NLP岗位,还给了我很多建议。

以下内容均是根据ChatGPT生成的内容整理归纳得到,所有链接均为有效链接(无效链接已经被我提前删除)。

1. 什么是自然语言处理

自然语言处理(Natural Language Processing, NLP)是一种交叉学科的领域,涉及计算机科学、语言学、数学、统计学、心理学等多个学科。NLP的目标是实现计算机对人类自然语言的理解和生成,使得计算机能够像人类一样进行自然语言的输入、处理、输出。

NLP主要涉及以下几个方面:

  • 自然语言理解:包括词法分析、句法分析、语义分析、语篇分析等技术,用于分析和理解自然语言的含义。
  • 自然语言生成:包括词汇选择、句法生成、语义生成等技术,用于将计算机生成的语言转换成自然语言。
  • 机器翻译:将一种语言翻译成另一种语言,是NLP中的一个重要应用领域。
  • 信息抽取:从大量的非结构化数据中提取有用的信息,包括命名实体识别、关系抽取、事件抽取等技术。
  • 文本分类:将文本按照事先定义的类别进行分类,是NLP中的另一个重要应用领域,包括情感分析、主题分类、垃圾邮件识别等。

NLP领域还涉及到语音识别、对话系统、问答系统等多个方向,目前正在快速发展中。

总之,NLP是一种实现计算机对自然语言理解和生成的技术和方法,应用广泛,具有广阔的发展前景。

2. 自然语言处理细分方向和知名学者

2.1 细分方向

当下,NLP领域各个细分领域都有着广阔的发展前景,以下是各个细分领域的简要介绍和发展前景:

  • 语言模型:语言模型是NLP领域中的一个核心问题,它在自然语言生成、文本分类、语音识别等任务中都有着重要的作用。未来,语言模型的发展方向将集中于提高模型的自适应性和可解释性,以及将其应用于更多的领域和场景中。
  • 文本分类和情感分析:文本分类和情感分析是NLP领域中最为成熟和广泛应用的问题之一。未来,这两个方向的发展将集中于深度学习、多模态数据分析等技术的应用和优化。
  • 自然语言生成:自然语言生成是NLP领域中的一个热门方向,它的应用场景涵盖了智能客服、智能问答、机器翻译、自动摘要等领域。未来,自然语言生成的发展方向将集中于提高生成模型的准确度和鲁棒性,以及将其应用于更多的领域和场景中。
  • 信息抽取和实体识别:信息抽取和实体识别是NLP领域中的一个重要方向,它在海量数据的处理和应用方面有着广泛的应用。未来,信息抽取和实体识别的发展方向将集中于多语言支持、领域自适应等技术的应用和优化。
  • 问答系统:问答系统是NLP领域中的一个热门方向,它在智能客服、智能助手、智能家居等领域有着广泛的应用。未来,问答系统的发展方向将集中于结合多模态数据、融合知识图谱等技术的应用和优化。
  • 机器翻译:机器翻译是NLP领域中的一个经典问题,它的应用范围涵盖了国际贸易、科技交流等多个领域。未来,机器翻译的发展方向将集中于结合深度学习、多语言翻译等技术的应用和优化。
  • 对话系统:对话系统是NLP领域中的一个重要方向,它在智能客服、智能助手等领域有着广泛的应用。未来,对话系统的发展方向将集中于提高对话系统的交互效率、自适应性和智能化程度,同时还将更多地考虑对话系统的社交性和情感化。
  • 可解释性NLP:可解释性NLP是NLP领域中的一个新兴方向,它的目标是使NLP模型更容易理解和解释。未来,可解释性NLP的发展方向将集中于提高NLP模型的可解释性和透明度,以及在更多的应用场景中应用可解释性NLP技术。

总之,随着人工智能和自然语言处理技术的不断发展,NLP领域将会有更广阔的应用前景和发展空间。各个细分领域都将迎来更多的挑战和机遇,需要不断地开展研究和创新,以推动整个领域的发展。

2.2 知名学者

词汇语义学:

  • Martha Palmer(美国伊利诺伊大学厄巴纳-香槟分校)
  • Roberto Navigli(意大利罗马·拉·萨佩恩扎大学)
  • Chris Manning(美国斯坦福大学)

句法分析:

  • Daniel Jurafsky(美国斯坦福大学)
  • Michael Collins(美国哥伦比亚大学)
  • Jason Eisner(美国约翰霍普金斯大学)

语义角色标注:

  • Martha Palmer(美国伊利诺伊大学厄巴纳-香槟分校)
  • Luke Zettlemoyer(美国华盛顿大学)
  • Dan Roth(美国伊利诺伊大学厄巴纳-香槟分校)

语言生成:

  • Kathleen McKeown(美国哥伦比亚大学)
  • Marilyn Walker(美国加州大学圣迭戈分校)
  • Ani Nenkova(美国宾夕法尼亚大学)

机器翻译:

  • Philipp Koehn(捷克共和国查理大学)
  • Chris Callison-Burch(美国宾夕法尼亚大学)
  • Kevin Knight(美国南加州大学)

问答系统:

  • Dan Jurafsky(美国斯坦福大学)
  • Dan Roth(美国伊利诺伊大学厄巴纳-香槟分校)
  • Fernando Pereira(美国谷歌)

文本分类:

  • Thorsten Joachims(美国康奈尔大学)
  • Andrew McCallum(美国马萨诸塞大学)
  • David Blei(美国哥伦比亚大学)

文本聚类:

  • David Blei(美国哥伦比亚大学)
  • Andrew McCallum(美国马萨诸塞大学)
  • Jordan Boyd-Graber(美国马里兰大学)

情感分析:

  • Bing Liu(美国伊利诺伊大学芝加哥分校)
  • Claire Cardie(美国康奈尔大学)
  • Janyce Wiebe(美国匹兹堡大学)

命名实体识别:

  • Dan Jurafsky(美国斯坦福大学)
  • Christopher Manning(美国斯坦福大学)
  • Ralph Grishman(美国纽约大学)

这些教授和研究者在各自的领域这些教授和研究者在各自的领域都有着广泛的研究经验和出色的学术成就,他们的研究成果对于NLP领域的发展有着重要的贡献。如果你对某个细分领域特别感兴趣,建议多关注这些领域的著名教授和研究者的学术成果和最新研究进展,可以从中获得更深入的了解和启发。

3. 自然语言处理学习指南

  • 学习基本概念和术语:NLP涉及许多专业术语和概念,包括分词、词性标注、句法分析、语义分析、情感分析等。学习这些基本概念可以帮助你更好地理解NLP技术。
  • 掌握编程技能:NLP技术需要使用编程语言来实现,常用的编程语言包括Python、Java、C++等。学习至少一种编程语言,并熟悉常用的NLP库和工具,如NLTK、SpaCy、StanfordNLP等。
  • 学习机器学习和深度学习:NLP技术往往使用机器学习和深度学习算法进行模型训练和预测。因此,学习机器学习和深度学习的基本原理和算法是非常重要的。
  • 实践项目:学习NLP最好的方式是通过实践项目来加深对NLP技术的理解和掌握。你可以尝试实现一些简单的NLP任务,如文本分类、情感分析、命名实体识别等。
  • 参与社区和研究:加入NLP社区,参与讨论和交流,并关注最新的研究进展和技术趋势。这将帮助你保持对NLP技术的更新和提高自己的技能。

4. 自然语言处理学习计划

4.1 入门阶段

1. 学习编程基础
如果你没有编程经验,那么首先需要学习一门编程语言,建议选择Python。学习编程基础知识,如数据类型、循环、条件语句、函数等。建议选择在线课程,如Coursera、edX、Udemy等。

2. 掌握Python
Python是NLP领域最流行的编程语言,因此需要深入学习Python。建议学习Python的基础语法和常用的Python库,如NumPy、Pandas、Matplotlib等。可以使用Python相关书籍或在线资源。

3. 学习NLP基础
了解NLP的基本概念和常用的NLP任务,如文本预处理、分词、词性标注、句法分析、语义分析、情感分析、机器翻译等。建议阅读经典的NLP教材或在线资源,如《Speech and Language Processing》、《Natural Language Processing with Python》、Coursera上的自然语言处理课程等。

4. 实践项目
尝试实现一些简单的NLP任务,如文本分类、情感分析、命名实体识别等。可以使用NLTK、SpaCy等NLP库。可以参考一些公开的NLP项目或竞赛,如Kaggle上的NLP竞赛。

4.2 进阶阶段

1. 学习深度学习
深度学习在NLP领域中得到了广泛应用,建议学习深度学习的基本原理和常用的深度学习算法,如卷积神经网络、循环神经网络、注意力机制等。可以参考斯坦福大学的深度学习课程,或使用在线资源和书籍。

2. 掌握深度学习库和工具
掌握常用的深度学习库和工具,如TensorFlow、PyTorch、Keras等。学习如何使用这些工具来实现NLP任务,如文本分类、机器翻译、情感分析等。可以使用深度学习教程和公开的深度学习项目。

3. 学习NLP进阶技术
学习NLP的进阶技术,如预训练语言模型、自动摘要、问答系统等。可以参考最新的NLP研究论文和学术会议,如ACL、EMNLP、NAACL等。

4. 实践项目
实现一些复杂的NLP任务,如机器翻译、自动摘要、问答系统等。可以参考一些公开的NLP项目或竞赛,如WMT、DREAM、SQuAD等。

4.3 高级阶段

1. 学习NLP前沿技术
了解NLP领域最新的研究和前沿技术,如迁移学习、多语言NLP、跨模态NLP、多任务学习等。可以参加NLP领域的学术会议,如ACL、EMNLP、NAACL等。

2. 深入研究NLP应用场景
深入研究NLP在不同领域的应用场景,如金融、医疗、社交网络等。可以参考实际应用案例和经验分享。

3. 实践研究项目
开展自己的NLP研究项目,可以是基础研究或应用研究。可以参加学术会议或投稿NLP相关期刊。

4. 参与开源项目
参与开源的NLP项目或贡献代码,可以积累实战经验和技术贡献。可以参考GitHub上的开源NLP项目。

总的来说,学习NLP需要系统性的学习和实践,同时需要关注领域最新的研究进展和应用场景。建议在学习过程中多实践、多交流、多思考,不断提高自己的技术水平和解决问题的能力。

5. 自然语言处理学习资源

5.1 课程资源

(1)入门阶段

自然语言处理综论(斯坦福大学课程):https://web.stanford.edu/~jurafsky/NLPCourseraSlides.html

深度学习自然语言处理笔记(斯坦福大学课程):http://cs224d.stanford.edu/lecture_notes/

自然语言处理教程(谷歌): https://developers.google.com/machine-learning/crash-course

自然语言处理基础(百度): https://aistudio.baidu.com/aistudio/course/introduce/16619

(2)进阶阶段

NLP with PyTorch(PyTorch官方教程): https://pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html

CS224n: Natural Language Processing with Deep Learning(斯坦福大学课程): http://web.stanford.edu/class/cs224n/

Dive into Deep Learning(李沐等人编写的深度学习教程):https://d2l.ai/

Advanced Natural Language Processing(多伦多大学课程):https://www.cs.toronto.edu/~rgrosse/courses/csc2541_2021/

5.2 实践资源

NLTK(自然语言工具包):http://www.nltk.org/

SpaCy(Python中的NLP工具):https://spacy.io/

Transformers(基于PyTorch和TensorFlow的NLP库):https://huggingface.co/transformers/

GPT-2(OpenAI的大规模语言模型):https://openai.com/blog/better-language-models/

TensorFlow官方NLP教程:https://www.tensorflow.org/text/tutorials

以上资源可以帮助你快速入门NLP,提高自己的技能水平,同时也可以作为你独立完成NLP项目的参考和工具库。

5.3 Github项目

好的,以下是一些学习NLP的github项目,按照细分领域分类:

词向量与语言模型:

  • word2vec:https://github.com/dav/word2vec
  • GloVe:https://github.com/stanfordnlp/GloVe
  • fastText:https://github.com/facebookresearch/fastText

信息抽取与文本分类:

  • scikit-learn:https://github.com/scikit-learn/scikit-learn
  • NLTK:https://github.com/nltk/nltk
  • spaCy:https://github.com/explosion/spaCy

机器翻译与文本生成:

  • OpenNMT:https://github.com/OpenNMT/OpenNMT
  • Seq2Seq:https://github.com/google/seq2seq
  • GPT-2:https://github.com/openai/gpt-2

对话系统与聊天机器人:

  • Rasa:https://github.com/RasaHQ/rasa
  • DeepPavlov:https://github.com/deepmipt/DeepPavlov
  • Microsoft XiaoIce:https://github.com/Microsoft/MSMARCO-Dialog-Sample

可解释性NLP:

  • Lime:https://github.com/marcotcr/lime
  • Skater:https://github.com/oracle/Skater
  • Captum:https://github.com/pytorch/captum

这些github项目覆盖了NLP领域的多个细分领域,包括词向量与语言模型、信息抽取与文本分类、机器翻译与文本生成、对话系统与聊天机器人以及可解释性NLP等方向,可以根据自己的兴趣选择相应的项目进行学习和实践。

5.4 论文资源

(1)初学者:

“A Primer on Neural Network Models for Natural Language Processing”,Younes,2017年,arXiv论文,介绍了NLP中常用的神经网络模型,适合初学者了解NLP的基础知识。

“Distributed Representations of Words and Phrases and their Compositionality”,Mikolov等人,2013年,NIPS论文,介绍了Word2Vec模型的基本原理和应用。

“GloVe: Global Vectors for Word Representation”,Pennington等人,2014年,EMNLP论文,介绍了一种基于全局词汇统计信息的词向量表示方法。

“A Structured Self-Attentive Sentence Embedding”,Lin等人,2017年,ICLR论文,介绍了一种基于自注意力机制的句子嵌入方法,能够对句子进行有效的表示和分类。

(2)进阶学习者:

“Convolutional Neural Networks for Sentence Classification”,Kim,2014年,EMNLP论文,介绍了一种基于卷积神经网络的文本分类方法,适合学习NLP中的文本分类任务。

“Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation”,Cho等人,2014年,EMNLP论文,介绍了一种基于循环神经网络的翻译模型,适合学习NLP中的机器翻译任务。

“Neural Machine Translation by Jointly Learning to Align and Translate”,Bahdanau等人,2015年,ICLR论文,介绍了一种基于注意力机制的神经机器翻译模型,适合学习NLP中的机器翻译任务。

“Hierarchical Attention Networks for Document Classification”,Yang等人,2016年,NAACL论文,介绍了一种基于层次注意力机制的文本分类方法,适合学习NLP中的文本分类任务。

(3)高级学习者:

“Attention is All You Need”,Vaswani等人,2017年,ACL论文,介绍了Transformer模型的基本思想和应用,适合学习NLP中的序列建模和自然语言生成任务。

“BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”,Devlin等人,2018年,NAACL论文,介绍了BERT预训练模型的设计和优化,适合学习NLP中的预训练模型和下游任务应用。

“XLNet: Generalized Autoregressive Pretraining for Language Understanding”,Yang等人,2019年,NeurIPS论文,介绍了一种新的自回归预训练方法,能够同时处理单向和双向语境信息,适合学习NLP中的预训练模型和下游任务应用。

“Unified Language Model Pre-training for Natural Language Understanding and Generation”,Dong等人,2020年,ACL论文,介绍了一种统一的语言模型预训练方法,能够同时处理自然语言理解和生成任务,适合学习NLP中的语言模型和多任务学习。

“Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer”,Raffel等人,2019年,arXiv论文,介绍了T5模型的设计和应用,能够将不同的NLP任务转化为文本到文本的问题,适合学习NLP中的迁移学习和文本生成任务。

5.5 其他资源

Coursera上的自然语言处理课程(Natural Language Processing),由斯坦福大学教授Dan Jurafsky和Christopher Manning主讲,是一门深入浅出的NLP课程,从基础的语言学概念开始,介绍了自然语言处理的各个方面,包括语言模型、文本分类、情感分析、机器翻译等。该课程也提供了Python实践项目,让学生能够在实践中巩固所学知识。

Udacity上的自然语言处理纳米学位课程(Natural Language Processing Nanodegree),由Georgia Tech教授和业界专家共同设计,提供了从入门到深入的NLP课程,涵盖了自然语言理解、生成、对话等方面。该课程也包括实践项目,让学生能够熟练掌握NLP技术并实践应用。

斯坦福大学的自然语言处理课程(CS224N),是一门面向高级学生和研究人员的NLP课程,涵盖了深度学习、序列模型、语言表示等最新的NLP技术。该课程的课件、作业和实验都可在网上获取,是一个很好的自学资源。

CMU的自然语言处理课程(11-711),由CMU教授和研究人员共同设计,是一门面向研究生和高级本科生的NLP课程,涵盖了语言学基础、统计语言模型、序列标注、文本分类、机器翻译等方面。该课程也提供了实践项目和综合设计项目,让学生能够深入掌握NLP技术并实践应用。

Oxford大学的自然语言处理课程(CS-ML-NLP),由Oxford大学教授和研究人员共同设计,是一门面向研究生和高级本科生的NLP课程,涵盖了自然语言理解、生成、对话等方面。该课程的课件、作业和实验也可在网上获取。

6. 自然语言处理相关科技企业

NLP领域已经涌现出很多知名的科技企业,以下是其中一些:

谷歌: 谷歌在NLP领域有着广泛的研究和应用,包括谷歌翻译、Google Assistant等。

亚马逊: 亚马逊在NLP领域有着广泛的应用,包括Alexa智能助手、Amazon Comprehend等。

微软: 微软在NLP领域有着广泛的研究和应用,包括微软小冰、Microsoft Language Understanding Intelligent Service等。

Facebook: Facebook在NLP领域也有着广泛的应用,包括Facebook Messenger自然语言处理、Facebook自然语言理解等。

OpenAI: OpenAI是一个人工智能研究机构,致力于推动AI的发展,其在NLP领域的研究和应用也很有名,包括GPT模型、BERT模型等。

IBM: IBM在NLP领域也有着广泛的研究和应用,包括Watson智能问答系统、IBM Language Translator等。

这些企业在NLP领域的研究和应用都非常广泛和深入,推动了NLP技术的不断进步和应用。同时,也为NLP从业者提供了很多的就业和合作机会。

7. 自然语言处理前景

当下,NLP领域各个细分领域都有着广阔的发展前景,以下是各个细分领域的简要介绍和发展前景:

语言模型: 语言模型是NLP领域中的一个核心问题,它在自然语言生成、文本分类、语音识别等任务中都有着重要的作用。未来,语言模型的发展方向将集中于提高模型的自适应性和可解释性,以及将其应用于更多的领域和场景中。

文本分类和情感分析: 文本分类和情感分析是NLP领域中最为成熟和广泛应用的问题之一。未来,这两个方向的发展将集中于深度学习、多模态数据分析等技术的应用和优化。

自然语言生成: 自然语言生成是NLP领域中的一个热门方向,它的应用场景涵盖了智能客服、智能问答、机器翻译、自动摘要等领域。未来,自然语言生成的发展方向将集中于提高生成模型的准确度和鲁棒性,以及将其应用于更多的领域和场景中。

信息抽取和实体识别: 信息抽取和实体识别是NLP领域中的一个重要方向,它在海量数据的处理和应用方面有着广泛的应用。未来,信息抽取和实体识别的发展方向将集中于多语言支持、领域自适应等技术的应用和优化。

问答系统: 问答系统是NLP领域中的一个热门方向,它在智能客服、智能助手、智能家居等领域有着广泛的应用。未来,问答系统的发展方向将集中于结合多模态数据、融合知识图谱等技术的应用和优化。

机器翻译: 机器翻译是NLP领域中的一个经典问题,它的应用范围涵盖了国际贸易、科技交流等多个领域。未来,机器翻译的发展方向将集中于结合深度学习、多语言翻译等技术的应用和优化。

对话系统: 对话系统是NLP领域中的一个重要方向,它在智能客服、智能助手等领域有着广泛的应用。未来,对话系统的发展方向将集中于提高对话系统的交互效率、自适应性和智能化程度,同时还将更多地考虑对话系统的社交性和情感化。

可解释性NLP: 可解释性NLP是NLP领域中的一个新兴方向,它的目标是使NLP模型更容易理解和解释。未来,可解释性NLP的发展方向将集中于提高NLP模型的可解释性和透明度,以及在更多的应用场景中应用可解释性NLP技术。

总之,随着人工智能和自然语言处理技术的不断发展,NLP领域将会有更广阔的应用前景和发展空间。各个细分领域都将迎来更多的挑战和机遇,需要不断地开展研究和创新,以推动整个领域的发展。

要学好NLP并找到一份不错的NLP相关工作,需要经过以下几个步骤:

掌握基础知识: NLP是一个涉及多学科的领域,需要掌握自然语言处理、机器学习、数学、计算机科学等多方面的基础知识。建议先从学习基础知识入手,包括语言学、统计学、线性代数、概率论等。

学习相关技术: NLP领域有很多相关技术,包括词向量、语言模型、信息抽取、文本分类、机器翻译、对话系统、情感分析等。学习这些技术需要掌握相应的算法和工具,建议通过学习相关的课程、书籍、论文和开源项目来深入理解。

实践项目: NLP是一个实践性很强的领域,需要通过实践项目来提升自己的技能和经验。可以参加一些NLP竞赛、开源项目或自己找一些数据集进行实践,这样可以让自己更好地掌握NLP技术。

建立人脉: NLP领域需要和其他领域的专家进行合作和交流,建议积极参加一些相关的活动和会议,建立人脉关系,获取更多的信息和机会。

找到合适的工作: NLP领域有很多不同的工作岗位,包括研究员、开发工程师、数据科学家、产品经理等。可以通过一些招聘平台、社交媒体、招聘会等方式来寻找合适的工作岗位,同时也可以通过自己的人脉关系和实践项目来获取更多的工作机会。

总之,学好NLP需要持续不断地学习和实践,建立人脉关系,找到合适的工作需要多方面的努力和准备。

参考文献

NLP介绍

NLP学习指南
NLP学习计划

NLP学习资源
NLP论文

NLP课程
NLP学者

NLP科技企业
NLP细分领域
NLP发展前景
NLP项目
NLP工作岗位


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

相关文章:

【跟着ChatGPT学深度学习】ChatGPT带我入门NLP

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...

RGB888与RGB565颜色

颜色名称RGB888原色RGB565还原色英RGB888[Hex]RGB888_R[Hex]RGB888_G[Hex]RGB888_B[Hex]RGB565[Hex]RGB565_R[Hex]RGB565_G[Hex]RGB565_B[Hex]黑色Black0x0000000000000x0000000昏灰Dimgray0x6969696969690x6B4DD1AD灰色Gray0x8080808080800x8410102010暗灰Dark Gray0xA9A9A9A9…...

常见的域名后缀有哪些?不同域名后缀的含义是什么?

域名发展至今,已演变出各种各样的域名后缀,导致很多网站管理人员在注册域名时不知该如何选择。下面,中科三方针对常见域名后缀种类,以及不同域名后缀的含义做下简单介绍。 什么是域名后缀? 域名是由一串由点分隔开的…...

LevelDB架构介绍以及读、写和压缩流程

LevelDB 基本介绍 是一个key/value存储,key值根据用户指定的comparator排序。 特性 keys 和 values 是任意的字节数组。数据按 key 值排序存储。调用者可以提供一个自定义的比较函数来重写排序顺序。提供基本的 Put(key,value),Get(key),…...

华为OD机试模拟题 用 C++ 实现 - 快递货车(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 最多获得的短信条数(2023.Q1)) 文章目录 最近更新的博客使用说明快递货车题目输入输出示例一输入输出Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单…...

伺服三环控制深层原理解析

我们平时使用的工业伺服,通常是成套伺服,即驱动器和电机型号存在配对关系。 但有些时候,我们要用电机定转子和编码器制作非成套电机,这种时候,我们需要对驱动器进行各种设置才能驱动电机。 此篇文章将通过介绍伺服控制的三环控制原理入手来说明我们调试非成套伺服时需要…...

Cornerstone完整的基于 Web 的医学成像平台(一)

1.简介 Cornerstone是一个开源的基于Web的医学成像平台,它提供了一个易于使用的界面,可以用于加载、显示和处理医学图像。Cornerstone可以用于许多医学图像处理应用程序,例如计算机断层扫描(CT)、磁共振成像&#xff…...

老板让我在Linux中使用traceroute排查服务器网络问题,幸好我收藏了这篇文章!

一、前言 作为网络工程师或者运维工程师,traceroute命令不会陌生,它的作用类似于ping命令,用于诊断网络的连通性,不过traceroute命令输出的命令会比ping命令丰富的多,可以跟踪从源系统到目标系统的路径。 很多工程师…...

一文读懂【数据埋点】

数据埋点是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。比如用户某个icon点击次数、观看某个视频的时长等等。 数据分析是我们获得需求的来源之一&#xff0c…...

Qt图片定时滚动播放器+透明过渡动画

目录参考结构PicturePlay.promain.cppmyqlabel.h 自定义QLabelmyqlabel.cpp自定义QLabelpictureplay.hpictureplay.cpppictureplay.uistyle.qss效果源码参考 Qt图片浏览器 QT制作一个图片播放器 Qt中自适应的labelpixmap充满窗口后,无法缩小只能放大 Qt的动画类修改…...

手把手带你做一套毕业设计-征程开启

本文是《手把手带你做一套毕业设计》专栏的开篇,文本将会包含我们创作这个专栏的初衷,专栏的主体内容,以及我们专栏的后续规划。关于这套毕业设计的作者呢前端部分由狗哥负责,服务端部分则由天哥操刀。我们力求毕业生或者新手通过…...

万字解析 Linux 中 CPU 利用率是如何算出来的?

在线上服务器观察线上服务运行状态的时候,绝大多数人都是喜欢先用 top 命令看看当前系统的整体 cpu 利用率。例如,随手拿来的一台机器,top 命令显示的利用率信息如下 这个输出结果说简单也简单,说复杂也不是那么容易就能全部搞明白…...

芯驰(E3-gateway)开发板环境搭建

1-Windows下环境配置 可以在Windows上使用命令行或者IAR IDE编译SSDK项目。Windows编译依赖的工具已经包含在 prebuilts/windows 目录中,包括编译器、Python和命令行工具。 1.1.1 CMD SSDK集成 msys 工具,可以在Windows命令行中完成SDK的配置、编译和…...

HiveSql一天一个小技巧:如何巧用分布函数percent_rank()求去掉最大最小值的平均薪水问题

0 问题描述参考链接(3条消息) HiveSql面试题12--如何分析去掉最大最小值的平均薪水(字节跳动)_莫叫石榴姐的博客-CSDN博客文中已经给出了三种解法,这里我们借助于此题,来研究如何用percent_rank()函数求解,简化解题思路…...

【python实现华为OD机试真题】优雅子数组【2023 Q1 | 200分】

题目描述 如果一个数组Q中出现次数最多的元素出现大于等于K次,被称为k-优雅数组,k也可以被称为优雅阈值只。 例如: 数组1,2, 3, 1、2, 3, 1,它是一个3-优雅数组,因为元素1出现次数大于等于3次, 数组[1,2, 3, 1, 2]就不是一一个3-优雅数组,因为其中出现次数最多的元素是1和…...

九种分布式ID解决方案

文章目录背景1、UUID2、数据库自增ID2.1、主键表2.2、ID自增步长设置3、号段模式4、Redis INCR5、雪花算法6、美团(Leaf)7、百度(Uidgenerator)8、滴滴(TinyID)总结比较背景 在复杂的分布式系统中,往往需要对大量的数据进行唯一标识,比如在对一个订单表…...

RocketMQ源码分析

RocketMQ源码深入剖析 1 RocketMQ介绍 RocketMQ 是阿里巴巴集团基于高可用分布式集群技术,自主研发的云正式商用的专业消息中间件,既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠…...

跟着我从零开始入门FPGA(一周入门系列)第六天

6、有限状态机状态机,只要C代码写过2年的人,估计无人不识君,稍微复杂的逻辑都可以借助状态机来简化问题。为了方便,我们使用前面用过的一个例子,来说明状态机的应用,也就是说我们前面已经有意无意的用过状态…...

2023最新JVM面试题汇总进大厂必备

JVM 面试题汇总 1.什么是 JVM?它有什么作用? 答:JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,顾名思义它是一个虚 拟计算机,也是 Java 程序能够实现跨平台的基础。它的作用是加载 Java 程…...

Cocoa-presentViewController

presentViewController:animator: 将一个viewController以动画方式显示出来 当VCA模态的弹出了VCB,那么VCA就是presenting view controller,VCB就是presented view controller presentViewController 相较于addSubView 直接作为subView就是不会出现一…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...

AI,如何重构理解、匹配与决策?

AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...