自然语言处理入门【第6章】:自然语言处理的应用

news/2025/2/23 5:07:14/文章来源:https://www.cnblogs.com/Mast1031/p/18718944

搜广推业务

信息检索

搜索、广告和推荐是很多互联网大厂赖以生存的命脉。比如,百度的搜索引擎、京东淘宝的推荐系统、腾讯的广告业务等。这一节我们就看看搜广推业务当中的自然语言处理方法。

1. 什么是信息检索

信息检索(Information Retrieval,IR)是指从大量的非结构化或半结构化数据中,按照一定的方式组织和存储信息,并根据用户的需求快速、准确地找出相关信息的过程和技术。其目的是帮助用户在海量信息中高效地获取所需内容,解决信息过载问题。信息检索系统通常包括信息的存储和检索两个主要过程,存储过程涉及对文档等信息的预处理和索引构建,检索过程则是根据用户的查询请求,通过检索模型计算文档与查询的相关性,返回最相关的结果。

2. 现代信息检索系统的发展

现代信息检索系统的发展经历了多个阶段:

  • 传统信息检索阶段:早期主要基于关键词匹配技术,如倒排索引,通过简单的关键词匹配来检索文档,但这种方法对语义理解能力较弱,容易出现检索结果不准确的问题。
  • 基于机器学习的信息检索阶段:随着机器学习技术的发展,信息检索系统开始引入机器学习算法,如支持向量机、决策树等,用于改进检索模型,提升检索结果的相关性和准确性。
  • 基于深度学习的信息检索阶段:深度学习的兴起为信息检索带来了新的突破,通过神经网络模型,如卷积神经网络(CNN)、循环神经网络(RNN)及其变体,能够更好地理解和处理自然语言,进一步提高检索性能。
  • 生成式 AI 与信息检索融合阶段:近年来,生成式 AI 技术的发展对信息检索产生了变革性影响,如检索增强生成(RAG)技术的出现,将信息检索与生成式大语言模型相结合,使检索系统能够生成更准确、更丰富的文本内容。

3. 语言模型在信息检索中的应用

语言模型在信息检索中发挥着重要作用,具体体现在以下几个方面:

  • 查询理解:语言模型可以对用户的查询进行语义理解,识别查询中的关键词、短语及其语义关系,从而更准确地把握用户的真实意图,为后续的检索提供更精准的方向。
  • 文档表示:通过语言模型对文档进行编码,将文档转换为高维向量表示,能够更好地捕捉文档的语义信息和主题结构,为文档的相关性计算提供更丰富的特征。
  • 检索结果排序:利用语言模型生成的文档表示和查询表示,计算两者之间的相似度或相关性得分,根据得分对检索结果进行排序,将最相关的文档排在前面,提升检索结果的质量。
  • 查询扩展:语言模型可以根据查询的上下文信息,生成与查询相关的扩展词或短语,丰富查询的语义表达,扩大检索范围,提高检索的召回率。

4. 检索与大模型的紧密结合——RAG

检索增强生成(RAG,Retrieval-Augmented Generation)是一种将信息检索与生成式大语言模型相结合的技术框架。其核心思想是通过从外部知识库中检索与输入问题相关的信息,作为上下文输入到生成模型中,从而增强模型的生成能力和准确性。

  • 技术原理:RAG 通常包括两个主要阶段,即检索阶段和生成阶段。在检索阶段,模型根据用户的输入问题,从预构建的文档索引中检索出与问题相关的文档片段或全文;在生成阶段,将检索到的文档与输入问题一起输入到生成模型中,生成模型基于这些信息生成最终的回答。
  • 优势:RAG 融合了信息检索的准确性和生成式大语言模型的表达能力,能够生成更准确、更丰富、更符合用户需求的回答。同时,通过检索外部知识库,可以弥补大语言模型在特定领域或时效性数据上的不足,提高模型的适应性和可靠性。
  • 应用场景:RAG 在问答系统、文本摘要、内容生成等领域有着广泛的应用前景。例如,在问答系统中,RAG 可以通过检索相关文档来增强模型对问题的理解和回答的准确性;在文本摘要中,RAG 可以根据检索到的信息生成更全面、更准确的摘要内容。

5. 信息检索系统的评价指标

信息检索系统的性能通常通过以下几种评价指标来衡量:

  • 准确率(Precision):指检索结果中相关文档的数量与检索结果总数的比值,反映了检索结果的准确性。准确率越高,表示检索结果中相关文档的比例越高。
  • 召回率(Recall):指检索结果中相关文档的数量与文档集合中所有相关文档数量的比值,反映了检索结果的完整性。召回率越高,表示检索系统能够找到更多的相关文档。
  • F1 分数(F1-score):是准确率和召回率的调和平均数,用于综合衡量检索系统的性能。F1 分数越高,表示检索系统的性能越好。
  • 平均精度(Average Precision,AP)和平均精度均值(mean Average Precision,mAP):在多类别信息检索任务中,AP 用于衡量每个类别中系统按照相关度排序返回的结果列表的精度曲线下的面积,mAP 则是所有类别平均精度的均值,用于评估系统在多类别任务中的整体性能。
  • ROC 曲线和 AUC 面积:ROC 曲线是以假正率(FPR)为横轴,真正率(TPR)为纵轴绘制的曲线,AUC 面积是 ROC 曲线下的面积,用于衡量分类模型的性能。在信息检索中,ROC 曲线和 AUC 面积可以用于评估检索系统在不同阈值下的分类性能。

计算广告学

计算广告学是广告学与计算机科学、数学等多学科交叉融合的领域,主要研究如何利用计算机技术、数据分析和算法模型来优化广告的投放、展示和效果评估等过程,以实现广告主的营销目标和提升用户体验。其核心在于通过精准的用户画像、广告匹配和效果预测,提高广告的点击率、转化率和收益,同时减少对用户的无效打扰。计算广告学涉及的关键环节包括广告投放平台的构建、广告竞价机制的设计、用户行为数据的分析与挖掘、广告创意的生成与优化等,广泛应用于搜索引擎广告、社交媒体广告、视频广告等多种在线广告场景中。

计算广告有几个比较核心的评价指标:

  • 点击率(Click-Through Rate, CTR):指广告被点击的次数与广告展示次数的比值,反映了广告吸引用户点击的能力。CTR 越高,表示广告越能吸引用户的关注和兴趣。
  • 转化率(Conversion Rate):指用户在点击广告后完成广告主期望的转化行为(如购买商品、注册账号等)的次数与广告点击次数的比值,衡量了广告对用户行为的实际影响和营销效果。转化率越高,表示广告在促进用户转化方面越有效。
  • 曝光量(Impressions):指广告被展示的次数,反映了广告的覆盖面和可见度。曝光量的增加有助于提高品牌知名度和广告的传播效果。

早期的广告投放主要基于人工经验和简单的规则,如根据网站流量、用户地理位置等进行广告展示,缺乏精准性和个性化,广告效果难以保证。随着数据收集和分析技术的发展,计算广告学开始引入用户画像和行为定向等方法,通过分析用户的浏览历史、搜索记录等数据,实现对用户的精准定位和广告的个性化推荐,显著提高了广告的点击率和转化率。这时,机器学习和数据挖掘技术开始有用了!再然后,深度学习和强化学习技术的引入为计算广告学带来了新的突破。深度学习模型能够自动提取用户和广告的特征,更准确地预测用户的点击和转化行为;强化学习则可以用于优化广告投放策略,通过与环境的交互不断学习和调整,以实现长期的最优广告效果。近年来,生成式 AI 和大模型技术的发展对计算广告学产生了深远影响。例如,利用大语言模型生成广告创意、优化广告文案,以及通过检索增强生成(RAG)技术实现广告与用户查询的深度融合等,为计算广告学带来了新的发展机遇和挑战。

自然语言处理(NLP)和大语言模型(LLM)技术为计算广告学带来了诸多启示和创新机会:

  • 广告创意生成与优化:NLP 技术可以自动生成广告文案、标题、描述等内容,提高广告创意的生成效率和质量。大语言模型则能够根据广告主的需求和用户特征,生成更具吸引力和个性化的广告创意,提升广告的点击率和转化率。
  • 用户意图理解与精准定向:通过 NLP 技术对用户的搜索查询、浏览内容等文本信息进行深度分析,可以更准确地理解用户的意图和兴趣,从而实现更精准的广告定向和推荐。大语言模型在语义理解方面的强大能力,能够进一步提升用户意图挖掘的准确性和深度。
  • 广告内容与用户查询的融合:利用检索增强生成(RAG)等技术,可以根据用户的查询实时检索相关的广告内容,并将其融入到生成的文本中,使广告与用户查询的上下文更加契合,提高广告的相关性和用户体验。
  • 广告效果评估与反馈:NLP 技术可以对用户对广告的评论、反馈等文本数据进行分析,评估广告的效果和用户满意度,为广告主提供有价值的优化建议。大语言模型则可以用于生成更准确的广告效果评估报告和预测模型,帮助广告主更好地调整广告策略。
  • 跨语言与多模态广告投放:随着全球化的发展,跨语言广告投放变得越来越重要。NLP 技术可以实现广告内容的多语言翻译和本地化,而大语言模型则能够处理多模态信息,如图像、视频等,为跨语言和多模态广告投放提供技术支持。

推荐系统

1.什么是推荐系统

推荐系统是一种信息过滤技术,旨在通过分析用户的历史行为、偏好和上下文信息,预测用户对物品(如商品、文章、视频等)的兴趣,从而向用户推荐可能感兴趣的物品。其核心目标是解决信息过载问题,帮助用户更高效地发现符合自身需求的内容,同时提升平台的用户粘性和商业价值。推荐系统广泛应用于互联网大厂的各种业务场景中,例如:

  • 电商推荐:如淘宝、京东等电商平台根据用户的浏览、购买历史和搜索行为,推荐相关商品,提高用户购买转化率。
  • 视频推荐:如抖音、快手等短视频平台根据用户的观看历史、点赞、评论等行为,推荐个性化视频内容,增加用户观看时长。
  • 内容推荐:如今日头条、知乎等内容平台根据用户的兴趣和行为,推荐文章、问答等内容,提升用户内容消费体验。

2.推荐系统的评价指标

推荐系统的性能和效果通常通过以下几种评价指标来衡量:

  • 准确率(Precision):指推荐列表中用户实际感兴趣的物品数量与推荐列表总长度的比值,反映了推荐结果的准确性。准确率越高,表示推荐结果中用户感兴趣的物品比例越高。
  • 召回率(Recall):指推荐列表中用户实际感兴趣的物品数量与用户所有感兴趣物品数量的比值,反映了推荐结果的完整性。召回率越高,表示推荐系统能够找到更多的用户感兴趣物品。
  • F1 分数(F1-score):是准确率和召回率的调和平均数,用于综合衡量推荐系统的性能。F1 分数越高,表示推荐系统的性能越好。
  • 均方根误差(RMSE):在评分预测任务中,RMSE 用于衡量预测评分与实际评分之间的误差,RMSE 越小,表示预测越准确。
  • 平均绝对误差(MAE):同样用于评分预测任务,MAE 是预测评分与实际评分之间绝对误差的平均值,MAE 越小,表示预测越准确。
  • AUC 面积:在二分类任务中,AUC 面积表示接收者操作特征曲线(ROC 曲线)下的面积,用于衡量推荐系统对正负样本的区分能力。AUC 面积越大,表示推荐系统的性能越好。

3.推荐系统模型方法的演变

  • 基于规则的推荐阶段:早期的推荐系统主要基于简单的规则和人工设定的逻辑,如根据用户的地理位置、年龄等基本信息进行推荐,缺乏个性化和动态适应性。
  • 协同过滤推荐阶段:协同过滤是推荐系统的核心技术之一,通过分析用户的历史行为数据,找到与目标用户行为相似的其他用户或物品,从而进行推荐。协同过滤分为基于用户的协同过滤和基于物品的协同过滤。
  • 基于内容的推荐阶段:通过分析物品的内容特征(如文本、图像等),计算用户与物品的匹配度进行推荐。这种方法能够提供更个性化的推荐结果,但对新用户或新物品的冷启动问题较为敏感。
  • 深度学习推荐阶段:深度学习技术的引入为推荐系统带来了新的突破,通过神经网络模型自动提取用户和物品的特征,能够更准确地预测用户的兴趣和行为。深度学习模型如卷积神经网络(CNN)、循环神经网络(RNN)及其变体被广泛应用于推荐系统中。
  • 生成式 AI 与大模型推荐阶段:近年来,生成式 AI 和大语言模型(LLM)技术的发展对推荐系统产生了深远影响。例如,利用大语言模型生成个性化推荐文案、优化推荐结果的解释性,以及通过检索增强生成(RAG)技术实现推荐结果的动态调整等。

我在很早以前本科大数据分析这门课上的结课作业就是一个简单的推荐系统。我当时写了基于用户的版本和基于内容的版本,我把源码放出来:
用户版

import numpy as np
import pandas as pddata = pd.read_csv('train_set.csv')
data.drop('timestamp', axis=1, inplace=True)
# 生成utility matrix
matrix = data.pivot_table(index=['movieId'],columns=['userId'],values='rating').reset_index(drop=True)
matrix.fillna(0, inplace=True)
matrix.index = np.array(sorted(data['movieId'].unique()))
# 基于用户的协同过滤推荐
userid = 671
K = 100
n = 5def recommender_topN(userid, K, n):# 使用pearson系数计算用户之间的相似度users_num = len(matrix.iloc[0])sim_dict = {i: matrix[userid].corr(matrix[i], method='pearson') for i in range(1, users_num + 1)}sorted_sim = sorted(sim_dict.items(), key=lambda d: d[1], reverse=True)# 取K个最相似的用户topK_id = [sorted_sim[i][0] for i in range(K)]topK_matrix = matrix[topK_id]pred_dict = {}for i in range(len(matrix)):x = topK_matrix.iloc[i]if len(x[x != 0]) > 15:pred_i = np.mean(x[x != 0])  # 去掉里面的0项pred_dict[i] = 0 if np.isnan(pred_i) else pred_ielse:pred_dict[i] = 0  # 不考虑# 取前n个电影推荐sorted_pred = sorted(pred_dict.items(), key=lambda d: d[1], reverse=True)pred = sorted_pred[:n]print('As for User %d, the top %d recommendations are shown below:' % (userid, n))print('-----------------------------------------------------------')for i in range(n):id, score = pred[i]print('%6d | %.4f' % (matrix.index[id], score))def recommender_rating(userid, movieid, K):# 使用pearson系数计算用户之间的相似度users_num = len(matrix.iloc[0])sim_dict = {i: matrix[userid].corr(matrix[i], method='pearson') for i in range(1, users_num + 1)}sorted_sim = sorted(sim_dict.items(), key=lambda d: d[1], reverse=True)# 取K个最相似的用户topK_id = [sorted_sim[i][0] for i in range(K)]topK_matrix = matrix[topK_id]x = topK_matrix.loc[movieid]#直接平均,加权分数的特殊情况pred_i = np.mean(x[x != 0])return pred_i# 进行topK推荐
# recommender(0, minhash, userid, K, n)
# 读取测试集
test = pd.read_csv('test_set.csv')
test.drop('timestamp', axis=1, inplace=True)
users, movies, ratings = test['userId'], test['movieId'], test['rating']preds = []
for i in range(len(test)):print('%d/%d...' % (i+1, len(test)))preds.append(recommender_rating(users[i], movies[i], K))#recommender_topN(users[i], K,n)SSE = np.sum(np.square(preds - ratings))
print(SSE)

内容版

import numpy as np
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
movies = pd.read_csv('movies.csv')
print(movies.columns)
# 生成一个0开始的连续下标和movieId的双向映射
index2Id = {k:v for k, v in enumerate(movies['movieId'])}
Id2index = {v:k for k, v in index2Id.items()}
genres = [' '.join(movies['genres'][i].split('|')) for i in range(len(movies))]tfidf = TfidfVectorizer()
matrix = tfidf.fit_transform(genres).toarray()
matrix = pd.DataFrame(matrix)cosine_matrix = cosine_similarity(matrix)
# 读取训练集
train = pd.read_csv('train_set.csv')
train.drop('timestamp', axis=1, inplace=True)
# 基于内容推荐
userid = 671
K = 10def cal_score(rated_movies, rating, movieid):distances = cosine_matrix[movieid]  # 从movieid出发的距离向量computed_dict = {}  # 计算集合for i in range(len(rated_movies)):rated_movie = rated_movies[i]cosine = distances[Id2index[rated_movie]]if cosine > 1e-6:computed_dict[i] = cosine# 计算集合不为空,加权if len(computed_dict.keys()):score = 0sum_v0 = 0for k, v in computed_dict.items():score += rating[k] * vsum_v0 += vreturn score / sum_v0# 计算集合为空else:return np.mean(rating)def recommender_top_K(userid, K):# 获得当前用户的数据data = train[train['userId'] == userid]rated_movies = np.array(data['movieId'])rating = np.array(data['rating'])title=movies['title']scores_dict = {}movies_num = len(index2Id)for i in range(movies_num):scores_dict[i] = cal_score(rated_movies, rating, i)scores_list = sorted(scores_dict.items(), key=lambda d: d[1], reverse=True)print('As for User %d, the top %d recommendations are shown below:' % (userid, K))print('-----------------------------------------------------------')for i in range(K):ind, score = scores_list[i]print('%6d | %70s | %.4f' % (index2Id[ind], title[ind], score))def recommender_rate(userid, movieid):# 获得当前用户的数据data = train[train['userId'] == userid]rated_movies = np.array(data['movieId'])rating = np.array(data['rating'])return cal_score(rated_movies, rating, Id2index[movieid])# 读取测试集
test = pd.read_csv('test_set.csv')
test.drop('timestamp', axis=1, inplace=True)
users, moviesid, ratings = test['userId'], test['movieId'], test['rating']# 开始预测
preds = []
for i in range(len(test)):print('%d/%d...' % (i+1, len(test)))preds.append(recommender_rate( users[i], moviesid[i]))#recommender_top_K(users[i],K)SSE = np.sum(np.square(preds - ratings))
print(SSE)

4. NLP与LLM对推荐系统的启示

自然语言处理(NLP)和大语言模型(LLM)技术为推荐系统带来了诸多启示和创新机会:

  • 用户意图理解与精准推荐:NLP 技术可以对用户的搜索查询、评论、社交互动等文本信息进行深度分析,更准确地理解用户的意图和兴趣,从而实现更精准的推荐。大语言模型在语义理解方面的强大能力,能够进一步提升用户意图挖掘的准确性和深度。
  • 内容理解与特征提取:NLP 技术可以对物品的文本描述、标题、标签等内容进行分析,提取关键特征,帮助推荐系统更好地理解物品的属性和语义信息,从而提高推荐的准确性和相关性。大语言模型则能够生成更丰富的语义特征,提升内容理解的深度。
  • 推荐结果的解释性:大语言模型可以生成自然语言形式的解释,使推荐结果更具可读性和说服力。
  • 跨语言与多模态推荐:随着全球化的发展,跨语言推荐变得越来越重要。NLP 技术可以实现广告内容的多语言翻译和本地化,而大语言模型则能够处理多模态信息,如图像、视频等,为跨语言和多模态推荐提供技术支持。
  • 冷启动问题的解决:NLP 和 LLM 技术可以通过对新用户或新物品的文本信息进行分析,快速生成用户画像或物品特征,从而缓解冷启动问题。例如,利用 LLM 提取领域不变特征,结合传统特征进行融合,能够更准确地为新用户或新物品提供推荐。

无论是计算机视觉(CV)还是自然语言处理(NLP),其本质都是为推荐系统提供用户与内容的特征,从而帮助推荐系统更好地理解用户需求和内容属性,实现更精准的匹配和推荐:

  • 用户特征提取:通过 NLP 技术分析用户的文本行为(如评论、搜索、社交互动等),提取用户的兴趣、偏好、意图等特征;通过 CV 技术分析用户的图像、视频行为(如观看历史、点赞、评论等),提取用户的视觉偏好和行为特征。
  • 内容特征提取:通过 NLP 技术分析物品的文本内容(如标题、描述、标签等),提取物品的主题、属性、语义等特征;通过 CV 技术分析物品的图像、视频内容(如商品图片、视频片段等),提取物品的视觉特征和内容信息。
  • 特征融合与匹配:将用户特征和内容特征进行融合,计算用户与物品之间的匹配度,从而实现精准推荐。NLP 和 CV 技术提取的特征可以相互补充,提供更全面的用户和内容信息,提高推荐的准确性和多样性。

社交媒体场景

社交媒体分析

社交媒体平台(如Twitter、Facebook、抖音等)每天产生数以亿计的文本、图像和视频数据,这些数据蕴含用户观点、社会趋势和商业价值。自然语言处理(NLP)技术通过解析非结构化内容,为社交媒体分析提供了强大的工具,其核心应用场景包括以下几个方面:

1. 用户情感与舆情分析

NLP技术能够从海量短文本(如推文、评论、弹幕)中识别用户情感倾向。例如,基于深度学习的情感分类模型(如BERT、RoBERTa)可区分文本中的正面、负面或中性情绪,帮助企业实时监测品牌声誉。2021年新冠疫情期间,研究者利用情感分析追踪全球社交平台上的公众情绪波动,发现负面情绪与疫情严重性呈显著正相关。此外,细粒度分析(如针对产品特性的情感挖掘)可揭示用户对“手机续航”或“屏幕清晰度”的具体评价,辅助企业优化产品设计。

2. 话题发现与趋势预测

社交媒体数据具有实时性和爆发性,传统人工监控难以应对。通过NLP中的主题建模(如LDA、BERTopic)和事件检测技术,系统可自动识别新兴话题(如#元宇宙、#碳中和),并追踪其传播路径。例如,Twitter上“#BlackLivesMatter”标签的扩散模式分析,揭示了意见领袖在推动社会运动中的关键作用。结合时间序列预测模型(如Prophet、LSTM),平台可预判热门话题的演化趋势,为媒体运营或广告投放提供决策依据。

3. 虚假信息与仇恨言论检测

社交媒体常成为虚假新闻和恶意内容的温床。NLP技术通过多维度特征(如语义矛盾性、情感煽动性、用户历史行为)识别可疑内容。例如,基于Transformer的模型可检测到“某明星去世”的谣言与权威媒体表述之间的语义冲突;图神经网络(GNN)则通过分析转发网络中的“机器人账号集群”,揭露水军操控舆论的行为。欧盟2023年实施的《数字服务法案》(DSA)要求平台部署自动化审核工具,NLP在此类合规性建设中扮演了核心角色。

4. 个性化推荐与用户画像

社交媒体平台依赖NLP技术理解用户兴趣。例如,通过分析用户发布的文本(如“周末登山打卡”)、点赞内容及评论互动,系统可构建动态用户画像,推荐相关群组或广告。TikTok的推荐算法不仅分析视频标签,还会提取字幕中的关键词(如“徒步装备”),并与用户历史行为语义匹配。此外,跨语言NLP技术(如mBERT)可打破语言壁垒,向西班牙语用户推荐中文短视频的翻译版本,扩大内容传播范围。

5. 多模态内容理解

社交媒体数据常融合文本、图像、视频和音频。多模态NLP模型(如CLIP、Florence)能够实现跨模态关联分析:例如,自动生成图片描述(Alt-text)以提升无障碍访问能力,或检测图文不一致的误导性内容(如配图为“某地火灾”但文字描述为“庆典现场”)。Instagram的“自动标签推荐”功能即利用视觉-语言联合模型,识别照片中的物体(如“咖啡杯”)并建议关联话题(如#咖啡爱好者)。

技术挑战与未来方向

尽管NLP在社交媒体分析中成果显著,仍面临诸多挑战:

  • 数据噪声:网络用语(如“yyds”“绝绝子”)、拼写错误和方言需更鲁棒的预处理方法。
  • 实时性要求:需轻量化模型(如蒸馏后的TinyBERT)应对每秒数万条的实时数据流。
  • 伦理与隐私:用户匿名化与数据脱敏技术(如差分隐私)需与内容分析能力平衡。

计算社会科学

社会科学的很多问题是可以用NLP来建模的。NLP在这个过程中提供了丰富的特征。我当然知道现在的文科生做量化需要点什么,其实说白了大部分人还停留在传统的统计检验和分析时代,这在我的《数学建模导论》里面可以直接找得到代码案例。社会科学的研究看重可解释性与置信度,这是统计学的东西,那么我的机器学习与自然语言处理在其中扮演了怎样的角色呢?

自然语言处理为社会科学的量化研究提供了丰富的特征。

比如,如果我们需要做一个舆情热度预测,这是一个典型的机器学习预测问题。传统的量化方法选择使用线性回归来做,这可以帮助我们观察到每个社会科学特征的重要性与置信度(能否通过检验)。比如,我写个代码:

import pandas as pd
import statsmodels.api as sm
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt# 加载数据
df = pd.read_csv('dataset.csv')# 假设特征为 X1, X2, ..., X10,标签为 'target'
# 特征就是用来预测的“自变量”
# target是热度值这一列
features = ['X1', 'X2', 'X3', 'X4', 'X5', 'X6', 'X7', 'X8', 'X9', 'X10']
X = df[features]
y = df['target']# 添加截距项(线性回归中通常需要添加一个常数项)
X = sm.add_constant(X)# 构建线性回归模型
model = sm.OLS(y, X)# 拟合模型
results = model.fit()# 打印回归结果
print(results.summary())# 计算预测值
y_pred = results.predict(X)# 评估模型性能
mse = mean_squared_error(y, y_pred)
r2 = r2_score(y, y_pred)
print(f'\nMean Squared Error (MSE): {mse:.2f}')
print(f'R-squared (R²): {r2:.2f}')# 可视化预测结果
plt.scatter(y, y_pred)
plt.xlabel('Actual values')
plt.ylabel('Predicted values')
plt.title('Actual vs Predicted Values')
plt.show()

但如果我们对于统计检验限制没有那么死,只是需要模型的可解释性强一点,那么我们可以选择一些基于树结构的集成学习为基座。比如说,我们如果要预测数据集中的社交媒体用户是否陷入了信息茧房,每个用户的浏览微博文本和评论文本以及他们在社交媒体上的转评赞等行为数据都已经被脱敏出来给你了,你怎么计算?对文本的分析是肯定要用NLP的。那用完以后呢?你还是需要对是否陷入茧房这件事进行建模,NLP是你的特征分析工具。为了可解释性,不去端到端用神经网络一步到位是必要的;为了海量社交媒体短文本的处理效率,不去盲目使用大语言模型是正确的。比如我现在就用机器学习里面的强baseline做一个用户是否陷入信息茧房的预测(这里标签只有是、否):

import pandas as pd
from sklearn.model_selection import train_test_split# 加载数据
df = pd.read_csv('dataset.csv')# 假设特征列为 'feature1', 'feature2', ..., 'feature10',标签列为 'label'
features = ['feature1', 'feature2', 'feature3', 'feature4', 'feature5', 'feature6', 'feature7', 'feature8', 'feature9', 'feature10']
X = df[features]
y = df['label']# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
import xgboost as xgb
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix# 创建XGBoost分类器
clf = xgb.XGBClassifier(objective='binary:logistic',  # 二分类任务eval_metric='auc',            # 评估指标为AUCmax_depth=4,                  # 树的最大深度learning_rate=0.1,            # 学习率n_estimators=100,             # 弱分类器数量subsample=0.8,                # 子采样比例colsample_bytree=0.8,         # 每棵树的列采样比例random_state=42
)# 训练模型
clf.fit(X_train, y_train)# 预测测试集
y_pred = clf.predict(X_test)
y_pred_proba = clf.predict_proba(X_test)[:, 1]  # 获取预测概率
# 计算评估指标
accuracy = accuracy_score(y_test, y_pred)
auc = xgb.metric.auc(y_test, y_pred_proba)
print(f'Accuracy: {accuracy:.2f}')
print(f'AUC: {auc:.2f}')# 打印分类报告
print(classification_report(y_test, y_pred))# 打印混淆矩阵
print(confusion_matrix(y_test, y_pred))
import matplotlib.pyplot as plt
from xgboost import plot_tree# 绘制第0棵树的结构
plt.figure(figsize=(20, 10))
plot_tree(clf, num_trees=0)
plt.show()
# 绘制特征重要性
plt.figure(figsize=(10, 6))
plot_importance(clf)
plt.show()
# 训练模型并记录每一轮的评估指标
evals = [(X_train, y_train), (X_test, y_test)]
history = clf.fit(X_train, y_train, eval_set=evals, eval_metric='mlogloss', verbose=False)# 获取训练过程中的损失值
eval_result = clf.evals_result()
train_mlogloss = eval_result['validation_0']['mlogloss']
test_mlogloss = eval_result['validation_1']['mlogloss']# 绘制损失曲线
plt.figure(figsize=(10, 6))
plt.plot(range(len(train_mlogloss)), train_mlogloss, label='Train mlogloss')
plt.plot(range(len(test_mlogloss)), test_mlogloss, label='Test mlogloss')
plt.xlabel('Iterations')
plt.ylabel('mlogloss')
plt.title('mlogloss vs Iterations')
plt.legend()
plt.show()

通过这个重要性分数,你还可以分析哪些特征对你重要。那么社会科学的知识对你来说有什么作用?是为了构造特征、分析特征、筛选特征、解释特征。一切的领域知识,最终都会回到特征工程的问题上。

除此以外,随着LLM被接入社交媒体,基于LLM的虚假信息、水军、分布式账号等问题也会逐渐显露出来。人-LLM交互将表现出比人-人交互更多的新现象,包括一直死了很久的仿真模拟方法,通过LLM创建Agent进行Multi-Agent交互也能对社会行为产生一定的模拟。LLM与Agent为代表的方法,将会成为计算社会科学研究新的研究范式

垂直领域场景

医疗场景

医疗领域本身是一个高度专业化的领域,数据量大、信息复杂,而自然语言处理的优势在于处理文本数据,所以它们的结合点应该集中在如何利用NLP技术来解决医疗中的实际问题。比如,电子病历、医学文献、患者沟通、药物研发,这些都是医疗领域中数据密集型的场景,NLP应该能发挥很大的作用。

电子病历是医疗领域中非常重要的数据来源,医生每天都会记录大量的患者信息,这些信息往往是非结构化的文本形式。NLP可以帮助把这些文本信息提取出来,比如患者的症状、诊断结果、治疗方案等。嗯,这里可以提到信息抽取技术,比如命名实体识别(NER),它可以识别出文本中的关键信息,比如疾病名称、药物名称、剂量等。还有关系抽取,这个可以用来分析症状和疾病之间的关系,或者药物和副作用之间的关系。这些技术确实能提高电子病历的利用效率,帮助医生更快地获取关键信息。

医学文献的数量非常庞大,而且更新速度很快,医生和研究人员不可能逐一阅读所有文献。NLP在这里可以做文献检索和推荐,比如根据用户的需求,快速找到相关的文献。关键词提取和文本摘要技术可以帮助用户快速了解文献的核心内容。对了,还有文献分类和聚类,这些技术可以用来组织文献,比如按照疾病类型、治疗方法等进行分类,这样用户就能更快地找到自己需要的内容。

患者和医生之间的沟通往往会影响治疗效果。NLP可以用来分析患者的反馈,比如从患者的评论中提取出他们对治疗的满意度、对医生的态度等。还有聊天机器人,这个可以用来回答患者的一些常见问题,减轻医生的工作负担。后来,很多公司也使用聊天系统和大模型开发了心理健康诊断与辅助治疗系统。

最后,我觉得可以谈谈药物研发。药物研发是一个非常复杂的过程,需要大量的数据支持。NLP可以用来分析药物说明书,比如提取药物的适应症、副作用、剂量等信息。嗯,这里可以提到文本分类技术,用来判断药物的类型,比如是抗生素还是抗病毒药物。对了,还有药物相互作用分析,这个可以用来预测不同药物之间的相互作用,帮助医生更安全地开药。

在医疗领域最大的问题其实还是数据源。医疗数据有很多伦理限制,并且要保证高精度分析。未来,LLM与医疗领域的结合会更加密切,为医疗工作者打造坚实的知识基座。

金融场景

自然语言处理(NLP)技术在金融领域的应用日益广泛,为金融机构提供了强大的工具来处理和分析海量的文本数据,从而提升决策效率、优化客户服务、加强风险管理,并创造新的商业价值。以下将从多个方面探讨自然语言处理在金融领域中的具体应用。

首先,金融信息检索与分析是自然语言处理在金融领域的重要应用之一。金融机构每天需要处理大量的新闻报道、公司财报、市场分析等文本信息,通过自然语言处理技术,可以快速准确地从这些文本中提取关键信息,如公司业绩、市场趋势、行业动态等,为投资决策提供有力支持。例如,利用文本分类和情感分析技术,可以对新闻报道和社交媒体上的信息进行实时监测和分析,帮助投资者及时了解市场情绪和潜在风险,从而做出更加明智的投资决策。

其次,智能客服与客户关系管理也是自然语言处理技术在金融领域的重要应用场景。通过自然语言处理技术,金融机构可以开发智能客服系统,实现自动回答客户咨询、处理投诉和提供个性化服务等功能,从而提高客户服务效率和客户满意度。例如,利用语音识别和自然语言理解技术,智能客服系统可以准确理解客户的语音指令和问题,并提供相应的解答和建议,大大提升了客户服务的便捷性和效率。此外,自然语言处理技术还可以通过对客户的历史交易记录、咨询记录等数据进行分析,挖掘客户的潜在需求和偏好,为客户提供更加个性化的金融产品和服务推荐,从而增强客户粘性和忠诚度。

再次,金融风险管理是自然语言处理技术在金融领域的另一个重要应用方向。金融机构可以通过自然语言处理技术对客户的信用记录、社交媒体活动等文本数据进行分析,评估客户的信用风险和违约概率,从而优化信贷决策和风险管理策略。例如,通过对客户的社交媒体活动进行情感分析和行为模式识别,可以发现客户的潜在财务困境和信用风险,及时采取相应的风险控制措施,降低金融机构的信贷损失。此外,自然语言处理技术还可以通过对市场新闻、行业报告等文本数据的分析,识别潜在的市场风险和系统性风险,为金融机构的风险预警和应对提供有力支持。

此外,金融产品创新与营销也是自然语言处理技术在金融领域的重要应用领域。通过自然语言处理技术,金融机构可以对市场上的金融产品和服务进行分析和比较,挖掘市场需求和创新点,从而开发出更具竞争力的金融产品和服务。例如,通过对客户对金融产品的评价和反馈进行文本挖掘和情感分析,可以了解客户对现有金融产品的满意度和改进建议,为金融产品的优化和创新提供参考。同时,自然语言处理技术还可以通过对市场趋势和客户需求的分析,为金融产品的营销和推广提供精准的定位和策略,提高营销效果和市场竞争力。

最后,金融监管与合规也是自然语言处理技术在金融领域的重要应用方向。金融机构可以通过自然语言处理技术对监管政策、法律法规等文本数据进行分析和解读,确保自身的业务活动符合监管要求和合规标准。例如,利用自然语言处理技术可以对监管政策的变化进行实时监测和分析,帮助金融机构及时调整业务策略和合规措施,避免因违规行为而面临的法律风险和处罚。此外,自然语言处理技术还可以通过对金融机构的内部文档、通信记录等文本数据的分析,发现潜在的合规风险和问题,及时采取相应的整改措施,加强金融机构的内部合规管理。

综上所述,自然语言处理技术在金融领域中的应用前景广阔,不仅可以帮助金融机构提高信息处理效率、优化客户服务、加强风险管理,还可以促进金融产品创新、提升营销效果、确保合规运营,为金融行业的数字化转型和创新发展提供了强大的技术支持和保障。随着自然语言处理技术的不断发展和完善,其在金融领域的应用将更加深入和广泛,为金融机构创造更大的价值和竞争优势。

网络安全场景

自然语言处理(NLP)技术在网络安全领域的应用日益广泛,为应对复杂的网络威胁和攻击提供了强大的工具。以下将从多个方面探讨自然语言处理在网络安全领域中的具体应用。

网络安全知识问答

自然语言处理技术在网络安全知识问答系统中发挥着重要作用。通过构建网络安全知识图谱和语义理解模型,NLP技术能够理解用户提出的复杂问题,并从海量的网络安全知识库中快速准确地找到答案。例如,用户可以询问“如何防范DDoS攻击”,系统能够理解问题的意图,并提供相关的防御策略、工具和技术建议。这种知识问答系统不仅提高了网络安全知识的获取效率,还为网络安全从业人员提供了便捷的学习和参考工具。这其中,奇安信公司开发的QAX-GPT模型就是网安领域垂直大模型的一个典例。
image
(连奇安信都开始DeepSeek-R1了)

加密流量分析中的预训练与大语言模型

在加密流量分析中,预训练模型和大语言模型为网络安全分析提供了新的思路。由于加密流量的内容无法直接读取,传统的分析方法往往依赖于流量特征和模式识别。然而,通过利用预训练模型(如BERT、GPT等)的强大语言理解和生成能力,可以对加密流量的上下文信息进行分析,识别潜在的恶意行为和异常模式。例如,通过对加密流量的元数据和上下文信息进行建模,大语言模型可以生成与加密流量相关的语义描述,帮助分析师更好地理解流量的性质和潜在威胁。其中,我们组以前师兄们的工作就非常具有代表性。比如ET-BERT,是我们组里面一个已经毕业的师兄之前的工作,首次提出将BERT应用到加密后的二进制流量报文中进行预训练,实现加密后流量的分类识别,对IDS有着重要意义。另外,还有一篇工作TrafficLLM的一作,也是从我们组走出来的优秀博士学长,是高性能的加密流量分析大模型。
image

插播一则小广告:如果有对网络安全特别是加密流量分析领域感兴趣的同学,欢迎报考中国科学院信息工程研究所!

日志分析中的NLP技术

自然语言处理技术在日志分析中具有重要应用价值。网络安全日志通常包含大量的文本信息,如系统事件、网络连接记录、用户行为等。通过NLP技术,可以对这些日志进行自动解析、分类和情感分析,提取关键信息并识别异常行为。例如,利用文本分类技术可以将日志分为正常和异常两类,利用情感分析技术可以识别日志中的紧急或警告信息,从而及时发现潜在的安全威胁。此外,NLP技术还可以通过对日志的语义理解,生成日志摘要和报告,帮助分析师快速了解系统的安全状态。
image

代码漏洞分析中的NLP技术

在代码漏洞分析中,自然语言处理技术可以辅助静态代码分析工具,提高漏洞检测的准确性和效率。通过对代码注释、文档和变量名等文本信息的分析,NLP技术可以提取代码的语义信息,识别潜在的漏洞模式和风险点。例如,利用文本挖掘技术可以分析代码中的敏感函数调用和异常处理逻辑,结合静态代码分析结果,生成更准确的漏洞报告。此外,NLP技术还可以通过对代码的语义理解,提供代码修复建议和安全编码指导,帮助开发人员提高代码的安全性。

威胁情报分析

威胁情报是指关于潜在网络威胁和攻击者的信息,包括攻击者的动机、目标、技术和行为模式等。通过NLP技术,可以对威胁情报进行自动分析和处理,构建威胁情报知识图谱,实现对威胁情报的高效管理和利用。例如,利用文本分类和实体识别技术,可以对威胁情报进行分类和标注,提取关键实体和关系,构建知识图谱。此外,NLP技术还可以通过对网络公害主体的文本信息进行分析,扩线和溯源潜在的攻击者,识别其关联网络和攻击模式,为网络安全防御提供有力支持。
image
image

基于Agent的自动网络攻防技术

自然语言处理技术在基于Agent的自动网络攻防技术中具有重要应用。通过构建具有自然语言理解能力的智能Agent,可以实现自动化的网络攻击和防御。例如,在网络攻击场景中,Agent可以通过分析目标系统的文本信息,生成攻击策略和脚本;在网络防御场景中,Agent可以通过分析网络流量和日志的文本信息,自动检测和响应潜在的威胁。此外,NLP技术还可以用于Agent之间的通信和协作,实现多Agent系统的协同防御和攻击。

网安领域NLP与大模型面临的威胁与挑战

尽管自然语言处理和大模型技术在网络安全领域具有广泛的应用前景,但也面临着一些威胁和挑战。首先,数据隐私和安全问题是一个重要挑战,由于NLP模型需要大量的文本数据进行训练,如何保护数据隐私和防止数据泄露是一个关键问题。其次,模型的可解释性和可靠性也是一个挑战,大模型的复杂性和黑箱特性使得其在网络安全领域的应用存在一定的风险。此外,对抗攻击和模型中毒等问题也对NLP模型的安全性提出了挑战。因此,未来需要在技术、法律和伦理等多个层面加强研究和规范,确保NLP技术在网络安全领域的健康发展。

代码领域场景

代码理解

代码理解是软件开发和维护过程中的关键任务,旨在帮助开发者快速、准确地把握代码的功能、逻辑和结构。随着软件系统的规模和复杂度不断增加,传统的手动代码阅读方式已难以满足需求。近年来,自然语言处理和深度学习技术的发展为代码理解提供了新的解决方案,使其更加高效和智能化。

代码理解任务的核心是通过自动化手段解析和解释代码,使开发者能够快速理解代码的意图和功能。具体来说,代码理解包括以下几个方面:

  • 语义理解:理解代码的语义,即代码所表达的功能和逻辑。
  • 结构分析:分析代码的结构,包括函数调用关系、类的继承关系等。
  • 注释生成:根据代码生成自然语言注释,帮助开发者理解代码的功能。
  • 代码搜索:在大规模代码库中搜索与特定功能或逻辑相关的代码片段。
  • 代码推荐:根据上下文推荐相关的代码片段或函数。

近年来,深度学习技术在代码语言理解领域取得了显著进展。以下是一些代表性的工作:

  • 注释生成:早期的注释生成方法主要基于模板和规则,效果有限。随着深度学习的发展,研究人员开始使用序列到序列(Seq2Seq)模型进行注释生成。例如,Iyer 等人(2016)使用基于 LSTM 的 Seq2Seq 模型,将代码作为输入,生成对应的自然语言注释。
  • 代码文本生成:代码文本生成任务旨在根据自然语言描述生成代码。早期的工作主要基于模板和规则,后来逐渐转向基于深度学习的方法。例如,Rabinovich 等人(2017)使用基于注意力机制的 Seq2Seq 模型,实现了从自然语言描述到代码的生成。
  • 代码理解与补全:代码补全任务旨在根据上下文自动补全代码。深度学习模型如 Transformer 在这一任务中表现出色。例如,Kushman 等人(2013)使用基于 Transformer 的模型实现了代码补全任务。

随着大语言模型(如 GPT-3、CodeBERT 等)的出现,代码语言理解迎来了新的发展机遇。这些模型在大规模代码和自然语言数据上进行预训练,能够更好地理解代码的语义和结构。

  • 代码补全:大语言模型在代码补全任务中表现出色。例如,OpenAI 的 GPT-3 模型能够根据上下文生成高质量的代码补全建议。
  • 代码解释:大语言模型能够生成代码的自然语言解释,帮助开发者理解代码的功能。例如,CodeBERT 是一个基于 BERT 的预训练模型,专门用于代码和自然语言的理解任务。
  • 代码搜索:大语言模型可以用于代码搜索任务,通过自然语言查询在大规模代码库中找到相关的代码片段。例如,GitHub Copilot 使用 GPT-3 模型实现了代码搜索和推荐功能。

在实际开发中,一些工具和平台利用自然语言处理技术帮助开发者更好地理解代码:

  • Cursor:Cursor 是一个基于 AI 的代码编辑器插件,能够提供代码补全、解释和重构建议。它利用大语言模型理解代码上下文,生成相关的建议和解释。
  • MarsCode:MarsCode 是一个智能代码编辑器,集成了自然语言处理技术,能够提供代码补全、错误检测和代码解释功能。它通过分析代码的语义和结构,帮助开发者快速理解代码。
  • 通义灵码:通义灵码是一个基于大语言模型的代码理解工具,能够生成代码的自然语言解释和注释。它通过分析代码的语义和结构,提供详细的代码解释,帮助开发者快速理解代码的功能和逻辑。
    这几个工具很简单,大家直接下载软件或者VSCode插件玩起来就好。这些工具具备了理解代码和生成代码的功能,只需要你提供需求,它就能生成好的代码。

image

代码生成

代码生成是自然语言处理和人工智能领域中的一个重要任务,旨在通过自动化手段生成可执行的代码,以提高软件开发效率、减少人工编码错误,并促进编程教育的普及。随着深度学习和大语言模型的发展,代码生成技术取得了显著进展,逐渐从实验室走向实际应用。代码语言模型是代码生成的核心技术之一,它通过学习大量代码数据的统计规律和语义信息,能够生成符合编程语言语法和语义的代码片段。代码生成任务通常包括以下几种形式:

  • 从自然语言描述生成代码:根据自然语言描述的功能需求,生成相应的代码实现。例如,给定“实现一个函数,计算两个数的和”,模型应生成相应的代码。
  • 代码补全:根据上下文代码,预测并补全当前代码片段。例如,在编写函数时,模型可以自动补全函数体或参数列表。
  • 代码转换:将代码从一种编程语言转换为另一种编程语言。例如,将 Python 代码转换为 Java 代码。
  • 代码优化:对现有代码进行优化,提高其性能或可读性。

基于深度学习的代码生成技术近年来取得了显著进展,早期的代码生成模型主要基于递归神经网络(RNN)和长短期记忆网络(LSTM)。这些模型能够处理序列数据,但对长序列的处理能力有限。例如,Sutskever 等人(2014)。Seq2Seq 模型是代码生成中的一个重要里程碑。它通过编码器-解码器架构,能够处理更复杂的序列转换任务。例如,Iyer 等人(2016)。而注意力机制的引入显著提高了代码生成模型的性能。通过注意力机制,模型能够更好地关注输入序列中的关键部分,生成更准确的代码。Transformer 模型的出现进一步推动了代码生成技术的发展。其自注意力机制能够处理长序列数据,生成高质量的代码。例如,Kushman 等人(2020)使用基于 Transformer 的模型,实现了从自然语言描述到代码的生成。

NL2SQL 是代码生成中的一个重要子问题,旨在将自然语言查询转换为 SQL 语句。这一任务在数据库查询和数据可视化领域具有重要应用。早期的 NL2SQL 模型主要基于规则和模板,效果有限。例如,Zelle 和 Mooney(1996)使用基于规则的方法,将自然语言查询转换为 SQL 语句。随着深度学习的发展,研究人员开始使用 Seq2Seq 模型和注意力机制进行 NL2SQL 任务。例如,Yin 和 Neubig(2017)使用基于注意力机制的 Seq2Seq 模型,实现了从自然语言查询到 SQL 语句的生成。预训练模型如 BERT 和 GPT 在 NL2SQL 任务中表现出色。通过在大规模数据上进行预训练,这些模型能够更好地理解自然语言和 SQL 语句的语义关系。多模态和多任务学习方法进一步提高了 NL2SQL 模型的性能。通过结合文本、表格和图表等多种模态信息,模型能够更准确地理解用户意图,生成正确的 SQL 语句。例如,Dong 和 Lapata(2020)使用多模态学习方法,实现了从自然语言查询到 SQL 语句的转换,并且引入了多模态信息。

随着大语言模型(如 GPT-3、CodeBERT 等)的出现,代码语言理解迎来了新的发展机遇。这些模型在大规模代码和自然语言数据上进行预训练,能够更好地理解代码的语义和结构。上面提到的cursor、MarsCode、通义灵码等,也都是很好的辅助写代码助手。

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

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

相关文章

提取东京食尸鬼主题曲

钢琴的声音实在是太好听了,这演奏者的指法真的逆天了! 利用IE缓存来提取视频文件是屡试不爽啊,只要视频不是经过加密的,均能提取成功。打开IE浏览器,关闭所有标签,仅留下一个空白标签,并打开Internet选项删除浏览历史记录点设置,查看文件,打开缓存文件夹,删除文件夹内…

树梅派XBMC解决方案比较

本文是Raspberry Pi XBMC Solutions Compared: Raspbmc vs OpenELEC vs XBian的译文,可能已经过时。XMBC是我们最喜欢的媒体中心解决方案之一。Raspberry Pi使得打造一台豪华的XMBC机器仅需35$。有三个为Pi定制的版本,但是,你该选择哪一个呢?这些版本略有差异,各有长短。本…

deepseek破限的一种方法

起因是https://www.south-plus.net/read.php?tid=2455666这篇帖子的作者在B22F提到他的Deepseek的破甲关键词和使用流程,咱直接复制粘贴直接被deepseek拒绝了呜呜呜 失败案例: 我大致提取了一段不会被办的话,试了一下可以和其他的混合使用破甲效果极佳(但是荤段子得靠其他…

实体机双系统

本文年代久远,可能已经不再适用。仅供参考首先说一下,双系统并不会影响两个系统各自的速度。两个系统都是独立的,分别位于硬盘的不同位置,独立运行。也就是说,当一个系统在运行时,另一个系统只是储存在硬盘上的文件,这自然不会对系统的速度有影响。 另外,安装双系统是有…

2024.1.17web HTTP协议基础

2.1 HTTP的基本概念与交互模型 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。 HTTP 协议的特点 1.无连接—限制每次连接只处理一个请求 2.无状态—协议对于事务…

173 词转换成向量形式

介绍一下\(\text{Skip-Gram}\)算法。非常简单的一个算法,训练集由\(\text{context}\)和\(\text{target}\)组成,前者是一个句子中的某一个单词,后者是这个句子中这个单词临近的某个词。举例如下我们获得单词的嵌入向量后,就放入神经网络中去跑,再利用\(\text{Softmax}\)如下…

对象

Array:数组 定义 var 变量名 = new Array(元素) var arr = new Array(1,2,3); var 变量名 = [元素] var arr = [1,2,3]; arr[索引]=值; 可以变长变类型

《操作系统真相还原》实验记录2.9——完善内存管理系统

本文章实现内容如下: ① 完成了更细粒度的内存分配机制——arena机制的建立 ② 完成了内存分配系统调用 malloc() 的实现 ③ 完成了内存释放系统调用 free() 的实现一、malloc 底层原理之前我们虽然已经实现了内存管理,但显得过于粗糙,分配的内存都是以 4KB 大小的页框为单位…

智能化客户画像构建管理:AI视频监控在大型商场的技术方案介绍(part5)

前言:某商家为了优化卖场服务与营销策略,希望通过非侵入式手段获取客户画像,不仅可以帮助卖场提升服务质量、优化营销策略,还能通过数据驱动的方式提升销售业绩和顾客满意度,为卖场的长期发展奠定坚实的基础。具体需求 1、性别分析:识别顾客的性别比例,为产品布局和服务…

169 使用词嵌入

以判断人名为例。如果我们只使用独热编码,那么我们的训练集不能太大(否则维度爆炸),所以遇到了下面这种情况我们没有在训练集中坚果durian和cultivator,导致我们没有判断出来Robert Lin是人名 但是如果我们使用词嵌入,我们的训练集就可以很大(从网上下载即可),然后通过…

简单的Java程序 HelloWorld

HelloWorld谁便新建一个文件,存放代码 新建一个Java文件文件后缀名为.java Hello.java 系统可能没有显示文件后缀名,需要手动打开编写代码 public class Hello{public static void main(String[] args){System.out.print("Hello,World");} }1. 编译 javac java文…

『ubuntu使用」在桌面建立一个文件夹的快捷方式

ubuntu 24.04 可能是我笨,这个原本觉得非常简单的操作,竟然还有陷阱。我想把主文件夹中的一个目录,放到桌面的快捷方式,希望可以快速访问。试了很多操作都不行,只能百度了…… 问题复述: 我想把“工作目录”这个文件夹在桌面建立一个快捷方式,在查到使用ln -s 命令以后,…