基于word2vec的推荐系统

基于word2vec的推荐系统

可用于推荐商品,图书,电影,课程,旅游景点,音乐…

效果

在这里插入图片描述

网址点我跳转

一、word2vec简介

Word2Vec是一种词向量表示方法,是在自然语言处理领域(NLP)的神经网络模型,包含两种模型架构:CBOW模型Skip-Gram模型

常用于:相似度计算词类聚类文本分类句子和文档表示、搜索引擎优化、情感分析、主题建模以及问答系统。

二、对英文句子进行处理

流程:
1、获取数据
2、预处理
3、训练Word2Vec模型
4、预测并推荐

假设目前有十本图书数据,有标题与内容简介,目标:给定一个新的图书数据,然后预测与其相近的图书。

1、安装库

pip install gensim
pip install nltk==3.8.1

下载对应的punkt用于分词,stopwords用于去掉停用词。

点我下载

也可以在github下载nltk的数据:

点我下载

下载完成后,放到C:\Users\用户\nltk_data下。

2、示例代码

# -*- coding: utf-8 -*-

"""
@contact: 微信 1257309054
@file: word2vec处理英文句子.py
@time: 2025/1/4 20:34
@author: LDC
"""
import numpy as np
import pandas as pd
from gensim.models import Word2Vec
from sklearn.metrics.pairwise import cosine_similarity
from nltk.corpus import WordListCorpusReader, stopwords
from nltk.tokenize import word_tokenize


# 可指定stopwords路径
# stopwords=WordListCorpusReader(root=r"C:\Users\ldc\nltk_data\corpora\stopwords", fileids="english")

def get_data():
    """
    获取数据
    :return:
    """

    # 有一个包含图书描述的DataFrame
    data = {
        'book_id': ['travel', 'novel', 'story', 'tale', 'epic', 'detective', 'short stories', 'historical', 'science',
                    'mystery'],
        'description': [
            "This book is about adventure and travel.",
            "A thrilling novel set in a dystopian future.",
            "The story of a young girl's journey through space.",
            "A heartwarming tale of love and loss.",
            "An epic fantasy tale filled with magic and dragons.",
            "A detective story with twists and turns.",
            "A historical novel set in ancient Rome.",
            "A collection of short stories about everyday life.",
            "A science fiction novel with interstellar travel.",
            "A mystery novel set in a small town."
        ]
    }
    df = pd.DataFrame(data)
    return df


# 预处理函数
def preprocess_text(text):
    # 分词
    tokens = word_tokenize(text.lower())
    # 去除停用词
    stop_words = set(stopwords.words('english'))
    filtered_tokens = [word for word in tokens if word.isalnum() and word not in stop_words]
    return ' '.join(filtered_tokens)


def train(filename, sentences):
    """
    训练模型
    :param filename: 模型文件名
    :param sentences: 用于训练的词向量
    :return:
    """
    # 预处理所有描述

    '''
    训练Word2Vec模型
    使用Word2Vec训练模型 参数:vector_size: 词向量维度;window: 上下文的宽度,min_count为考虑计算的单词的最低词频阈值
    workers:线程数,epochs:训练次数,negative:负采样,
    sg:sg=1 表示使用 Skip-gram 模型,而 sg=0 表示使用 CBOW(Continuous Bag of Words)模型。
    '''
    model = Word2Vec(sentences, vector_size=100, window=5, min_count=3, workers=4, epochs=7, negative=10, sg=1)
    model.save(filename)  # 模型保存
    return model


def get_book_vector(description, model):
    """
    计算每本图书的向量表示
    将描述中所有词的向量平均作为图书的向量
    :param description:
    :param model:
    :return:
    """
    tokens = word_tokenize(description.lower())  # 分词
    filtered_tokens = []
    # 去除停用词以及非向量词
    # 去除停用词
    stop_words = set(stopwords.words('english'))
    for word in tokens:
        if word.isalnum() and word not in stop_words:
            if word in model.wv:
                filtered_tokens.append(word)

    if not filtered_tokens:
        return np.zeros(model.vector_size)
    book_vector = np.mean([model.wv[word] for word in filtered_tokens], axis=0)
    return book_vector


def get_model(filename):
    # 模型加载
    return Word2Vec.load(filename)


def recommend_books(query_description, df, model, top_n=6):
    """
    推荐图书
    :param query_description: 需要预测的图书描述
    :param df: 数据集
    :param model: 模型
    :param top_n: 推荐的数量
    :return:
    """
    # 获取训练数据的词向量
    book_vectors = df['processed_description'].apply(lambda x: get_book_vector(x, model))
    book_vectors = np.array(list(book_vectors))

    # 获取需要预测文本的词向量
    query_vector = get_book_vector(query_description, model)
    # 逐一计算相似度
    similarities = cosine_similarity([query_vector], book_vectors).flatten()
    # 按照相似度降序排列
    most_similar_indices = similarities.argsort()[::-1][:top_n + 1]
    # 获取对应的图书名称
    return df.iloc[most_similar_indices]


if __name__ == '__main__':
    # 获取数据
    df = get_data()
    # 预处理
    df['processed_description'] = df['description'].apply(preprocess_text)
    # 将所有描述合并为一个长字符串,用于训练Word2Vec
    sentences = df['processed_description'].tolist()

    # 模型训练
    filename = 'book.dat'
    model = train(filename, sentences)

    # 示例:推荐与“A science fiction novel with wilderness  travel.”相似的图书
    query_description = "A science fiction novel with wilderness travel."
    recommended_books = recommend_books(query_description, df, model)
    print(recommended_books[['book_id', 'description']])

输出:

         book_id                            description
9        mystery               A mystery novel set in a small town.
8        science  A science fiction novel with interstellar travel.
7     historical  A collection of short stories about everyday l...
6  short stories            A historical novel set in ancient Rome.
5      detective           A detective story with twists and turns.
4           epic  An epic fantasy tale filled with magic and dra...
3           tale              A heartwarming tale of love and loss.

三、对中文句子进行处理

1、安装库

pip install gensim
pip install jieba

2、示例代码

# -*- coding: utf-8 -*-

"""
@contact: 微信 1257309054
@file: word2vec处理中文句子.py
@time: 2025/1/4 23:06
@author: LDC
"""
import jieba
import numpy as np
import pandas as pd
from gensim.models import Word2Vec
from sklearn.metrics.pairwise import cosine_similarity

# 假设我们有一个包含图书描述的DataFrame
data = {
    'book_id': ['智慧七柱', '张学良口述历史', '资本对决', '寂寞陈寅恪',
                '亲爱的提奥·梵高传', '邂逅', '窥见上帝秘密的人·洛克菲勒自传',
                '庆祝无意义', '苏东坡新传', '创始人'],
    'description': [
        "<p>本书记录了T·E·劳伦斯在沙漠中的战争回忆,被公认为英语文学中最伟大的现代史诗。第一次世界大战爆发后,劳伦斯毅然放弃考古工作,进入开罗军事情报部,负责中东地区的情报收集及战略建议。当时英军认为,以承诺让阿拉伯人在战后独立为名,使阿拉伯建国主义者与英国站在同一阵线,由内陆起兵反抗统治他们多年的奥斯曼土耳其帝国,将有助于协约国在中东地区取得压倒性胜利。劳伦斯因缘际会于1916年底成为阿拉伯起义运动领袖之一,费萨尔阵营中的英军联络官。至1918年,劳伦斯巧用机谋,在阿拉伯部落间引燃独立建国的燎原之火,善用阿拉伯部落擅长的游击战术,以及阿拉伯沙漠漫无边际、变化难测的特性,率领三千阿拉伯起义军,神出鬼没,专事破坏土耳其的补给铁路,牵制了五万以上的土耳其正规部队,创下历史上代价最小而获利巨大的战果。</p><p>他们由麦加北部出发,经过烈日无水的艰困地带,穿越世人畏惧的内夫得沙漠,以落后的武器、匮乏的火药与粮食,一站站攻下延布、沃季、阿卡巴、马安,于同年10月直抵土耳其统治重镇大马士革,完成争取自由的首要目标。很难想象,这位在沙漠中率领阿拉伯人击退土耳其现代部队的传奇人物当时未满三十岁。</p>",
        "<p>《张学良口述历史》中,在张氏印象里,张作霖吃饭,四菜没汤;张作相节俭,一个鸡蛋分两餐;叶公超好色,顾维钧风流;蒋介石只剩下了个派头;汪精卫、陈壁君的奇妙夫妻档;胡汉民发牢骚;孙中山一句话论东北局势;郭松龄宁折不弯,吴佩孚浪得虚名;阎锡山见风使舵、张宗昌能战、孙传芳不甘寂寞;以及溥仪溥杰,没落的皇室家族的种种……张氏的口述,随兴而谈,随意而至,流于细碎,却趣味盎然,更往往于不经意间,好比在历史的铁屋子里,开出一片极窄的天窗,露出来的,是遍寻史书也不能得的真实。</p><p>在五光十色的中国近代史中,在百余年当政者的公私生活和政治成败的记录上,最多彩多姿的领袖人物“少帅”张学良将军,应该是独占鳌头了。他那带有浓厚传奇性和高度戏剧化的一生,在民国史上老中青三代的领袖中,真没有第二人可与其相比。尤其是他政治生涯中最后一记撒手锏的西安事变,简直扭转了中国历史,也改写了世界历史。</p>",
        "<p>数千亿投资,近万亩土地,炙手可热的上海新城区规划,牵动了中国资本市场各投资大亨的心。华东第一投资集团的总裁夏远捷足先登,拿下新城区黄金地段的全部土地。深圳红岭集团携国际投资大鳄的千亿资本,强势登陆上海滩,欲图将第一投资手里的新城区黄金地段土地,全部收归囊 中。山雨欲来,夏远神秘失踪……</p><p>晨影咨询公司大老板洛闻,人称“天上的事,他知道一半;地上的事,他全知道”。与这场资本大战相关的各类消息,开始在晨影公司飞速流转。夏远的好友小徐哥、顾余笑纷纷卷入其中……</p><p>上海、深圳金融大鳄的资本对决,是一场世纪豪赌,底牌翻开的那一刻。</p>",
        "<p>著名史家陈寅恪先生先后留学于日本、德国、瑞士、法国、美国等,通晓梵文、突厥文、满文等多种东西方语言文字。归国后先后任教于清华国学研究院等数所大学,建国前夕由京入粤,后受聘并任教于岭南大学,直至“文革”期间不幸去世。陈寅恪一生中为人们留下了大量著作,内容涉及历史、文学、宗教等多个领域,为后来人开辟了新的学术领域,更提供了新的治学方法,民国以来即广为学界所尊崇和推重。</p><p>本书作者在深入阅读有关资料的基础上对陈寅恪的人生历程、学术成就等进行了系统梳理和扼要介绍,尤其通过对诗文书信等相关文献的发掘对陈寅恪的晚年人生进行了重新解读,并对此前学界的相关成果有所辩证。</p>",
        "<p>对许多人来说,梵高完美诠释了什么是疯狂的天才艺术家,但他也是一个善于思考、富于智慧的人。梵高的每一幅画作基本上都在他给弟弟提奥和友人的信中用诗一般的语言描述出来,在他的信中,人们可以读到他对艺术的信仰和独到见解,他对感情的态度以及他对待这个世界的方式。本书萃取梵高数百封信件之精华,将这位伟大艺术家的人生轨迹和闪光思想清晰地展现在读者面前。</p>",
        "<p>本书是汪曾祺早期小说集,晚年重新修订,收录了《鸡鸭名家》《复仇》《寂寞与温暖》《金冬心》等名篇。作品通过对普通人平凡命运和生存状态的描述抒发生活内在的诗意,表达作者的人格理想和生活趣味,充满着对世道人心、人类命运的关注。汪曾祺小说创作承袭老庄的精神、废名沈从文的文学风格。汪曾祺对生活始终充满一种乐观主义的平民化态度,对日常生活的热爱,对民间审美观念的认同,使他的小说具有独特的风格。</p>",
        "<p>在某种程度上,我所交往的是这个国家里最优秀的人,特别是在商界——这些人建立起美国的商业王国,他们生产的产品远销全球。我所要记录的事件对我而言具有重大的意义,它们在我记忆中留下了永不磨灭的印记。</p><p>如何把握公开个人隐私的尺度,或者说如何保护自己免受攻击,是一个颇具争议的问题。</p>",
        "<p>六月的一个早晨,阿兰走在巴黎一条街道上,看到很多穿着低腰裤、露脐装的女人。看着她们裸露的肚脐,阿兰既觉得迷人,又感到困惑,情色不再以女人的大腿或乳房而是以女人的肚脐作为诱惑的中心,这意味着什么呢?</p><p>小说这样开篇,一场嬉笑怒骂的喜剧由此上演,围绕卢森堡公园这个舞台中心,阿兰、拉蒙、夏尔、凯列班四个好朋友轮番登场,顺着他们的脚步、他们的生活故事、他们三三两两的谈话,引出了巴黎街头的花季少女,市民热捧的夏加尔画展,斯大林二十四只鹧鸪的玩笑,尿急的苏维埃傀儡主席,自杀未遂却杀人的母亲,以及天堂纷纷堕落的天使……舞台上演着一部热闹非凡的人间喜剧,幕后却隐藏着作者冷静洞察的智慧:生与死、严肃与荒诞、历史与忘却、现实与梦境,昆德拉让我们在笑中漂浮,为世间的无意义狂欢。</p>",
        "<p>苏东坡,天赋异禀的大文豪,无可救药的乐天派……</p><p>他的标签很多,却难以被标签定义。居高处为翰林学士,落低谷为狱中囚犯,一生波澜曲折都在诗里见。本书即以东坡诗词为主线,兼及东坡文集、后人笔记等百余种资料,以坚实的考订和热情的笔触,呈现出一个立体的东坡形象。</p><p>全新增订版特别收录《寻找李一冰》和《缥缈孤鸿影──父亲与〈苏东坡新传〉》,追寻谜样作者和出版缘由,附录《苏轼及宋朝大事年表》。</p><p>◎人生为何不快乐,只因未读苏东坡</p><p>苏东坡是中国文化史上罕见的全才,在诗、文、书、画等方面都有不俗成就。如此天才,一生都颠沛流离,但他却能超越个人的悲哀,既超脱现实,又有烟火气。这种旷达的态度也指引我们获得自己的快乐之道。</p><p>◎余秋雨高度评价的传记经典,全新增订</p><p>余秋雨先生在《苏东坡突围》一文中直接引用本书原文,并高度评价此书文字典雅,作者归结甚有见地。本书已出版近四十年,此次全新增订,收录《寻找李一冰》和《缥缈孤鸿影:父亲与<苏东坡新传>》。</p><p>◎以诗词为主线,参考百余种书目,还原真实、立体的东坡形象</p><p>诗言志,所以本书十之八九取材于东坡诗词,以触摸他内心的喜怒哀乐。此外,作者参考东坡文集和后人笔记等百余种资料,考证坚实,笔触细腻,还原一个真实、立体的东坡形象。</p><p>◎典雅现代的装帧设计,四色彩插,极具典藏价值</p><p>典雅与现代并行的装帧风格,封面选用纹理极强的手揉纸,手工粘贴纹理温厚的环保幼棉,并烫金印鉴。四色彩插,采用100g细腻纯质纸印刷,直观展现苏东坡及其相关的画像、作品。</p>",
        "<p>大多数男人从一来到这世上,就不得不面对两件事:你从哪里来?要往哪里去?</p><p>从三流大学毕业的曹原,却不用面对第二个问题。他是一个天生的创业家,活力四射、激情洋溢、上得三十三重天、下得三十三重地狱。在创业的路上,他无比荣耀、目标坚定地向前走着。</p><p>但创业的光景与先前的想象迥然不同,反差之一就是曹原本以为做老板可以每天盘算挣多少钱,结果轮到他做老板却是每天盘算剩多少钱。</p><p>正当他看不到前景时,命运让他遇上三个人,他的人生得以发生重大转折。</p><p>施颖,一直出国未遂的“闲人”。她佩服曹原的执着,网站做得那么烂居然还能硬着头皮做下去。她后来成了曹原红颜知己与得力助手。</p><p>许克,在外企格恩公司担任“业务发展”。一次总部派他去帮助成都分公司赢得德塞克公司的设备竞标,他积极开展工作,但由于不谙公司潜规则,最终落得遭自己人暗算还无人同情的地步。黯然神伤的他决定“不做家猪做野猪”,投靠偶然认识的曹原一起打天下,九帮网从此形成“土鳖”与“海龟”的黄金搭档。</p><p>郝书忠,自学成才的“黑客”。因为喜欢施颖,甘愿拿低工资进入九帮网,从此网站再也没有技术上的后顾之忧。郝书忠告诉曹原:“我看过不少家网站,做得好、活下来的,靠的都不是技术,甚至,靠的都不是网站本身。”</p><p>一个公司尤其是一个网络公司少不了要打一下知名度。他们想到了最传统的方式——向媒体投放广告。他们请来了邹某,谁知邹某是个道貌岸然的文化骗子,损失近万元的曹原痛定思痛,决心自己炒作自己来引发各路媒体关注。九帮网靠性感美女和反日大旗一炮打响。</p><p>有了知名度后还得有好的商业模式赚到钱,不然开公司就成了献爱心。靠着自己有庞大客户群撑腰,曹原他们双管齐下,用上得了台面(谈判)和上不了台面(闹事)的手段最终逼迫各商家付给他们服务费,九帮网基本度过了自己的生存危机。</p><p>能生存了,就要求发展,快速发展的一条捷径是借助资本力量。就像初次借助媒体力量那样,曹原、许克这帮菜鸟又被一个“慈祥”的前辈乔先生用巧妙的手段骗去了20%的股份。</p><p>苦尽甘来,初次融资成功后的曹原他们马上体会到:“在资本面前,连资本家都是渺小的。”九帮网被迫开始了疯狂的扩张,而扩张的目的就是为了第二次融资时能估个好价。第二次融资成功后,曹原他们又被勒令要好好做业绩,因为九帮网要准备上市了。此时的曹原站在了人生的十字路口,公司的走向正远离他的理想,同时事业有成的他遇到了新的爱情诱惑……</p>",
    ]
}
df = pd.DataFrame(data)


def get_stopwords():
    """
    获取停用词
    """
    with open('stopwords.txt', encoding='utf-8') as f2:  # 可根据需要打开停用词库,然后加上不想显示的词语
        con = f2.readlines()
        stop_words = list()
        for i in con:
            i = i.replace("\n", "")  # 去掉读取每一行数据的\n
            stop_words.append(i)
    return set(stop_words)


# 预处理函数
def preprocess_text(text):
    # 分词
    tokens = jieba.cut(text, cut_all=False)
    # 去除停用词
    stop_words = get_stopwords()
    filtered_tokens = [word for word in tokens if word.isalnum() and word not in stop_words]
    return ' '.join(filtered_tokens)


# 预处理所有描述
df['processed_description'] = df['description'].apply(preprocess_text)

# 将所有描述合并为一个长字符串,用于训练Word2Vec
sentences = df['processed_description'].tolist()

# 训练Word2Vec模型
model = Word2Vec(sentences, vector_size=100, window=5, min_count=3, workers=4, epochs=7, negative=10, sg=1)


# 计算每本图书的向量表示
# 这里我们简单地将描述中所有词的向量平均作为图书的向量
def get_book_vector(description, model):
    # tokens = jieba.cut(description, cut_all=False)

    # filtered_tokens = [word for word in tokens if word.isalnum() and word in model.wv]
    tokens = jieba.cut(description, cut_all=False)
    # 去除停用词
    stop_words = get_stopwords()
    filtered_tokens = []
    for word in tokens:
        if word.isalnum() and word not in stop_words:
            if word in model.wv:
                filtered_tokens.append(word)

    if not filtered_tokens:
        return np.zeros(model.vector_size)
    book_vector = np.mean([model.wv[word] for word in filtered_tokens], axis=0)
    return book_vector


book_vectors = df['processed_description'].apply(lambda x: get_book_vector(x, model))
book_vectors = np.array(list(book_vectors))


# 定义一个函数来推荐图书
def recommend_books(query_description, top_n=6):
    query_vector = get_book_vector(query_description, model)
    similarities = cosine_similarity([query_vector], book_vectors).flatten()
    print('similarities', similarities)
    most_similar_indices = similarities.argsort()[::-1][:top_n + 1]  # 排除第一个(自身)
    return df.iloc[most_similar_indices]


# 示例:推荐与“A science fiction novel with interstellar travel.”相似的图书
query_description = "<p>刘强东,一个勇往直前的铁腕企业家、电子商务领域的靠谱冒险家、一个超级战士。</p><p>一个真正的战士需要的是战场。1998年,他在中关村将自己变成了个体户。2004年,他光脚进入电子商务领域。2011年,他的京东商城销售额突破300亿元。2012年,京东商城销售额又将达到怎样的高点,600亿元?1000亿元?明年,京东会创下全世界最高IPO融资?</p><p>刘强东是如何炼成的?《刘强东·注定震惊世界》告诉你一切。</p>"
recommended_books = recommend_books(query_description)
print(recommended_books[['book_id', 'description']])

输出:

similarities [0.9998696  0.9997333  0.999809   0.999809   0.9997246  0.9998696
 0.999875   0.9997981  0.99985784 0.99972975]
           book_id                                        description
6  窥见上帝秘密的人·洛克菲勒自传  <p>在某种程度上,我所交往的是这个国家里最优秀的人,特别是在商界——这些人建立起美国的商业...
5               邂逅  <p>本书是汪曾祺早期小说集,晚年重新修订,收录了《鸡鸭名家》《复仇》《寂寞与温暖》《金冬心...
0             智慧七柱  <p>本书记录了T·E·劳伦斯在沙漠中的战争回忆,被公认为英语文学中最伟大的现代史诗。第一次...
8            苏东坡新传  <p>苏东坡,天赋异禀的大文豪,无可救药的乐天派……</p><p>他的标签很多,却难以被标签...
3            寂寞陈寅恪  <p>著名史家陈寅恪先生先后留学于日本、德国、瑞士、法国、美国等,通晓梵文、突厥文、满文等多...
2             资本对决  <p>数千亿投资,近万亩土地,炙手可热的上海新城区规划,牵动了中国资本市场各投资大亨的心。华...
7            庆祝无意义  <p>六月的一个早晨,阿兰走在巴黎一条街道上,看到很多穿着低腰裤、露脐装的女人。看着她们裸露...

四、基于Word2Vec的图书推荐系统

效果:

网址点我跳转

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多目标优化算法——基于聚类的不规则Pareto前沿多目标优化自适应进化算法(CA-MOEA)

基于聚类的不规则Pareto前沿多目标优化自适应进化算法&#xff08;CA-MOEA&#xff09; 一、算法简介 简介&#xff1a; 现有的多目标进化算法&#xff08;moea&#xff09;在具有规则Pareto前沿且Pareto最优解在目标空间上连续分布的多目标优化问题&#xff08;MOPs&#xff…

Kubernetes开发环境minikube | 开发部署apache tomcat web单节点应用

minikube是一个主要用于开发与测试Kubernetes应用的运行环境 本文主要描述在minikube运行环境中部署J2EE tomcat web应用 minikube start --force minikube status 如上所示&#xff0c;在Linux中启动minikube运行环境 service docker start docker version service docker …

【QT-QTableView实现鼠标悬浮(hover)行高亮显示+并设置表格样式】

1、自定义委托类 HoverDelegate hoverdelegate.h #ifndef HOVERDELEGATE_H #define HOVERDELEGATE_H#include <QObject> #include <QStyledItemDelegate>class hoverdelegate : public QStyledItemDelegate {Q_OBJECT // 添加 Q_OBJECT 宏public:explicit hoverde…

企业网络性能监控

什么是网络性能监控 网络性能监控&#xff08;NPM&#xff09;是指对计算机网络的性能进行持续测量、分析和管理的过程&#xff0c;通过监控流量、延迟、数据包丢失、带宽利用率和正常运行时间等关键指标&#xff0c;确保网络高效、安全地运行&#xff0c;并将停机时间降至最低…

引领AI发展潮流:打造大模型时代的安全与可信——CCF-CV企业交流会走进合合信息会议回顾

一、前言 随着数字化浪潮的推动&#xff0c;人工智能技术正在以前所未有的速度深刻改变着我们的生活、工作方式以及社会结构。AI技术的飞速发展不仅为各行业带来了前所未有的机遇&#xff0c;也同时引发了关于其风险与挑战的广泛关注。如何平衡技术进步与安全保障&#xff0c;…

List ---- 模拟实现LIST功能的发现

目录 listlist概念 list 中的迭代器list迭代器知识const迭代器写法list访问自定义类型 附录代码 list list概念 list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。list的底层是双向链表结构&#xff0c;双向链表中每个元素…

Matlab回归预测大合集(不定期更新)-188

截至2025-1-2更新 1.BP神经网络多元回归预测&#xff08;多输入单输出&#xff09; 2.RBF神经网络多元回归预测&#xff08;多输入单输出&#xff09; 3.RF随机森林多元回归预测&#xff08;多输入单输出&#xff09; 4.CNN卷积神经网络多元回归预测&#xff08;多输入单输…

go语言zero框架中教务crm系统的在职继承和离职交接的设计与实践

在GoZero中实现一个在职继承和离职交接的通用模块&#xff0c;涉及到顾问离职交接客户、领导离职交接审批单据等功能。为了使这个模块通用且易于扩展&#xff0c;我们可以分成几个部分&#xff1a; 1. **数据模型设计**&#xff1a;我们首先需要设计离职交接相关的数据模型。 …

Mac软件介绍之录屏软件Filmage Screen

软件介绍 Filmage Screen 是一款专业的视频录制和编辑软件&#xff0c;适用于 Mac 系统 可以选择4k 60fps&#xff0c;可以选择录制电脑屏幕&#xff0c;摄像头录制&#xff0c;可以选择区域录制。同时也支持&#xff0c;简单的视频剪辑。 可以同时录制电脑麦克风声音 标准…

毕业项目推荐:基于yolov8/yolov5的行人检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示&#xff1a;功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出&#xff08;xls格式&#xff09;功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…

对话|企业如何构建更完善的容器供应链安全防护体系

对话&#xff5c;企业如何构建更完善的容器供应链安全防护体系 云布道师 随着云计算和 DevOps 的兴起&#xff0c;容器技术和自动化成为软件开发中的必要手段&#xff0c;软件供应链也进入了自动化及 CI/CD 阶段。然而&#xff0c;容器技术和自动化虽然提升了软件的更新速度&…

小试牛刀-SpringBoot集成SOL链

目录 一、什么是solanaj? 二、Pom依赖 三、主要类 3.1 RpcClient 3.2 PublicKey 3.3 Transaction 3.4 TransactionInstruction 四、示例代码 Welcome to Code Blocks blog 本篇文章主要介绍了 [小试牛刀-SpringBoot集成SOL链] ❤博主广交技术好友&#xff0c;喜欢文章的…

LLM之RAG实战(五十一)| 使用python和Cypher解析PDF数据,并加载到Neo4j数据库

一、必备条件&#xff1a; python语言Neo4j数据库python库&#xff1a;neo4j、llmsherpa、glob、dotenv 二、代码&#xff1a; from llmsherpa.readers import LayoutPDFReaderfrom neo4j import GraphDatabaseimport uuidimport hashlibimport osimport globfrom datetime …

牛客网刷题 ——C语言初阶(5操作符)——BC117 小乐乐走台阶

1.题目 &#xff1a;BC117 小乐乐走台阶 牛客OJ题链接 描述 小乐乐上课需要走n阶台阶&#xff0c;因为他腿比较长&#xff0c;所以每次可以选择走一阶或者走两阶&#xff0c;那么他一共有多少种走法&#xff1f; 输入描述&#xff1a; 输入包含一个整数n (1 ≤ n ≤ 30) …

gitlab高级功能之 CICD Steps

CICD Steps 1. 介绍2. 定义 Steps2.1 Inputs2.2 Outputs 3. Using steps3.1 Set environment variables3.2 Running steps locally 4. Scripts5. Actions5.1 已知的问题 6. 表达式7. 实操7.1 单个step7.2 多个step7.3 复用steps7.4 添加output到step7.5 使用远程step 1. 介绍 …

【Unity3D】UGUI Canvas画布渲染流程

目录 Screen Space - Overlay Screen Space - Camera World Space UI合批分析&#xff08;建议不看 直接看FrameDebugger测试&#xff09; 优化UI合批 1、Image图片纹理不同导致合批失败 2、文本和图片相交以及排序对合批的影响 3、Mask对合批的影响&#xff08;情况…

平安产险安徽分公司携手安徽中医药临床研究中心附属医院 共筑儿童安全防护网

为响应金融知识普及教育号召&#xff0c;平安产险安徽分公司联动安徽中医药临床研究中心附属医院&#xff0c;于近日在朝霞小学举办了一场儿童安全防范与健康守护活动。此次活动旨在提升学生的安全防范意识&#xff0c;守护儿童健康成长&#xff0c;同时有力推动金融知识与传统…

zephyr移植到STM32

Zephy如何移植到单片机 1. Window下搭建开发环境1.1 安装Choncolatey1.2 安装相关依赖1.3创建虚拟python环境1.4 安装west1.4.1 使用 pip 安装 west1.4.2 检查 west 安装路径1.4.3 将 Scripts路径添加到环境变量1.4.4 验证安装 1.5 获取zephyr源码和[安装python](https://so.cs…

fail api scope is not declared in the privacy agreement微信小程序uniapp 解决录音无法播放、授权

已解决 fail api scope is not declared in the privacy agreement微信小程序uniapp 解决录音无法播放、授权 没有声明内容协议导致的 微信公众平台&#xff1a;https://mp.weixin.qq.com/【1.左下角的-移动过去后会出现 “帐号设置”】 【2.基本设置->服务内容声明->修…

虚拟机 网络防御(预防信息泄露)

了解VMware网络基本配置 Bridged(桥接模式):虚拟机和主机好比在同一个网络环境下的两台电脑。 NAT(网络地址转换模式):NAT模式虚拟机通过主机进行联网。&#xff08;推荐&#xff09; Host-0nly(主机模式):主机模式将虚拟机与外网隔开&#xff0c;只能让虚拟机和虚拟机之间联…