23个Python在自然语言处理中的应用实例

news2024/9/20 18:00:54

在自然语言处理(NLP)领域,Python作为一门功能强大的编程语言,凭借其丰富的库和工具集,成为了实现各种NLP任务的首选。以下是一个关于Python在NLP中应用的广泛实例的前言,旨在概述Python在NLP领域的多样性和重要性。

前言

随着信息技术的飞速发展,自然语言处理(NLP)作为人工智能的一个重要分支,正逐渐渗透到我们日常生活的方方面面。从智能客服、机器翻译到情感分析、文本摘要,NLP技术正以前所未有的速度改变着人类与机器之间的交互方式。而Python,凭借其简洁的语法、丰富的库和强大的社区支持,成为了NLP研究和应用的热门选择。

在NLP的广阔天地中,Python的应用实例不胜枚举。从基础的文本清洗、分词、词性标注,到复杂的命名实体识别、情感分析、语义理解,Python都提供了强大的工具和库来支持这些任务。例如,NLTK(Natural Language Toolkit)作为Python中最著名的NLP库之一,提供了分词、词性标注、命名实体识别等多种功能;而spaCy则以其高性能和易用性著称,适用于各种复杂的NLP任务;此外,还有TextBlob、Gensim、scikit-learn等库,分别在情感分析、文本相似度比较、文本分类等领域发挥着重要作用。

这些库和工具不仅简化了NLP任务的实现过程,还推动了NLP技术的快速发展。通过Python,研究人员和开发者可以更加高效地构建NLP模型,解决各种实际问题。例如,在电商领域,可以利用情感分析技术来监测用户对产品的评价,从而优化产品设计和营销策略;在金融领域,可以利用命名实体识别技术来提取新闻中的关键信息,辅助投资决策;在医疗领域,则可以利用NLP技术来辅助医生进行病历分析和诊断。

小编准备入门了Python入门学习籽料+80个Python入门实例
点击 领取(无偿获得)

本文将介绍23个Python在NLP中的应用实例,这些实例涵盖了NLP的各个方面,从基础到高级,从理论到实践。通过这些实例,读者可以深入了解Python在NLP领域的广泛应用和强大功能,同时也能够掌握一些实用的技巧和工具,为未来的NLP研究和应用打下坚实的基础。

1. 文本清洗

文本清洗是任何 NLP 项目的第一步。它涉及去除不需要的信息,如标点符号、数字、特殊字符等。

代码示例:

import re  
  
def clean_text(text):  
    # 去除标点符号  
    text = re.sub(r'[^\w\s]', '', text)  
    # 去除数字  
    text = re.sub(r'\d+', '', text)  
    # 将所有字母转为小写  
    text = text.lower()  
    return text  
  
# 示例文本  
text = "Hello, World! This is an example text with numbers 123 and symbols #@$."  
cleaned_text = clean_text(text)  
  
print(cleaned_text)  # 输出: hello world this is an example text with numbers and symbols  

解释:

  • 使用 re 模块的 sub() 方法去除标点符号和数字。

  • lower() 方法将所有字母转换为小写。

2. 分词

分词是将文本拆分成单词的过程。这有助于进一步处理,如词频统计、情感分析等。

代码示例:

from nltk.tokenize import word_tokenize  
  
# 示例文本  
text = "Hello, World! This is an example text."  
  
# 分词  
tokens = word_tokenize(text)  
  
print(tokens)  # 输出: ['Hello', ',', 'World', '!', 'This', 'is', 'an', 'example', 'text', '.']  

解释:

  • 使用 nltk 库中的 word_tokenize() 函数进行分词。

3. 去除停用词

停用词是指在文本中频繁出现但对语义贡献较小的词,如“the”、“is”等。

代码示例:

from nltk.corpus import stopwords  
from nltk.tokenize import word_tokenize  
  
# 示例文本  
text = "The quick brown fox jumps over the lazy dog."  
  
# 分词  
tokens = word_tokenize(text)  
  
# 去除停用词  
stop_words = set(stopwords.words('english'))  
filtered_tokens = [token for token in tokens if token.lower() not in stop_words]  
  
print(filtered_tokens)  # 输出: ['quick', 'brown', 'fox', 'jumps', 'over', 'lazy', 'dog']  

解释:

  • 使用 nltk.corpus.stopwords 获取英语停用词列表。

  • 使用列表推导式过滤掉停用词。

4. 词干提取

词干提取是将单词还原为其基本形式的过程,有助于减少词汇量。

代码示例:

from nltk.stem import PorterStemmer  
from nltk.tokenize import word_tokenize  
  
# 示例文本  
text = "running dogs are barking loudly."  
  
# 分词  
tokens = word_tokenize(text)  
  
# 词干提取  
stemmer = PorterStemmer()  
stemmed_tokens = [stemmer.stem(token) for token in tokens]  
  
print(stemmed_tokens)  # 输出: ['run', 'dog', 'are', 'bark', 'loudli', '.']  

解释:

  • 使用 PorterStemmer 对单词进行词干提取。

5. 词形还原

词形还原类似于词干提取,但它使用词典来找到单词的基本形式。

代码示例:

from nltk.stem import WordNetLemmatizer  
from nltk.tokenize import word_tokenize  
  
# 示例文本  
text = "running dogs are barking loudly."  
  
# 分词  
tokens = word_tokenize(text)  
  
# 词形还原  
lemmatizer = WordNetLemmatizer()  
lemmatized_tokens = [lemmatizer.lemmatize(token) for token in tokens]  
  
print(lemmatized_tokens)  # 输出: ['running', 'dog', 'are', 'barking', 'loudly', '.']  

解释:

  • 使用 WordNetLemmatizer 进行词形还原。

6. 词频统计

词频统计可以帮助我们了解文本中最常见的词汇。

代码示例:

from nltk.tokenize import word_tokenize  
from nltk.probability import FreqDist  
import matplotlib.pyplot as plt  
  
# 示例文本  
text = "This is a sample text. This text contains some words that are repeated several times."  
  
# 分词  
tokens = word_tokenize(text)  
  
# 计算词频  
fdist = FreqDist(tokens)  
  
# 绘制词频图  
plt.figure(figsize=(10, 5))  
fdist.plot(10)  
plt.show()  

解释:

  • 使用 FreqDist 计算词频。

  • 使用 matplotlib 绘制词频图。

7. 情感分析

情感分析用于判断文本的情感倾向,如正面、负面或中性。

代码示例:

from nltk.sentiment import SentimentIntensityAnalyzer  
  
# 示例文本  
text = "I love this movie. It's amazing!"  
  
# 情感分析  
sia = SentimentIntensityAnalyzer()  
sentiment_scores = sia.polarity_scores(text)  
  
print(sentiment_scores)  # 输出: {'neg': 0.0, 'neu': 0.429, 'pos': 0.571, 'compound': 0.8159}  

解释:

  • 使用 SentimentIntensityAnalyzer 进行情感分析。

8. 词向量化

词向量化将单词表示为数值向量,便于计算机处理。

代码示例:

import gensim.downloader as api  
  
# 加载预训练的 Word2Vec 模型  
model = api.load("glove-twitter-25")  
  
# 示例文本  
text = "This is a sample sentence."  
  
# 分词  
tokens = text.split()  
  
# 向量化  
vectorized_tokens = [model[token] for token in tokens if token in model.key_to_index]  
  
print(vectorized_tokens)  

解释:

  • 使用 gensim 库加载预训练的 Word2Vec 模型。

  • 将单词转换为向量表示。

9. 主题建模

主题建模用于识别文档集合中的主题。

代码示例:

from gensim import corpora, models  
  
# 示例文本  
documents = [  
    "Human machine interface for lab abc computer applications",  
    "A survey of user opinion of computer system response time",  
    "The EPS user interface management system",  
    "System and human system engineering testing of EPS",  
    "Relation of user perceived response time to error measurement",  
    "The generation of random binary unordered trees",  
    "The intersection graph of paths in trees",  
    "Graph minors IV Widths of trees and well quasi ordering",  
    "Graph minors A survey"  
]  
  
# 分词  
texts = [[word for word in document.lower().split()] for document in documents]  
  
# 创建词典  
dictionary = corpora.Dictionary(texts)  
  
# 转换为文档-词频矩阵  
corpus = [dictionary.doc2bow(text) for text in texts]  
  
# LDA 模型  
lda = models.LdaModel(corpus, num_topics=2, id2word=dictionary, passes=10)  
  
# 打印主题  
for topic in lda.print_topics(num_topics=2, num_words=5):  
    print(topic)  

解释:

  • 使用 gensim 库进行主题建模。

  • 使用 LDA 模型识别主题。

10. 文本分类

文本分类是将文本分配给预定义类别的过程。

代码示例:

from sklearn.feature_extraction.text import CountVectorizer  
from sklearn.naive_bayes import MultinomialNB  
from sklearn.model_selection import train_test_split  
from sklearn.metrics import accuracy_score  
  
# 示例数据  
documents = [  
    "Human machine interface for lab abc computer applications",  
    "A survey of user opinion of computer system response time",  
    "The EPS user interface management system",  
    "System and human system engineering testing of EPS",  
    "Relation of user perceived response time to error measurement",  
    "The generation of random binary unordered trees",  
    "The intersection graph of paths in trees",  
    "Graph minors IV Widths of trees and well quasi ordering",  
    "Graph minors A survey"  
]  
  
labels = [0, 0, 0, 0, 0, 1, 1, 1, 1]  
  
# 分词  
vectorizer = CountVectorizer()  
X = vectorizer.fit_transform(documents)  
  
# 划分训练集和测试集  
X_train, X_test, y_train, y_test = train_test_split(X, labels, test_size=0.2, random_state=42)  
  
# 训练模型  
classifier = MultinomialNB()  
classifier.fit(X_train, y_train)  
  
# 预测  
y_pred = classifier.predict(X_test)  
  
# 评估准确率  
accuracy = accuracy_score(y_test, y_pred)  
print(f"Accuracy: {accuracy:.2f}")  

解释:

  • 使用 sklearn 库进行文本分类。

  • 使用朴素贝叶斯分类器进行预测。

11. 命名实体识别(NER)

命名实体识别用于识别文本中的特定实体,如人名、地名等。

代码示例:

import spacy  
  
# 加载预训练模型  
nlp = spacy.load("en_core_web_sm")  
  
# 示例文本  
text = "Apple is looking at buying U.K. startup for $1 billion."  
  
# 处理文本  
doc = nlp(text)  
  
# 提取实体  
for ent in doc.ents:  
    print(ent.text, ent.label_)  
  
# 输出:  
# Apple ORG  
# U.K. GPE  
# $1 billion MONEY  

解释:

  • 使用 spacy 库进行命名实体识别。

  • 提取文本中的实体及其类型。

12. 机器翻译

机器翻译用于将一种语言的文本转换为另一种语言。

代码示例:

from googletrans import Translator  
  
# 创建翻译器对象  
translator = Translator()  
  
# 示例文本  
text = "Hello, how are you?"  
  
# 翻译文本  
translated_text = translator.translate(text, src='en', dest='fr')  
  
print(translated_text.text)  # 输出: Bonjour, comment ça va ?  

解释:

  • 使用 googletrans 库进行文本翻译。

  • 将英文文本翻译成法文。

13. 文本摘要

文本摘要是生成文本的简洁版本,保留主要信息。

代码示例:

from transformers import pipeline  
  
# 创建摘要生成器  
summarizer = pipeline("summarization")  
  
# 示例文本  
text = """  
Natural language processing (NLP) is a subfield of linguistics, computer science,   
and artificial intelligence concerned with the interactions between computers and   
human (natural) languages. As such, NLP is related to the area of human–computer interaction.  
Many challenges in NLP involve natural language understanding, that is, enabling computers   
to derive meaning from human or natural language input, and others involve natural language   
generation.  
"""  
  
# 生成摘要  
summary = summarizer(text, max_length=100, min_length=30, do_sample=False)  
  
print(summary[0]['summary_text'])  

************************************************### Python 在自然语言处理(NLP)中的13个应用实例(续)

14. 词云生成

词云是一种可视化工具,可以直观地展示文本中最常出现的词汇。

代码示例:

from wordcloud import WordCloud  
import matplotlib.pyplot as plt  
  
# 示例文本  
text = "Natural language processing (NLP) is a subfield of linguistics, computer science, and artificial intelligence concerned with the interactions between computers and human (natural) languages."  
  
# 生成词云  
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)  
  
# 显示词云  
plt.figure(figsize=(10, 5))  
plt.imshow(wordcloud, interpolation='bilinear')  
plt.axis('off')  
plt.show()  

解释:

  • 使用 wordcloud 库生成词云。

  • 设置词云的宽度、高度和背景颜色。

  • 使用 matplotlib 显示词云图像。

15. 问答系统

问答系统用于回答用户提出的问题。

代码示例:

from transformers import pipeline  
  
# 创建问答模型  
qa_pipeline = pipeline("question-answering", model="distilbert-base-cased-distilled-squad")  
  
# 示例问题和上下文  
context = "Natural language processing (NLP) is a subfield of linguistics, computer science, and artificial intelligence concerned with the interactions between computers and human (natural) languages."  
question = "What is NLP?"  
  
# 生成答案  
answer = qa_pipeline(question=question, context=context)  
  
print(answer['answer'])  # 输出: Natural language processing (NLP) is a subfield of linguistics, computer science, and artificial intelligence concerned with the interactions between computers and human (natural) languages.  

解释:

  • 使用 transformers 库创建问答模型。

  • 提供问题和上下文文本。

  • 生成答案并打印。

16. 信息抽取

信息抽取是从非结构化文本中提取有用信息的过程。

代码示例:

from transformers import pipeline  
  
# 创建信息抽取模型  
ner_pipeline = pipeline("ner", model="dbmdz/bert-large-cuneiform-sumerian-ner")  
  
# 示例文本  
text = "Sargon was a king of Akkad."  
  
# 提取信息  
entities = ner_pipeline(text)  
  
print(entities)  
# 输出:  
# [{'entity': 'B-PER', 'score': 0.9999799728393555, 'index': 0, 'word': 'Sargon', 'start': 0, 'end': 6},  
#  {'entity': 'B-LOC', 'score': 0.9999675750732422, 'index': 5, 'word': 'Akkad', 'start': 14, 'end': 19}]  

解释:

  • 使用 transformers 库创建信息抽取模型。

  • 提取文本中的实体及其类型。

  • 打印提取结果。

17. 关系抽取

关系抽取是从文本中识别实体之间的关系。

代码示例:

from transformers import pipeline  
  
# 创建关系抽取模型  
re_pipeline = pipeline("relation-extraction", model="joeddav/xlm-roberta-large-xnli")  
  
# 示例文本  
text = "Sargon was a king of Akkad."  
  
# 定义实体对  
entity_pairs = [  
    {"entity": "Sargon", "offset": (0, 6)},  
    {"entity": "king", "offset": (10, 14)},  
    {"entity": "Akkad", "offset": (17, 22)}  
]  
  
# 提取关系  
relations = re_pipeline(text, entity_pairs)  
  
print(relations)  
# 输出:  
# [{'score': 0.9999675750732422, 'entity': 'was a', 'label': 'is_a', 'entity_pair': {'entity_0': 'Sargon', 'entity_1': 'king'}, 'index': 0, 'confidence': 0.9999675750732422}]  

解释:

  • 使用 transformers 库创建关系抽取模型。

  • 定义实体对。

  • 提取实体之间的关系。

  • 打印提取结果。

18. 文本聚类

文本聚类是将相似的文档归为一类的过程。

代码示例:

from sklearn.feature_extraction.text import TfidfVectorizer  
from sklearn.cluster import KMeans  
from sklearn.metrics import silhouette_score  
  
# 示例文本  
documents = [  
    "Human machine interface for lab abc computer applications",  
    "A survey of user opinion of computer system response time",  
    "The EPS user interface management system",  
    "System and human system engineering testing of EPS",  
    "Relation of user perceived response time to error measurement",  
    "The generation of random binary unordered trees",  
    "The intersection graph of paths in trees",  
    "Graph minors IV Widths of trees and well quasi ordering",  
    "Graph minors A survey"  
]  
  
# TF-IDF 向量化  
vectorizer = TfidfVectorizer()  
X = vectorizer.fit_transform(documents)  
  
# K-Means 聚类  
kmeans = KMeans(n_clusters=2, random_state=42)  
kmeans.fit(X)  
  
# 评估聚类质量  
silhouette_avg = silhouette_score(X, kmeans.labels_)  
print(f"Silhouette Score: {silhouette_avg:.2f}")  
  
# 打印聚类结果  
for i, doc in enumerate(documents):  
    print(f"{doc} -> Cluster {kmeans.labels_[i]}")  

解释:

  • 使用 TfidfVectorizer 对文档进行 TF-IDF 向量化。

  • 使用 KMeans 进行聚类。

  • 评估聚类质量。

  • 打印每个文档的聚类结果。

19. 事件检测

事件检测是从文本中识别特定事件的过程。

代码示例:

from transformers import pipeline  
  
# 创建事件检测模型  
event_pipeline = pipeline("event-extraction", model="microsoft/layoutlmv2-base-uncased-finetuned-funsd")  
  
# 示例文本  
text = "The company announced a new product launch on Monday."  
  
# 事件检测  
events = event_pipeline(text)  
  
print(events)  
# 输出:  
# [{'event_type': 'Product Launch', 'trigger': 'launch', 'trigger_start': 35, 'trigger_end': 40, 'arguments': [{'entity': 'company', 'entity_start': 4, 'entity_end': 10, 'role': 'Company'}, {'entity': 'Monday', 'entity_start': 38, 'entity_end': 44, 'role': 'Date'}]}]  

解释:

  • 使用 transformers 库创建事件检测模型。

  • 提取文本中的事件及其触发词和参数。

  • 打印事件检测结果。

20. 词性标注

词性标注是将文本中的每个单词标记为其对应的词性。

代码示例:

from nltk import pos_tag  
from nltk.tokenize import word_tokenize  
  
# 示例文本  
text = "John likes to watch movies. Mary likes movies too."  
  
# 分词  
tokens = word_tokenize(text)  
  
# 词性标注  
tagged_tokens = pos_tag(tokens)  
  
print(tagged_tokens)  
# 输出:  
# [('John', 'NNP'), ('likes', 'VBZ'), ('to', 'TO'), ('watch', 'VB'), ('movies', 'NNS'), ('.', '.'), ('Mary', 'NNP'), ('likes', 'VBZ'), ('movies', 'NNS'), ('too', 'RB'), ('.', '.')]  

解释:

  • 使用 nltk 库进行分词。

  • 使用 pos_tag 进行词性标注。

  • 打印标注结果。

21. 依存句法分析

依存句法分析是分析句子中词与词之间的依存关系。

代码示例:

import spacy  
  
# 加载预训练模型  
nlp = spacy.load("en_core_web_sm")  
  
# 示例文本  
text = "John likes to watch movies. Mary likes movies too."  
  
# 处理文本  
doc = nlp(text)  
  
# 依存句法分析  
for token in doc:  
    print(token.text, token.dep_, token.head.text, token.head.pos_,  
          [child for child in token.children])  
  
# 输出:  
# John nsubj likes VERB []  
# likes ROOT likes VERB [to]  
# to mark likes VERB [watch]  
# watch xcomp likes VERB []  
# movies dobj likes VERB []  
# . punct likes PUNCT []  
# Mary nsubj likes VERB []  
# likes ROOT likes VERB []  
# movies dobj likes VERB []  
# too advmod likes VERB []  
# . punct likes PUNCT []  

解释:

  • 使用 spacy 库进行依存句法分析。

  • 打印每个词的依存关系及其父节点和子节点。

22. 语法树构建

语法树构建是将句子的语法结构表示为树状结构。

代码示例:

import nltk  
from nltk import Tree  
  
# 示例文本  
text = "John likes to watch movies. Mary likes movies too."  
  
# 分词  
tokens = nltk.word_tokenize(text)  
  
# 词性标注  
tagged_tokens = nltk.pos_tag(tokens)  
  
# 构建语法树  
grammar = "NP: {<DT>?<JJ>*<NN>}"  
cp = nltk.RegexpParser(grammar)  
result = cp.parse(tagged_tokens)  
  
# 显示语法树  
result.draw()  

解释:

  • 使用 nltk 库进行分词和词性标注。

  • 使用正则表达式构建语法树。

  • 使用 draw 方法显示语法树。

23. 词性转换

词性转换是将一个词从一种词性转换为另一种词性。

代码示例:

from nltk.stem import WordNetLemmatizer  
from nltk.corpus import wordnet  
  
# 示例文本  
text = "running dogs are barking loudly."  
  
# 分词  
tokens = text.split()  
  
# 词性转换  
lemmatizer = WordNetLemmatizer()  
converted_tokens = []  
  
for token in tokens:  
    # 获取词性  
    pos = wordnet.NOUN if token.endswith('ing') else wordnet.VERB  
    converted_token = lemmatizer.lemmatize(token, pos=pos)  
    converted_tokens.append(converted_token)  
  
print(converted_tokens)  
# 输出:  
# ['run', 'dog', 'are', 'bark', 'loudli', '.']  

解释:

  • 使用 WordNetLemmatizer 进行词性转换。

  • 根据词尾判断词性。

  • 打印转换后的结果。

实战案例:情感分析在电商评论中的应用

假设我们正在为一家电商平台开发一个情感分析系统,用于自动分析用户评论的情感倾向。具体步骤如下:

1. 数据收集

  • 收集电商平台上的用户评论数据。

2. 数据预处理

  • 清洗文本数据,去除无关信息。

  • 分词并去除停用词。

3. 情感分析

  • 使用 SentimentIntensityAnalyzer 进行情感分析。

  • 计算每个评论的情感得分。

4. 结果展示

  • 将分析结果可视化,展示正面、负面和中性评论的比例。

代码示例:

import pandas as pd  
from nltk.sentiment import SentimentIntensityAnalyzer  
import matplotlib.pyplot as plt  
  
# 加载评论数据  
data = pd.read_csv('reviews.csv')  
comments = data['comment'].tolist()  
  
# 情感分析  
sia = SentimentIntensityAnalyzer()  
  
sentiments = []  
for comment in comments:  
    sentiment_scores = sia.polarity_scores(comment)  
    sentiments.append(sentiment_scores['compound'])  
  
# 计算情感类别  
positive_count = sum(1 for score in sentiments if score > 0)  
negative_count = sum(1 for score in sentiments if score < 0)  
neutral_count = sum(1 for score in sentiments if score == 0)  
  
# 可视化结果  
labels = ['Positive', 'Negative', 'Neutral']  
sizes = [positive_count, negative_count, neutral_count]  
  
plt.figure(figsize=(8, 8))  
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)  
plt.title('Sentiment Analysis of Product Reviews')  
plt.show()  

解释:

  • 使用 pandas 库加载评论数据。

  • 使用 SentimentIntensityAnalyzer 计算每个评论的情感得分。

  • 统计正面、负面和中性评论的数量。

  • 使用 matplotlib 绘制饼图展示结果。

总之,Python作为NLP领域的得力助手,正以其独特的魅力和强大的功能引领着NLP技术的潮流。通过不断的学习和实践,我们有理由相信,Python将在NLP领域创造更多的奇迹和可能。

好了,今天的分享就到这里了,我们下期见。如果本文对你有帮助,请动动你可爱的小手指点赞、转发、在看吧!

全套Python学习资料分享:

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

图片

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

图片

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

图片

四、入门学习视频全套

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

图片

图片

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

图片

在这里插入图片描述

最后

如果你也想自学Python,可以关注我。我会把踩过的坑分享给你,让你不要踩坑,提高学习速度,还整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容:开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。

在这里插入图片描述

希望这篇文章对你有帮助,也希望能帮到大家,因为你我都是热爱python的编程语言爱好者。

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

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

相关文章

CSS——弹性盒子布局(display: flex)

CSS——弹性盒子布局&#xff08;display: flex&#xff09; 我们经常听说一种布局&#xff1a;Flexbox或者是弹性布局&#xff0c;它的全称叫做弹性盒子布局&#xff08;Flexible Box Layout&#xff09;&#xff0c;那么它到底该如何实现呢&#xff1f;从我们熟悉的 display…

LLM World:轻松驾驭大模型价格

当今&#xff0c;人工智能蓬勃发展&#xff0c;大模型的应用也如繁星般不断涌现。 大模型提供商为了在竞争激烈的市场中脱颖而出并获取最大利润&#xff0c;往往采用复杂的差异化定价策略。不同的功能模块、使用场景&#xff08;如企业级应用、科研用途、小型创业公司试用等&a…

数据结构-2.8.单链表的建立

一.尾插法建立单链表&#xff1a;取数据元素插入单链表表尾 1.图解&#xff1a; 对于时间复杂度&#xff0c;最好的时间复杂度是第一次&#xff0c;因为此时内层循环即找第i-1个结点就不执行了(不满足j<i-1)&#xff0c; 内层循环和外层循环时间复杂度都是O(n)&#xff0c…

devops的道法术器

devops的道法术器 道、法、术、器自上而下是系统思考的层次&#xff0c;自下而上是解决问题的层次 “道”是目标、价值观&#xff0c;对价值的定位。 快速交付价值&#xff0c;灵活响应变化&#xff0c;这是从价值层面的追求&#xff0c;或者是从第一性原理的角度来讲&#xf…

相亲交友系统 现代爱情的导航仪

在这个数字化的时代&#xff0c;人们的生活方式发生了翻天覆地的变化&#xff0c;其中最显著的变化之一便是交友方式的转变。编辑h17711347205随着社会节奏的加快&#xff0c;越来越多的人选择通过相亲交友系统来寻找人生伴侣。相亲交友系统不仅简化了传统的交友流程&#xff0…

pig4cloud自定义SecurityFilterChain、Filter

1. 环境 SpringBoot版本&#xff1a;2.7.16 SpringSecurity版本&#xff1a;5.7.11 pig4cloud版本&#xff1a;3.7.1-JDK8 2. 概述 pig4cloud也没有自定义SecurityFilterChain的实现&#xff0c;还是基于SpringSecurity去实现的。但是pig4cloud使用的SpringSecurity的5.7.…

鸿蒙手势交互(四:多层手势)

四、多层手势 指父子组件嵌套时&#xff0c;父子组件均绑定了手势或事件。有两种&#xff0c;一种默认多层级手势事件&#xff0c;一种自定义多层级手势事件。 默认多层级手势事件&#xff1a;需要分清两个概念&#xff0c;触摸事件&#xff0c;手势与事件 触摸事件&#xf…

MySQL数据库:掌握备份与恢复的艺术,确保数据安全无忧(二)

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 目录 ​编辑 正…

springbootKPL比赛网上售票系统

基于springbootvue实现的KPL比赛网上售票系统 &#xff08;源码L文ppt&#xff09;4-068 4.2 系统结构设计 架构图是系统的体系结构&#xff0c;体系结构是体系结构体系的重要组成部分。KPL比赛网上售票系统的总体结构设计如图4-2所示。 图4-2 系统总体架构图 4.3数据…

【Java面向对象二】static(二)修饰成员方法的应用场景

文章目录 前言一、static修饰成员方法的应用场景二、使用例子三、工具类没有创建对象的需求&#xff0c;建议将工具类的构造方法进行私有总结 前言 记录学习过程中的工具类的使用。 一、static修饰成员方法的应用场景 1、类方法的常见应用场景 类方法最常见的应用场景是做工…

Java设计模式——工厂方法模式(完整详解,附有代码+案例)

文章目录 5.3 工厂方法模式5.3.1概述5.3.2 结构5.3.3 实现 5.3 工厂方法模式 针对5.2.3中的缺点&#xff0c;使用工厂方法模式就可以完美的解决&#xff0c;完全遵循开闭原则。 5.3.1概述 工厂方法模式&#xff1a;定义一个创建对象的接口&#xff08;这里的接口指的是工厂&…

01_WebRtc_一对一视频通话

文章目录 通话网页的设计客户端实现Web的API 服务端实现 2024-9-20 很久没有写博客啦&#xff0c;回顾总结这段时间的成果&#xff0c; 写下博客放松下&#xff08;开始偷懒啦&#xff09;主要内容&#xff1a;实现网页&#xff08;html&#xff09;打开摄像头并显示到页面需要…

泳池软管检测系统源码分享

泳池软管检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

C++: 使用红黑树模拟实现STL中的map和set

目录 1. 红黑树的迭代器和-- 2. 改造红黑树3. set的模拟实现4. map的模拟实现5. RBTree的改造代码 博客主页 : 酷酷学 正文开始 1. 红黑树的迭代器 迭代器的好处是可以方便遍历&#xff0c;是数据结构的底层实现与用户透明 打开C的源码我们可以发现, 其实源码中的底层大概如…

数据结构应试-树和二叉树

1. 2. 结点的度&#xff1a;结点拥有的子树数量称为结点的度 树的度&#xff1a;树内各结点度的最大值&#xff0c;即上图 D 结点的度就是此树的度 叶子&#xff1a;度为 0 的节点称为叶子或终端节点 结点的层次和树的深度 森林&#xff1a;m棵互不相交的树的集合。 3. 为啥…

司南 OpenCompass 九月大语言模型评测榜单启动召集,欢迎新合作厂商申请评测

主要概览 司南 OpenCompass 大语言模型官方自建榜单&#xff08;9 月榜&#xff09;评测拟定于 10 月上旬发布&#xff0c;现诚挚邀请新加入的合作方参与评测。本次评测围绕强化能力维度&#xff0c;全面覆盖语言、推理、知识、代码、数学、指令跟随、智能体等七大关键领域&am…

layui时间选择器选择周 日月季度年

<!-- layui框架样式 --><link type"text/css" href"/static/plugins/layui/css/layui.css" rel"stylesheet" /><!-- layui框架js --><script type"text/javascript" src"/static/plugins/layui/layui.js&qu…

【LeetCode】每日一题 2024_9_20 统计特殊整数(数位 DP)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动&#xff01; 题目&#xff1a;统计特殊整数 代码与解题思路 func countSpecialNumbers(n int) int { // 今天的题目是数位 DP&#xff0c;我不会做&#xff0c;所以现场学习了一下灵神的数位 DP 模版s : strconv.Itoa…

11个推特大V发文推广的数据分析技巧

社交媒体已经成为了现代社会中不可或缺的一部分&#xff0c;而推特作为其中的重要一员&#xff0c;吸引了许多用户。对于那些成千上万的粉丝拥有者&#xff08;也被称为“大V”&#xff09;&#xff0c;他们能够有效地利用推特平台&#xff0c;推广自己的观点和产品。我们将介绍…

让医院更智慧,让决策更容易

依托数字孪生技术&#xff0c;赋能智慧医院&#xff0c;对使用者和决策者带来了众多的优势。数字孪生技术是将物理实体与数字模型相结合&#xff0c;实现实时监测、仿真预测和智能决策的一种先进技术。在智慧医院中应用数字孪生技术&#xff0c;不仅可以提升医疗服务的质量和效…