栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

《自然语言处理学习之路》11 文本特征方法对比,词袋,TFIDF,Word2Vec,神经网络

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《自然语言处理学习之路》11 文本特征方法对比,词袋,TFIDF,Word2Vec,神经网络

一、数据预处理与观测 1.1 数据简介: Disasters on social media

社交媒体上有些讨论是关于灾难 疾病 暴乱的 有些只是开玩笑或者是电影情节 我们该如何让机器能分辨出这两种讨论呢?

import keras 
import nltk
import pandas as pd
import numpy as np
import re
import codecs
questions pd.read_csv( )
questions.colums [ text , choose_one , class_label ]
questions.head()

questions.describe()


数据清洗 去掉无用字符,利用正则

输出

1.2数据分布情况

看数据时候倾斜 分类任务之前 先观测不同类别的数据是否有倾斜 倾斜的话就选择上采样或者下采样

看起来数据还算是均衡的

1.3 处理流程 分词训练与测试集检查与验证

分词

1.4 语料库情况

统计单词数目

统计句子长度

统计不重复的词数目

填充 每个文本的长度不一样长 在对于模型的输入 需要是每个样本的长度都是一样长 所以需要设置一个均值的长度 短的就填充 长的就切掉

二、文本特征构建 2.1 词袋模型 Bag of Word Counts 先构造语料库去重的所有词的文本矩阵再根据每个文本出现的词频 填充 没有的就是0

PCA展示Bag of Words

将维度的方法有多种PAC TSNE LDA SVD进行降低维度
利用PCA将维度降到2维度


基于不同的label画出不同的颜色

但是发现不同维度降低维度 数据都混淆再一起

逻辑回归建模分类


定义评估方法的函数

混淆矩阵检查




发现unsure的数值为0 因为这个分类的数量太少了 机器学习算法会朝着数据方向多的去做

进一步检查模型的关注点

逻辑回归是 x0w0 x1w1 ··· 所以我们可以查看w值的大小 可以看不同分类的哪些词的权重值更大

model.coef 调取w系数 构建所有词的与权重的对应关系 再进行排序可视化

绘图



发现模型并没有发现哪些词比较重要 那些词比较不重要 因为词袋模型是基于词频的 就会以频率评判重要性

三、TFIDF Bag of Words

TF-IDF

不均等对待每个词



看起来比词频的好那么一点

输出

词语的解释

这些词看起来比之前强一些了

问题
我们现在考虑的是每一个词基于频率的情况 如果在新的测试环境下有些词变了呢?比如说goog和positive.有些词可能表达的意义差不多但是却长得不一样 这样我们的模型就难捕捉到了。

四、Word2Vec

可以识别同一个语义的不同词可以聚类在一起

拿直接别人训练好的词向量模型进行实验 300维的向量模型

将300维度基于词的向量转换为句子向量 最简单的方法取得平均 300维度的词 每一个维度的值相加取得平均值 表达句子向量。

问题 但是取得平均后 就将每一个词同等对待 并没有体现出一些关键词的重要性。



word2vec是用神经网络迭代计算出来的 解释性也比较差

降维


看起来就好多了

F1的值为0.777


但是word2Vec就比较难看出来 那些词比较重要。

五、基于深度学习的自然语言处理 CNN和RNN

CNN本质上是做出一个图像处理 输入需要是一个图像矩阵 CNN在处理的时候用一个filter 一次滑动指定数量的词 提取这些词的特征。不停的向下面滑动 在不停的滑动过程中 综合的考虑的上下文的信息。
基于图像的方式 提取上下文特征

RNN专门做自然语言处理 输入一般是一个序列。每个词都是一个序列 先考虑第一个词 在处理第二个词的时候 不仅处理第二个词还考虑第一个词的输入。

现在 我们将定义一个简单的卷积神经网络


训练网络

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267648.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号