文章目录

  • 1、自然语言处理概述
    • NLP意义与难点
  • 2、NLP核心问题与主要应用
    • 2.1 核心问题
    • 2.2 主要应用
  • 3、NLP中机器学习与深度学习方法
    • 3.1 NLP的机器学习与深度学习方法
    • 3.2 典型应用的解决效果
  • 4、NLP应用:基于评论情感分析的酒店挑选
    • 4.1 基础知识及项目背景
    • 4.2 解决方案
      • A. 数据读取
      • B. 机器学习解决方案
      • C. 深度学习解决方案
  • 5、项目书写

本文主要是对《AI工程师(自然语言处理)体验课》课程的笔记整理
讲师:寒小阳

1、自然语言处理概述

定义:自然语言处理(Natural Language Processing),简称NLP,是一种利用计算机为工具对人类特有的书面形式和口头形式的自然语言的信息进行各种类型处理和加工的技术
任务:通过处理和理解语言,来构建执行某些任务的系统

地位:人工智能与语言学的交叉学科,是人工智能的一个重要分支
- 跟计算机视觉、语音等构成人工智能不同研究领域
- 也被叫做计算语言学
- 基于机器学习和深度学习可以解决很多NLP问题

Turing Test(图灵测试):自然语言理解是人工智能的根本问题

自然语言处理的层级

从左到右: 声音、词态学、语句结构,上层语义,高级应用如文本推理

NLP意义与难点

  • 逻辑性强
  • 依赖于强大知识库

2、NLP核心问题与主要应用

2.1 核心问题

2.2 主要应用

  • 搜索引擎
  • 文本主题与标签分类
  • 文本创作与生成
  • 机器翻译
  • 情感分析与舆情监控
  • 语音识别应用
  • 聊天机器人:如Siri

3、NLP中机器学习与深度学习方法

3.1 NLP的机器学习与深度学习方法

机器学习:人工对文本提取特征(预处理),稀疏表达
深度学习:端到端的学习,也叫做表示学习,稠密向量

机器学习基本处理流程


机器学习: 基于高维&稀疏的特征,如SVMLogistic回归
深度学习:基于密集向量

3.2 典型应用的解决效果

4、NLP应用:基于评论情感分析的酒店挑选

4.1 基础知识及项目背景

项目名称: 酒店评论情感分析

情感分析:(也称为意见挖掘)是指用自然语言处理、文本挖掘以及计算机语言学等方法来识别和提取原素材中的主观信息。
具体表示就是,给你一段文本,用情感分析的自动化方法获取这一段内容中表达的情感色彩是什么?

通过爬虫技术获取到酒店的评论内容

传统机器学习文本表示:词袋模型
用稀疏向量去表示文本,也叫“独热向量”


深度学习文本表示:词嵌入(词向量)
以稠密向量的形式去表征词与词之间的向量关系

4.2 解决方案

机器学习解决方案:

深度学习解决方案:

模块导入

import warnings
warnings.filterwarnings("ignore")
import jieba
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['figure.figsize'] = (10, 5)
from wordcloud import WordCloud
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB

A. 数据读取

从网络上爬取了部分酒店的评论数据,用于这个场景的模型构建。

stopwords = []
for line in open("./stopwords.txt"):stopwords.append(line.strip())def read_file(fi, sentiment, stopwords, words, sentences):for line in open(fi):try:segs = jieba.lcut(line.strip())segs = [word for word in segs if word not in stopwords and len(word) > 1]words.extend(segs)sentences.append((segs, sentiment)) # tupleexcept:print(line)continuewords = []
sentences = []
sentiment = 1
read_file('./pos.txt', sentiment, stopwords, words, sentences)
sentiment = 0
read_file('./neg.txt', sentiment, stopwords, words, sentences)

B. 机器学习解决方案

# ML
x, y = zip(*sentences)
x = [" ".join(sentences) for sentences in x]
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=1, test_size=0.1)# feature extract
vec = CountVectorizer(ngram_range=(1, 2), max_features= 1000)
vec.fit(x_train)def get_feature(x):vec.transform(x)classifier = MultinomialNB()
classifier.fit(vec.transform(x_train), y_train)
# 测试
classifier.score(vec.transform(x_test), y_test)

也可以换成其他分类, 如SVM

C. 深度学习解决方案

通过构建LSTM实现情感分类

from keras.preprocessing.text import Tokenizer
from keras.preprocessing.sequence import pad_sequences
from keras.models import Sequential
from keras.layers import Dense, Embedding, LSTM
from sklearn.model_selection import train_test_split
import pandas as pdtokenizer = Tokenizer(nb_words=2500, split=' ') # 保留2500个词
tokenizer.fit_on_texts(x)
X = tokenizer.texts_to_sequences(x)
X = pad_sequences(X)# 设定embedding维度等超参数
embed_dim = 16
lstm_out = 100
batch_size = 32# 构建LSTM网络
model = Sequential()
model.add(Embedding(2500, embed_dim, input_length=X.shape[1], dropout=0.2))
model.add(LSTM(lstm_out, dropout_U=0.2, dropout_W=0.2))
model.add(Dense(2, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])Y = pd.get_dummies(pd.DataFrame({'label': [str(target) for target in y]})).values
X_train, X_valid, Y_train, Y_valid = train_test_split(X, Y, test_size=0.1, random_state==2018)# 拟合与训练模型
model.fit(X_train, Y_train, batch_size=batch_size, nb_epoch=10)# 验证
score, acc = model.evaluate(X_valid, Y_valid, verbose=2, batch_size=batch_size)
print('Logloss损失: %.2f' %(score))
print('验证集的准确率 :%.2f'%(acc))

5、项目书写

  • 项目背景:项目输入,输出,后续应用点
  • 项目数据:数据来源
  • 数据处理方法:是否有脏数据,如何处理脏数据,如何定义脏数据,是否有类别不均衡,如何解决,表示成什么形态
  • 模型选择与建模过程:选择什么模型,如何调优
  • 评估准则与效果:效果如何
  • 模型优化与提升bad case分析,优化点有哪些

项目考核点:

  1. 体现问题解决能力
  2. 信息检索能力,用到新的方法,调研,探索,下一步优化方向
  • 文本数据如何做预处理

    • 如何清洗数据
  • 对不均衡的类别如何处理
  • 文本数据特征工程方式
  • Word2vec/word embedding的理解
  • CNN/LSTM技术细节
  • 模型评估与过拟合解决方法

NLP_基于酒店评论的情感分析相关推荐

  1. 基于BiLSTM的酒店评论文本情感分析

    介绍:(需要有部分机器学习和深度学习,还有NLP的理论知识) 使用深度学习框架TensorFlow中的keras接口实现BiLstm神经网络,用训练集训练出一个模型,可以判断酒店评论文本的正负向情绪. ...

  2. python微博评论情感分析_基于Python的微博情感分析系统设计

    2019 年第 6 期 信息与电脑 China Computer & Communication 软件开发与应用 基于 Python 的微博情感分析系统设计 王 欣 周文龙 (武汉工程大学邮电 ...

  3. 数据分析案例-对某宝用户评论做情感分析

    目录 原始数据 绘制词云图 情感分析 原始数据 原始数据为某宝一商品的用户评论数据 绘制词云图 # coding=utf-8import jieba import re import wordclou ...

  4. (5)【整合】基于机器学习的酒店评论文本倾向性分析

    酒店评论情感分析系统(五)-- [整合]基于机器学习的酒店评论文本倾向性分析 本文主要是对之前的第三.四节所介绍的各分块进行整合. 流程: 对GUI界面输入的评论文本,先进行中文分词和去停用词,然后再 ...

  5. 基于SnowNLP的商品评论文本情感分析

           摘要:情感文本电商情感标注分析研究是当前电商数据情感挖掘学术研究的重要热点,具有极高的国际应用价值.对当前电商手机在线商品评论词典进行情感文本电商情感标注分析与词典数据情感挖掘研究具有很 ...

  6. 基于SnowNLP的购物评论文本情感分析及准确率验证

    因论文涉及到SnowNLP情感分析的内容,于是对该内容进行了学习,但发现网上的资源发布更新不及时,大多数文章均发布于18年及以前.由于python版本的迭代,使得以往的资源代码有所出入,因此我对于Sn ...

  7. 基于电商产品评论数据情感分析

    #!/usr/bin/env python # coding: utf-8# # -- 基于电商产品评论数据情感分析 --# ### 1.案例简介 # # 1.利用文本挖掘技术,对碎片化.非结构化的电 ...

  8. 基于python文本挖掘的电商产品评论数据情感分析报告

    背景 近年来,随着互联网的广泛应用和电子商务的迅速发展,网络文本及用户评论分析意义日益凸显,因此网络文本挖掘及网络文本情感分析技术应运而生,通过对文本或者用户评论的情感分析,企业能够进行更有效的管理等 ...

  9. 【项目实战】Python实现基于LDA主题模型进行电商产品评论数据情感分析

    说明:这是一个机器学习.数据挖掘实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 视频: Python实现基于LDA模型进行电商产品评论数据情感分析 ...

最新文章

  1. Java获取照片的Exif信息,并解析GPS
  2. cellpadding,cellspacing都是废弃的属性了,早已不推荐使用,最新的html5里已经彻底去掉了这些表现型的属性。
  3. DeepMind开源强化学习环境,灵活可配置,计算资源有限的小型实验室也能用
  4. windows10 上运行 linux -- Cygwin
  5. python fabric使用
  6. python基础论文_北大博士Python学习笔记,Python基础语法总结,一篇文章带你入门...
  7. 11.FreeRTOS学习笔记-内存管理
  8. php遗漏,PHP被遗漏的执行函数
  9. python高阶函数_python_bomb----高阶函数
  10. OpenCV精进之路(九):图像轮廓和图像分割修复——图像修复技术
  11. OpenGL基础38:数据存储
  12. Python 内置函数介绍
  13. IIS由于出现权限不足而无法读取配置文件解决方案
  14. 32位kali安装minidwep_原水_新浪博客
  15. S102公路第I标段施工图设计--河北工程大学土木工程学院
  16. 小程序发布上线全流程(包含小程序怎么通过审核)
  17. 基于单片机的简单温控风扇
  18. vue项目电商后台管理系统(一)
  19. java 鸡尾酒排序_十大经典排序【Java实现,手工作坊式】
  20. 维盟无线ap服务器地址,让WiFi飞起来!维盟室外无线AP桥接与中继配置方案

热门文章

  1. 热门影片怎么买票比较便宜,低价买电影票的方法,纯攻略!
  2. FFmpeg/FFplay/常用命令
  3. 还敢开车玩手机?AI“警察”来抓你!
  4. 实验11-1-8 查找子串 (20分)
  5. java jna 数据结构_开源框架JNA的使用
  6. 用python验证冰雹猜想_用Pythony验证万物归一(考拉咨猜想)
  7. CentOS7安装Chrome实现命令行截屏功能
  8. 【数字图像处理】图像直方图均衡化、空域滤波(均值滤波、中值滤波)、图像锐化(Laplace算子)、图像傅里叶变换实验
  9. react native报错:undefined Unable to resolve module 'Dimensions' from 'App.js
  10. 几个流行前端UI框架