nlp自然语言处理

NLP

nlp自然语言处理(不一定是文本,图形也可以)接入深度学习(向量处理),需要把文字等内容转换成向量输入

深度学习分为有监督和无监督学习两类,对应分类和生成算法都是向量输入

词嵌入(映射到向量)

词嵌入最简单的模型是one-hot,但数据计算量太大,所以后续更多的是减少数据量和建立关联性

  • one-hot,最简单分类(单位矩阵),无法识别词之间的相似性,维度高计算量大(10w个词,需要10w个维度)
  • word2vector包含两个算法
  1. skip-gram,跳字模型:中心词预测背景词
  2. cbow,连续词袋模型:背景词预测中心词

输入one-hot输出概率分布,词向量隐藏层输出(非最终输出)

词向量纬度:w(词数量)*v(隐藏层输出)

word2vector通过分析词语的常用组合得到词语的分类信息,类似词语填空

word2vector依赖局部统计信息、对全局缺少依赖

python 复制代码
import tensorflow as tf

# 假设vocab_size = 1000
VOCAB_SIZE = 1000
# 假设embedding_size = 300
EMBEDDINGS_SIZE = 300

# 输入单词x是一个[1,vocab_size]大小的矩阵。当然实际上我们一般会用一批单词作为输入,那么就是[N, vocab_size]的矩阵了
x = tf.placeholder(tf.float32, shape=(1,VOCAB_SIZE))
# W1是一个[vocab_size, embedding_size]大小的矩阵
W1 = tf.Variable(tf.random_normal([VOCAB_SIZE, EMBEDDING_SIZE]))
# b1是一个[1,embedding_size]大小的矩阵
b1 = tf.Variable(tf.random_normal([EMBEDDING_SIZE]))
# 简单的矩阵乘法和加法
hidden = tf.add(tf.mutmul(x,W1),b1)

W2 = tf.Variable(tf.random_normal([EMBEDDING_SIZE,VOCAB_SIZE]))
b2 = tf.Variable(tf.random_normal([VOCAB_SIZE]))
# 输出是一个vocab_size大小的矩阵,每个值都是一个词的概率值
prediction = tf.nn.softmax(tf.add(tf.mutmul(hidden,w2),b2))
# 损失函数 
cross_entropy_loss = tf.reduce_mean(-tf.reduce_sum(y_label * tf.log(prediction), reduction_indices=[1]))
# 训练操作
train_op = tf.train.GradientDescentOptimizer(0.1).minimize(cross_entropy_loss)
  • FastText算法库,速度极快类似cbow,预测目标类别而非word2vector的目标词
  • glove,在word2vector的基础上,统计同一词在一个上下文出现后在另一个上下文出现的概率

词向量输出位,共现方阵大小v*v(隐藏层输出)

  • bert
  • 知识图谱,rdf三元组(包含两点一线的结构)、neo4j

图嵌入

类似词嵌入的方式,可以在分类算法中,把隐藏层输出作为图嵌入的表征

向量相似度

  • 使用向量的模,点的距离
  • 余弦夹角,one-hot向量的相似度0,适用于方向上的差异对大小不敏感的,类似用户评分等。

向量的存储

  • elasticsearch
  • 向量数据库
  • Faiss
  • Annoy

语言模型

  • seq2seq
  • transfomer

输入词向量,通过输出词向量

encoder=》decoder模型

  • bert,预训练模型

nltk工具

相关推荐
开发者每周简报8 分钟前
求职市场变化
人工智能·面试·职场和发展
AI前沿技术追踪21 分钟前
OpenAI 12天发布会:AI革命的里程碑@附35页PDF文件下载
人工智能
余~~1853816280028 分钟前
稳定的碰一碰发视频、碰一碰矩阵源码技术开发,支持OEM
开发语言·人工智能·python·音视频
galileo20161 小时前
LLM与金融
人工智能
DREAM依旧1 小时前
隐马尔科夫模型|前向算法|Viterbi 算法
人工智能
GocNeverGiveUp1 小时前
机器学习2-NumPy
人工智能·机器学习·numpy
B站计算机毕业设计超人2 小时前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
学术头条2 小时前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
18号房客3 小时前
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·sklearn
feifeikon3 小时前
机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)
人工智能·机器学习·线性回归