版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自然语言处理技术应用v主讲人:CONTENTS目录自然语言处理概述01自然语言处理的应用02案例实现:店铺评论分析0304展望未来05本章小结自然语言处理的概念自然语言处理(NLP)是人工智能的一个重要子领域,融合了语言学与计算机科学的原理,旨在使计算机能够有效“理解”、解析并处理人类的文本和语音。人类语言是一个复杂的符号系统,涵盖了语法、语义、语用等多个层面,同时其表达形式千差万别。研究者们努力将自然语言转换为计算机能够理解和处理的格式,例如将自然语言文本转换为结构化数据或指令。自然语言处理的发展早期工作主要集中在机器翻译上,如1950年代的“巴尔干翻译”实验。90年代,伴随计算能力的提升和大数据的出现,自然语言处理逐渐转向基于统计的方法。21世纪初,神经语言模型被引入,如Word2Vec技术的出现,极大推动了词嵌入研究的发展。2017年,基于注意力机制的Transformer架构的提出,给自然语言处理领域带来了又一次重要的变革。自然语言处理简介词向量是一种将单词表示为连续向量的技术,通过将词语映射到一个高维向量空间,使得相似词语在该空间中距离较近。常见的方法有:Word2Vec、GloVe、FastText等。神经网络是一种模仿生物神经系统的计算模型,能够通过学习数据中的模式来完成各种任务。自然语言处理中常用的神经网络包括前馈神经网络(FFNN)和递归神经网络(RNN)。深度学习是一种基于多层神经网络的计算模型,旨在模拟人脑的工作方式。常用的模型包括卷积神经网络(CNN)和Transformer等。词向量神经网络深度学习自然语言处理的技术基础规则基础的机器翻译依赖于详细的语法规则和词汇数据库。通过分析源语言的语法结构,然后根据预设规则转换为目标语言。统计机器翻译通过分析大量双语文本数据,学习语言间的统计关系。典型特点是“短语表”,它将文本分解为短语单位,并学习这些短语如何在不同语言间转换。神经机器翻译使用深度学习中的神经网络,特别是RNN和Transformer模型,实现更加流畅和准确的翻译。自然语言处理的应用——机器翻译根据答案的相关性和可信度对答案进行排序,最终输出最佳答案。答案排序用于分析用户提出的问题,理解问题的语义和结构。问题解析用于在大量文本数据中查找与问题相关的信息。信息检索用于从检索到的文本中抽取可能的答案。答案抽取自然语言处理的应用——问答系统阶段核心技术优势典型问题处理规则驱动语法模板快速响应简单问题“中国最大的城市是?”→上海统计学习语料库+特征工程支持多语言/歧义处理“苹果多少钱一斤?”→区分水果/公司深度学习神经网络+预训练复杂语义/生成式回答“如何理解相对论?”→整合时空观解释01.02.03.通过对文本进行分词、词性标注和句法分析等操作,提取出与情感相关的特征。特征提取利用提取的特征训练情感分类器,如朴素贝叶斯、支持向量机(SVM)、卷积神经网络(CNN)等。模型训练通过交叉验证等技术,对模型进行调优,提高情感分类器的准确率和鲁棒性。算法优化自然语言处理的应用——情感分析案例实现:店铺评论分析03通过分析大众点评上的用户评论,深入了解各类商家的服务质量、消费者偏好以及市场趋势。如何利用大众点评用户评论洞察商业信息?案例实现:店铺评论分析——提出问题案例实现:店铺评论分析——解决方案情感分析模型构建过程使用pandas读取数据集,并查看数据大小以及基础信息。01任务1——统计不同商店的星级评分分布情况1.
import
pandas
as
pd2.
from
matplotlib
import
pyplot
as
plt3.import
seaborn
as
sns4.data
=
pd.read_csv('data.csv').astype(str)5.df.shape6.()7.data.head()代码:输出:任务1——统计不同商店的星级评分分布情况将评论星级数据处理为数值形式,然后用条形图展示各个星级评分出现的频数。02代码:输出:8.
data['comment_star'].value_counts()9.data.loc[data['comment_star']
==
'sml-str1','comment_star']
=
'sml-str10'10.data['stars']
=
data['comment_star'].str.findall(r'\d+').str.get(0)11.data['stars']
=
data['stars'].astype(float)/1012.sns.countplot(data=data,x='stars')任务1——统计不同商店的星级评分分布情况输出:不同商店的星级评分分布情况从图中可以看出各家店铺的评价分布不尽相同,但都有一个特点,评分都集中在好评和中评上。13.sns.boxplot(data=data,x='shopID',y='stars')使用seaborn库中的boxplot函数绘制箱线图。03代码:任务2——分析评论与星级评分的关系对数据中的时间特征进行提取。0114.
ment_time
=
pd.to_datetime(ment_time.str.findall(r'\d{4}-\d{2}-\d{2}
.+').str.get(0))15.
data['year']
=
ment_time.dt.year16.
data['month']
=
ment_time.dt.month17.
data['weekday']
=
ment_time.dt.weekday18.
data['hour']
=
ment_time.dt.hour代码:使用正则表达式从评论时间数据中提取符合指定日期时间格式的部分,将提取到的符合日期时间格式的字符串转换为Pandas的日期时间对象,并将其赋值给data['comment_time']。最后,从comment_time数据中提取年份、月份、星期几和小时数,并将这些信息分别存储在新的列'year'、'month'、'weekday'和'hour'中任务2——分析评论与星级评分的关系使用折线图展示不同小时在一周内的评论数量分布。0219.
fig1,
ax1=plt.subplots(figsize=(14,4))20.
df=data.groupby(['hour',
'weekday']).count()['cus_id'].unstack()21.
df.plot(ax=ax1,
style='-.')22.
plt.show()代码:输出:一周内不同小时段的评论分布情况评论的高峰出现在,中午11点、下午4点以及晚上10点,周六晚活跃的用户更多。任务2——分析评论与星级评分的关系使用箱线图展示了评论长度与星级评分的关系。0323.
data['comment_len']
=
data['cus_comment'].str.len()24.
fig2,
ax2=plt.subplots()25.
sns.boxplot(x='stars',y='comment_len',data=data,
ax=ax2)26.
ax2.set_ylim(0,600)代码:评论长度和星级评分箱线图输出:通过箱线图的展示结果可以观察到,给出1分或5分评分的评论通常更短。这似乎表明,简短的评论可能更具有冲击力。任务3——制作评论词云图除去非文本数据和无意义文本。利用jieba库对评论内容进行中文分词处理。0127.
data['cus_comment']
=
data['cus_comment'].str.replace(r'[^\u4e00-\u9fa5]','').str.replace('收起评论','')28.import
jieba29.data['cus_comment']
=
data['cus_comment'].apply(lambda
x:'
'.join(jieba.cut(x)))30.data['cus_comment'].head()代码:输出:分词后的文本内容任务3——制作评论词云图31.
from
wordcloud
import
WordCloud,
STOPWORDS32.from
PIL
import
Image
33.import
numpy
as
np
34.import
matplotlib.pyplot
as
plt35.import
matplotlib36.matplotlib.rcParams['font.sans-serif']
=
['KaiTi']37.matplotlib.rcParams['font.serif']
=
['KaiTi']38.infile
=
open("stopwords.txt",encoding='utf-8')39.stopwords_lst
=
infile.readlines()40.STOPWORDS
=
[x.strip()
for
x
in
stopwords_lst]41.stopwords
=
set(STOPWORDS)
生成评论词云图,并显示词云图像。02代码:42.
def
ciyun(shop_ID='all'):43.
texts
=
data['cus_comment']44.
if
shop_ID
==
'all':45.
text
=
'
'.join(texts)46.
else:47.
text
=
'
'.join(texts[data['shopID']==shop_ID])48.
wc
=
WordCloud(font_path="msyh.ttc",background_color
=
'white',49.max_words
=
100,stopwords
=
stopwords,50.
max_font_size
=
80,random_state
=42,margin=3)51.
wc.generate(text)
52.
plt.imshow(wc,interpolation="bilinear")53.
plt.axis("off")任务3——制作评论词云图54.
data['shopID'].unique()55.
ciyun('520004')任务4*——建立情感分析模型01构建标签值12345差评好评中评1.
def
zhuanhuan(score):2.
if
score
>
3:3.
return
14.
elif
score
<
3:5.
return
06.
else:7.
return
None
8.
data['target']
=
data['stars'].map(lambda
x:zhuanhuan(x))9.data_model
=
data.dropna()任务4*——建立情感分析模型03文本特征处理10.
from
sklearn.model_selection
import
train_test_split11.
x_train,
x_test,
y_train,
y_test
=
train_test_split(data_model['cus_comment'],
data_model['target'],
random_state=3,
test_size=0.25)12.
infile
=
open("stopwords.txt",encoding='utf-8')13.
stopwords_lst
=
infile.readlines()14.
stopwords
=
[x.strip()
for
x
in
stopwords_lst]15.
def
fenci(train_data):16.
words_df
=
train_data.apply(lambda
x:'
'.join(jieba.cut(x)))17.
return
words_df18.
x_train[:5]任务4*——建立情感分析模型03文本特征处理19.
from
sklearn.feature_extraction.text
import
TfidfVectorizer20.
tv
=
TfidfVectorizer(stop_words=stopwords,
max_features=3000,
ngram_range=(1,2))21.
tv.fit(x_train)任务4*——建立情感分析模型04机器学习建模22.
from
sklearn.naive_bayes
import
MultinomialNB23.
from
sklearn.metrics
import
roc_auc_score,
f1_score24.
classifier
=
MultinomialNB()25.
classifier.fit(tv.transform(x_train),
y_train)26.
classifier.score(tv.transform(x_test),
y_test)分类器在测试集上的准确率,结果为0.927530886962935627.
y_pred
=
classifier.predict_proba(tv.transform(x_test))[:,1]28.
roc_auc_score(y_test,y_pred)ROC-AUC分数:0.8971584233148908任务4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医联体绩效考核中满意度指标优化
- 1-Cbz-Azetidine-3-CH2NH2-生命科学试剂-MCE
- 2025年社区安全巡逻技巧培训
- 医疗需求评估的卫生政策效果
- 医疗资源需求预测与调配
- 产科护理中的经济负担与政策支持
- 2025年交通安全考试培训
- 2025-2026年高考英语月考必刷题-记叙文阅读
- 2025年安全鞋选择使用培训课件
- 护理中的环境管理
- AI在生物医药疫苗研发中的应用与前景【课件文档】
- 高钾血症诊疗指南(2025年版)
- 2025-2026学年地质版(新教材)小学体育与健康二年级全一册第二学期教学计划及进度表
- 2026年春季学期苏教版(2024)小学数学三年级下册教学计划
- JJF 2363-2026200 W~30 kW 激光功率计校准规范
- 2026年部编版新教材道德与法治小学三年级下册教学计划(含进度表)
- 2025年云南省省考面试真题(附答案)
- 2026春统编版(新教材)小学道德与法治二年级下册《身心健康很重要》课时练习及答案
- 房租租赁合同
- 福建省房屋建筑和市政基础设施工程施工机械台班费用定额(2021版)
- 绵竹电力公司志愿者服务队章程
评论
0/150
提交评论