统计模型

统计语言模型工具-kenlm的安装

北城以北 提交于 2019-12-12 04:48:34
在最近的工作到需要一个语言模型,为句子打分,本来准备用srilm来做,后来调研发现kenlm无论在内存还是速度上都比srilm好很多。srilm很好安装,安装过程中基本没遇到什么问题,kenlm的安装就是一个大坑,至今自己都觉得是玄学安装,这边记录下安装过程。 源码地址: https://github.com/kpu/kenlm 在安装kenlm之前需要先安装很多依赖包,主要有: 具体的安装可以参考: https://blog.csdn.net/lijiaqi0612/article/details/90082919 在安装bzip2的时候可能会因为解压tar包报错,所以bzip2包可以不通过源码安装,直接用: sudo apt-get install libbz2-dev 安装完上面依赖之后开始安装kenlm. mkdir -p build cd build cmake .. make -j 4 github上是采用上面这几个命令即可安装完成,但是实际在操作的时候可能cmake的时候就报错了,这时候检查一下自己的所有安装的依赖是否都已经完成。 我的情况是cmake没有问题,但是最后make的时候总是不成功,搞了6个小时,玄学的解决。 报错: CMakeFiles/sorted_uniform_test.dir/sorted_uniform_test.cc.o:在函数‘boost:

统计学习基本概念

本秂侑毒 提交于 2019-12-06 18:33:27
  释义:统计学习(statistical learning)是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。又称统计机器学习(statistical machine learning)。“如果一个系统能够通过执行某个过程改进它的性能,这就是学习”。统计学习就是计算机系统通过运用数据和统计方法提高系统性能的机器学习。当下提及的机器学习一般是指统计机器学习。   一、统计学习的特点   1. 以计算机和网络为平台,建立在计算机和网络之上;   2. 以数据为研究对象,是数据驱动的学科;   3. 目的是对数据进行预测与分析;   4. 以方法为中心,构建模型并应用模型进行预测与分析;   5. 是概率论、统计学、信息论、计算理论、最优化理论、计算机科学等多个领域的交叉学科。   二、统计学习的对象   统计学习的对象是数据(data)。从数据出发,提取数据特征,抽象数据模型,发现数据中的知识,再回到对数据的分析与预测中去。数据是多样的,包括各种文字、图片、音视频,以及它们的组合。   重点:统计学习关于数据的基本假设是同类数据具有一定的统计规律性,这是机器学习的前提。同类数据指具有某种共同性质的数据,具有统计规律性,所以可以使用概率统计方法来处理。如:可以用随机变量描述数据中的特征,用概率分布描述数据的统计规律。在统计学习过程中,以变量或变量组表示数据

统计学习三要素

给你一囗甜甜゛ 提交于 2019-12-06 18:33:25
  统计学习方法都是由模型、策略和算法构成的,即统计学习方法由三要素构成,可以简单地表示为:    方法=模型+策略+算法   非监督学习、强化学习也同样拥有这三要素。构建一种统计学习方法就是确定具体的统计学习三要素。   1.模型   统计学习首要考虑的问题是学习什么样的模型。在监督学习过程中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间(hypothesis space)包含所有可能的条件概率分布或决策函数。例如,假设决策函数是输入变量的线性函数,那么模型的假设空间就是所有这些线性函数构成的函数集合。假设空间中的模型一般有无穷多个。 假设空间用F表示,假设空间可以定义为决策函数的集合F={f|Y=f(x)},其中,X和Y是定义在输入空间x和输出空间y上的变量。这时y通常是由一个参数向量决定的函数族。参数向量取值于n维欧氏空间Rn,称为参数空间(parameter space)。假设空间也可以定义为条件概率的集合,其中,X和Y是定义在输入空间x和输出空间y上的随机变量。 这时通常是由一个参数向量决定的条件概率分布族, 参数向量取值于n维欧氏空间Rn,也称为参数空间。 一般由决策函数表示的模型为非概率模型,由条件概率表示的模型为概率模型。   2.策略   有了模型的假设空间,统计学习接着需要考虑的是按照什么样的准则学习或选择最优的模型

异常点检测算法分析与选择

别来无恙 提交于 2019-12-04 01:36:01
http://blog.csdn.net/lihaifeng555/article/details/4543752 目录 (?) [+] 111 基于统计的异常点检测算法 112 基于距离的异常点检测算法 113 基于密度的异常点检测算法 114 基于深度的异常点检测算法 115 基于偏移的异常点检测算法 116 高维数据的异常点检测算法 121 时间序列相关背景 122 基于离散傅立叶变换的时间序列相似性查找 111 完全匹配查找算法 1.1 常见异常点检测算法 在数据库中包含着少数的数据对象,它们与数据的一般行为或特征不一致,这些数据对象叫做异常点 (Outlier) ,也叫做孤立点。异常点的检测和分析是一种十分重要的数据挖掘类型,被称之为异常点挖掘 [28 ] 。 对于异常数据的挖掘主要是使用偏差检测,在数学意义上,偏差是指分类中的反常实例、不满足规则的特例,或者观测结果与模型预测值不一致并随时间的变化的值等等。偏差检测的基本目标是寻找观测结果与参照值之间有意义的差别,主要的偏差技术有聚类、序列异常、最近邻居法、多维数据分析等。除了识别异常数据外,异常数据挖掘还致力于寻找异常数据间隐含模型,用于智能化的分析预测。对于异常数据分析方法的研究是论文的重要内容之一,通过研究异常数据,找到适合出口企业产品质量深入分析和有效监管的方法和策略。 1.1.1 基于统计的异常点检测算法 从

用户画像

ε祈祈猫儿з 提交于 2019-12-03 04:34:31
原文链接: https://blog.csdn.net/zw0Pi8G5C1x/article/details/83964888 导读:用户画像将产品设计的焦点放在目标用户的动机和行为上,从而避免产品设计人员草率地代表用户。产品设计人员经常不自觉的把自己当作用户代表,根据自己的需求设计产品,导致无法抓住实际用户的需求。往往对产品做了很多功能的升级,用户却觉得体验变差了。 在大数据领域,用户画像的作用远不止于此。用户的行为数据无法直接用于数据分析和模型训练,我们也无法从用户的行为日志中直接获取有用的信息。而将用户的行为数据标签化以后,我们对用户就有了一个直观的认识。 同时计算机也能够理解用户,将用户的行为信息用于个性化推荐、个性化搜索、广告精准投放和智能营销等领域。 作者:马海平 于俊 吕昕 向海 本文摘编自《Spark机器学习进阶实战》,如需转载请联系我们 01 概述 用户画像的核心工作就是给用户打标签,标签通常是人为规定的高度精炼的特征标识,如年龄、性别、地域、兴趣等。这些标签集合就能抽象出一个用户的信息全貌,如图10-1所示是某个用户的标签集合,每个标签分别描述了该用户的一个维度,各个维度之间相互联系,共同构成对用户的一个整体描述。 ▲图10-1 用户标签集合 02 用户画像流程 1. 整体流程 我们对构建用户画像的方法进行总结归纳,发现用户画像的构建一般可以分为目标分析

神经机器翻译(NMT)详细资料整理

蹲街弑〆低调 提交于 2019-12-03 04:33:30
1 简介 自2013年提出了神经机器翻译系统之后,神经机器翻译系统取得了很大的进展。最近几年相关的论文,开源系统也是层出不穷。本文主要梳理了神经机器翻译入门、进阶所需要阅读的资料和论文,并提供了相关链接以及简单的介绍,以及总结了相关的开源系统和业界大牛,以便其他的小伙伴可以更快的了解神经机器翻译这一领域。 随着知识的逐步积累,本文后续会持续更新。请关注。 2 入门资料 这部分主要整理了神经机器翻译入门的资料以及所需的一些基础知识,如RNN、LSTM、GRU等。 2.1 神经机器翻译入门资料 1) CIPS青工委学术专栏第9期 | 神经机器翻译 链接: http://www.cipsc.org.cn/qngw/?p=953 介绍:由熊德意、张民等老师所写,梳理了神经机器翻译的历史发展;介绍了采用注意力机制的神经机器翻译模型的特点;总结了神经机器翻译的译文问题:1)如词汇表规模受限问题、2)源语言翻译覆盖问题、3)翻译不忠实问题; 就当前的研究热点,大致就三个问题进行了讨论:1)规模受限词语表问题、2)注意力机制问题、3)神经机器翻译和传统统计机器翻译的结合。 2) 基于深度学习的机器翻译研究进展 链接: http://www.caai.cn/index.php?s=/Home/Article/qikandetail/year/2016/month/02.html 介绍

基于统计模型的中文分词方法

情到浓时终转凉″ 提交于 2019-12-02 18:50:36
统计分词: 统计分词的主要思想是把每个词看做是由字组成的,如果相连的字在不同文本中出现的次数越多,就证明这段相连的字很有可能就是一个词。 统计分词一般做如下两步操作: 1.建立统计语言模型(n-gram) 2.对句子进行单词划分,然后对划分结果做概率计算,获取概率最大的分词方式。这里就用到了统计学习算法,如隐马尔科夫模型(HMM),条件随机场(CRF)等 语言模型: 语言模型在信息检索,机器翻译,语音识别中承担着重要的任务。这种模型结构简单,直接,但同时也因为数据缺乏而必须采取平滑算法。这里主要介绍n元语言模型(n-gram)。 假设S表示长度为i,由(W1,W2,....,Wi)字序列组成的句子,则代表S的概率为: P(S) = P(W1,W2,...,Wi) = P(W1)*P(W2|W1)*P(W3|W2,W1)....P(Wi|W1,W2,...,Wi-1) 即每个字的出现都与他之前出现过的字有关,最后整个句子S的概率为这些字概率的乘积。但是这个计算量很大,所以在这里我们可以利用马尔科夫假设,即当前词只与最多前n-1个有限的词相关: 当n=1时,即出现在第i位上的词Wi独立于历史时,一元文法被记作uni-gram,一元语言模型可以记作: uni-gram 当n=2时,即出现在第i位上的词wi仅与它前面的一个历史词wi-1有关,二元文法模型被称为一阶马尔可夫链(Markov

Hadoop、Hive、Spark 之间关系

做~自己de王妃 提交于 2019-12-01 18:14:09
Hadoop、Hive、Spark 之间关系 https://www.cnblogs.com/jins-note/p/9513426.html 很的很诙谐有趣. 作者:Xiaoyu Ma ,大数据工程师 大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的。你可以把它比作一个厨房所以需要的各种工具。锅碗瓢盆,各有各的用处,互相之间又有重合。你可以用汤锅直接当碗吃饭喝汤,你可以用小刀或者刨子去皮。但是每个工具有自己的特性,虽然奇怪的组合也能工作,但是未必是最佳选择。 大数据,首先你要能存的下大数据 传统的文件系统是单机的,不能横跨不同的机器。HDFS(Hadoop Distributed FileSystem)的设计本质上是为了大量的数据能横跨成百上千台机器,但是你看到的是一个文件系统而不是很多文件系统。比如你说我要获取/hdfs/tmp/file1的数据,你引用的是一个文件路径,但是实际的数据存放在很多不同的机器上。你作为用户,不需要知道这些,就好比在单机上你不关心文件分散在什么磁道什么扇区一样。HDFS为你管理这些数据。 存的下数据之后,你就开始考虑怎么处理数据。虽然HDFS可以为你整体管理不同机器上的数据,但是这些数据太大了。一台机器读取成T上P的数据(很大的数据哦,比如整个东京热有史以来所有高清电影的大小甚至更大)

一文读懂大数据计算框架与平台 (转)

淺唱寂寞╮ 提交于 2019-12-01 13:22:23
1. 前言 计算机的基本工作就是处理数据,包括磁盘文件中的数据,通过网络传输的数据流或数据包,数据库中的结构化数据等。随着互联网、物联网等技术得到越来越广泛的应用,数据规模不断增加,TB、PB量级成为常态,对数据的处理已无法由单台计算机完成,而只能由多台机器共同承担计算任务。而在分布式环境中进行大数据处理,除了与存储系统打交道外,还涉及计算任务的分工,计算负荷的分配,计算机之间的数据迁移等工作,并且要考虑计算机或网络发生故障时的 数据安全 ,情况要复杂得多。 举一个简单的例子,假设我们要从销售记录中统计各种商品销售额。在单机环境中,我们只需把销售记录扫描一遍,对各商品的销售额进行累加即可。如果销售记录存放在关系数据库中,则更省事,执行一个SQL语句就可以了。现在假定销售记录实在太多,需要设计出由多台计算机来统计销售额的方案。为保证计算的正确、可靠、高效及方便,这个方案需要考虑下列问题: 如何为每台机器分配任务,是先按商品种类对销售记录分组,不同机器处理不同商品种类的销售记录,还是随机向各台机器分发一部分销售记录进行统计,最后把各台机器的统计结果按商品种类合并? 上述两种方式都涉及数据的排序问题,应选择哪种排序算法?应该在哪台机器上执行排序过程? 如何定义每台机器处理的数据从哪里来,处理结果到哪里去?数据是主动发送,还是接收方申请时才发送?如果是主动发送,接收方处理不过来怎么办

史上最全的机器学习资料(上)

情到浓时终转凉″ 提交于 2019-12-01 06:00:33
摘要: 机器学习牵涉的编程语言十分之广,包括了MATLAB、Python、Clojure、Ruby等等。为了让开发者更加广泛、深入地了解机器学习,云栖社区组织翻译了GitHub Awesome Machine Learning 资源,涵盖24种编程语言的机器学习的框架、库以及其他相关资料。 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习牵涉的编程语言十分之广,包括了MATLAB、Julia、R、Perl、Python、Clojure、Ruby等等。 为了让开发者更加广泛、深入地了解机器学习,云栖社区组织翻译了GitHub Awesome Machine Learning 资源,涵盖24种编程语言的机器学习的框架、库以及其他相关资料。 目录 C 通用机器学习 计算机视觉 C++ 计算机视觉 通用机器学习 自然语言处理 序列分析 手势识别 Common Lisp 通用机器学习 Clojure 自然语言处理 通用机器学习 数据分析 /数据可视化 Erlang 通用机器学习 Go 自然语言处理 通用机器学习 数据分析 /数据可视化 Haskell 通用机器学习 Java 自然语言处理