分类
数据结构和算法 程序设计

基于字典的简单中文分词算法

做自然语言处理,尤其是中文自然语言处理,文本分词是必不可少的过程。其实不仅仅是中文,大多数亚洲的语言文字在计算机做处理时,都需要进行分词,甚至英文在识别短语时也要进行类似中文分词的过程。所以,我们需要一种有效的分词算法,这里我仅以中文做实例,其他语言可以参考,介绍一种简单的中文分词算法,并附上一个C#版的示例代码。

分类
机器学习及应用

某技术讲座:机器学习基础入门

在最近某次技术讲座上,我为大家讲解了机器学习的一些基础知识,算是对帮助新人入门尽一点微薄之力。我尽量用最简洁易懂的话语,面向对机器学习知之甚少的同学,讲一讲机器学习的基础内容。

正文:

分类
机器学习及应用

机器学习:神经网络模型样例

神经网络有着强大的函数表示能力,只要它具有合适的层数。神经网络可以拟合任何线性或者非线性的函数,而且可以通过学习或者自身一系列所需的参数。我们都知道,神经网络的输入层输入的是数据的原始特征,经过中间隐藏层一系列的近似于“黑盒”的计算,其中每一层都是利用前一层的特征进行计算得到新的特征,最终我们在输出层可以得到对应的结果。我们可以用几个简单例子来更好的理解神经网络的一些工作原理。

分类
程序设计

彩色图转为灰度图和黑白图方法

在图像处理中,我们通常把彩色图像转为灰度图像,或者黑白图,然后再实现一些相关的计算和识别,比如图像识别等,是计算机视觉方面最常用的一种基本方法。进行了转换之后,很多事情就变得简单方便起来。

分类
机器学习及应用

机器学习:神经网络模型

不论是线性回归还是对数几率回归,都有一个缺点,那就是,当特征太多的时候,计算量会变得非常的大。假如我们有100个特征,如果仅仅考虑多项式函数中两两组合的二次交叉项的时候,那么我们会得到组合数C2100 的数量,即4950个二次交叉项,这对于一般的统计回归来说徐要计算的特征数太多了。我们需要一种既简单又强大的模型,神经网络(Neutral Network)就是这样。神经网络是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似[参考资料1]。其实,简单来说,神经网络就是一个分层的有向图,每一层的节点称为一个神经元。

分类
机器学习及应用

机器学习:过拟合与欠拟合问题

过拟合(overfitting)与欠拟合(underfitting)是统计学中的一组现象。过拟合是在统计模型中,由于使用的参数过多而导致模型对观测数据(训练数据)过度拟合,以至于用该模型来预测其他测试样本输出的时候与实际输出或者期望值相差很大的现象,。欠拟合则刚好相反,是由于统计模型使用的参数过少,以至于得到的模型难以拟合观测数据(训练数据)的现象。

分类
ASRT 数据结构和算法 程序设计

统计N元语言模型生成算法:简单中文词频统计

做自然语言处理有一个基本的步骤是词频统计,然而我们知道,中文的词语有单音节词、双音节词和多音节词之分,所以中文处理起来远比英文复杂得多。不过,我们可以“偷个懒”,如果要做词频统计的文本量足够大,而且我们只需要知道词频最高的几个词的话,那么我们可以将问题简化一下。

分类
机器学习及应用 评论型文章

在数据为王的人工智能时代如何收集机器学习数据

我最近因为学习机器学习并且想要做一些实践项目而打算收集一些数据来做机器学习,但是发现,数据不是你想找,想找就能找的。在机器学习方面,用于训练的数据对于整个机器学习进程的重要意义自然不言而喻,而数据问题涉及到收集、存储、表示以及规模和错误率等多个方面。关于数据,我想谈一谈数据的收集问题。

分类
机器学习及应用

机器学习:对数几率回归-2

通过上一篇文章我们可以了解到,对数几率回归是什么,相关公式的定义以及训练使用的学习方法,希望读者应当首先通过上一篇文章来了解什么是对数几率回归。这一篇文章我想写一下关于二元的对数几率回归的内容,相关的知识可以推广到多元的对数几率回归。二元乃至多元的模型就初步有了神经网络的感觉,当然,此时仍然没有隐藏层。二元的模型常常是用来做平面的数据分类的,因此我打算用一个我定义的二元数据来解释一下这个模型。

分类
机器学习及应用

机器学习:对数几率回归-1

对数几率回归(Logistic Regression),简称为对率回归,也称逻辑斯蒂回归,或者逻辑回归。虽然它被很多人称为逻辑回归,但是中文的“逻辑”一词与“logistic”和“logit”意思相去甚远。它是广义的线性模型,只是将线性回归方程中的y换成了ln[p/(1-p),p是p(y=1|x),p/(1-p)是“几率”。对数几率回归是用来做分类任务的,所以,需要找一个单调可微函数,将分类任务的真实标记和线性回归模型的预测值联系起来。