如何用50行代码构建情感分类器

Submitted by huzhenda on Sun, 07/15/2018 - 11:58

情感分析背后的动机 

人类自己无法理解语言是如何被大脑处理的。那么,我们能教一台机器学习我们的语言吗?通过广泛研究,人们已经开发了许多方法来帮助机器理解语言。自然语言处理(NLP)是研究人类语言与计算机交互的领域。自然语言处理的一个子问题是情感分析,即把一个语句分类为积极或消极。把语句分类为积极或消极有什么用呢?以亚马逊网站为例。在亚马逊上,用户可以对一个产品发表评论,说明它是好是坏,甚至可以是中性的。然而,使用人工阅读所有评论并获得客户对产品的总体反馈既昂贵又耗时。再说说我们的机器学习模型。机器学习模型可以通过大量数据进行推断,对评论进行分类。利用这种机器学习模型,亚马逊可以通过客户评论改进其产品,从而为公司带来更多收入。

情感分析并不像看起来那么简单。如果你认为含有「好的」、「很棒」等词的评论可归为积极评论,而含有「坏的」、「苦恼的」等词的评论可归为消极评论,那你需要三思。例如,「完全没有好味道」和「一份好的快餐,但没有什么特别的」分别代表消极和中立的反馈,即使都有「好」字。因此,这项任务可能没有看起来那么简单。接下来让我们看看即将使用的数据。

数据集

我们将使用亚马逊产品评论、IMDB 电影评论和 Yelp 评论来构建情感分析模型。

Feature Tools:可自动构造机器学习特征的Python库

Submitted by huzhenda on Sun, 07/15/2018 - 10:15

目前,很多机器学习项目的模型选择开始转向自动化,而特征工程仍然主要以人工为主。这个过程的重要性可能比模型选择更重要,人工得到的特征总带有一定的局限性。在本文中作者将为我们介绍如何使用 Feature Tools Python 库实现特征工程自动化,项目已开源。

机器学习越来越多地从人工设计模型转向使用 H20、TPOT 和 auto-sklearn 等工具自动优化的工具。这些库以及随机搜索(参见《Random Search for Hyper-Parameter Optimization》)等方法旨在通过寻找匹配数据集的最优模型来简化模型选择和机器学习调优过程,而几乎不需要任何人工干预。然而,特征工程作为机器学习流程中可能最有价值的一个方面,几乎完全是人工的。

特征工程也被称为特征构造,是从现有数据中构造新的特征从而训练机器学习模型的过程。这一步可能比实际上使用的模型更重要,因为一个机器学习算法只能从我们给定的数据中学习,所以构造一个和任务相关的特征是至关重要的,参见优质论文《A Few Useful Things to Know about Machine Learning》。

强化学习(Reinforcement Learning)介绍

Submitted by huzhenda on Sat, 07/14/2018 - 15:21

当前的机器学习算法可以分为3种:有监督的学习(Supervised Learning)、无监督的学习(Unsupervised Learning)和强化学习(Reinforcement Learning),结构图如下所示: 

3.1

其他许多机器学习算法中学习器都是学得怎样做,而RL是在尝试的过程中学习到在特定的情境下选择哪种行动可以得到最大的回报。在很多场景中,当前的行动不仅会影响当前的rewards,还会影响之后的状态和一系列的rewards。RL最重要的3个特定在于:(1)基本是以一种闭环的形式;(2)不会直接指示选择哪种行动(actions);(3)一系列的actions和奖励信号(reward signals)都会影响之后较长的时间。 

简述四大类文本分析中的“词向量”

Submitted by huzhenda on Sat, 07/14/2018 - 14:24

词向量类型:

一个词一列向量:Hash算法,word2vec。hash把词打散成(01010101110)的数值,word2vec则打散同时定义成了向量,参考文献中验证了将词向量加起来的确是一个有效的方法;延伸:word2vec考虑了上下语义,doc2vec还考虑了上下语句顺序,用在段落中较好。

一个词一个值:bow算法+词权重,LDA主题-词语矩阵。两者有递进关系,bow进化到LDA,当然LDA超级耗时,所以业界不喜欢用。

由词向量到句向量:

如果是一词一列向量一般用简单相加(相加被证明是最科学)来求得;

一个词一值的就是用词权重组合成向量的方式;

谷歌的句向量sen2vec可以直接将句子变为一列向量。

词向量的额外效果

消除歧义:LDA的主题-词语向量;

结合上下文语境:word2vec;

文档与文档之间的关系:bow+TFIDF(TFIDF能够较好区分文档差别的指标,而互信息较为有利于文档中核心词的提取)

Tags

理解条件随机场

Submitted by huzhenda on Sat, 07/14/2018 - 11:47

        条件随机场(conditional random fields,简称 CRF),是一种判别式概率模型,是给定一组输入序列条件下另一组输出序列的条件概率分布模型,常用于标注或分析序列资料。

1、哪些问题需要用到CRF模型

         我们以自然语言处理中的词性标注(POS Tagging)作为例子。词性标注的目标是给出一个句子中每个词的词性(名词,动词,形容词等)。而这些词的词性往往和上下文词的词性有关,因此,使用CRF来处理是很适合的。

2、从随机场到马尔可夫随机场

        首先,我们来介绍随机场。随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场。以词性标注为例:假如我们需要对一个包含十个词的句子做词性标注。这十个词每个词的词性可以在我们已知的词性集合(名词,动词...)中选择。当我们为每个词选择完词性后,这就形成了一个随机场。

用python分析热门夺冠球队

Submitted by yangjingbang on Sat, 06/16/2018 - 19:42

2018年,火热的世界杯即将拉开序幕。在比赛开始之前,我们不妨用 Python 来对参赛队伍的实力情况进行分析,并大胆的预测下本届世界杯的夺冠热门球队。

通过数据分析,可以发现很多有趣的结果,比如:

  • 找出哪些队伍是首次进入世界杯的黑马队伍
  • 找出2018年32强中之前已经进入过世界杯,但在世界杯上没有赢得过一场比赛的队伍

当然,我们本次的主要任务是要通过数据分析来预测2018年世界杯的夺冠热门队伍。

本次分析的数据来源于 Kaggle, 包含从 1872 年到今年的数据,包括世界杯比赛、世界杯预选赛、亚洲杯、欧洲杯、国家之间的友谊赛等比赛,一共大约 40000 场比赛的情况。

本次的环境为

  • window 7 系统
  • python 3.6
  • Jupyter Notebook
  • pandas version 0.22.0

先来看看数据的情况:

步态识别的深度学习:综述

Submitted by yangjingbang on Fri, 06/15/2018 - 16:22
由于步态容易受到物体遮挡、衣着、视角和携带物等协变量因素的影响,步态识别方法较难获得较优的识别性能.基于端到端和多层特征提取的思想,深度学习近年在步态识别领域取得一系列进展.本文综述深度学习在步态识别中的研究现状、优势和不足,总结其中的关键技术和潜在的研究方向.