《人工智能技术应用导论》课件-第三章 自然语言处理_第1页
《人工智能技术应用导论》课件-第三章 自然语言处理_第2页
《人工智能技术应用导论》课件-第三章 自然语言处理_第3页
《人工智能技术应用导论》课件-第三章 自然语言处理_第4页
《人工智能技术应用导论》课件-第三章 自然语言处理_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自然语言处理技术应用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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论