自然语言处理(NLP)

自然语言处理的应用

  • 拼写检查、关键词检索......
  • 文本挖掘(产品价格、日期、时间、地点、人名、公司名)
  • 文本分类
  • 机器翻译
  • 客服系统
  • 复杂对话系统

语言模型

语言模型就是说一句话的概率是多少

一句话的翻译有很多种可能性,最终会选择概率最高的那个

我今天下午打篮球——还要先做分词任务——我 今天 下午 打 篮球

怎样变得简单一点

n-gram模型

n-gram=1表示他只跟前面的一个词相关,n-gram=2表示跟前面的2个词相关

词向量

把每个词转换成一个向量,而不是字

越接近的词的向量之间的余弦夹角越小

我们构造出来的词向量是跟这个词的拼写是无关系的,是基于上下文环境建模的。英文说“我今天买了4个苹果5个梨”,到西班牙语中依然是“我今天买了4个苹果5个梨”,4和5出现的位置是类似的,这是符合人类正常说话的逻辑的

无论是英语还是西语,他们的向量空间都是类似的

神经网络模型当中的2个基础模型:CBOW和Skip-gram

CBOW做的是基于上下文能不能预测出来当前的词

Skip-gram恰好是CBOW的颠倒,基于当前的词来预测上下文

把最大似然估计转换成对数似然估计

哈夫曼树,词频越高的放在越靠近根节点

词向量其实是神经网络的一个副产品

CBOW还用到了逻辑斯蒂回归,能把任意一个数的值都投影到0~1范围内,并且越大的越大。哈夫曼树的左右节点,往左走还是往右走就可以根据逻辑斯蒂回归的大于0.5还是小于0.5

skip-gram就是CBOW类似了,就不详细说了

negative  sampling 负采样模型

如果样本空间太大太大,例如有十万个词

线段长度根据词频来分配,词频越高,长度越长;词频越小,长度越短

影评情感分类数据

基于词袋模型训练分类器

准备word2vec输入数据

使用gensim构建word2

https://github.com/skyerhxx/blog-code/blob/master/word2vec.ipynb

发布了304 篇原创文章 · 获赞 148 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/hxxjxw/article/details/100110629
今日推荐