自然语言处理(3)——可用于自动生成分类模型的机器学习方法

可用于自动生成分类模型的三种机器学习方法:决策树、朴素贝叶斯分类器和最大熵分类器。

#决策树
"""
决策树可以自动地构建树结构的流程图,用于为输入变量值基于它们的特征加标签,虽
然它们易于解释,但不适合处理特性值在决定合适标签过程中相互影响的情况。
"""

#朴素贝叶斯模型(生成式)
"""
在朴素贝叶斯分类器中,每个特征都得到发言权,来确定哪个标签应该被分配到一个给
定的输入值。为一个输入值选择标签,朴素贝叶斯分类器以计算每个标签的先验概率开始,
它由在训练集上检查每个标签的频率来确定。之后,每个特征的贡献与它的先验概率组合,
得到每个标签的似然估计。似然估计最高的标签会分配给输入值
"""
# 最大熵模型(条件式)
"""
相比之下,最大熵分类器模型留给用户来决定什么样的标签和特征组合应该得到自己的
参数。特别的,它可以使用一个单独的参数关联一个特征与一个以上的标签;或者关联一个
以上的特征与一个给定的标签。这有时会允许模型“概括”相关的标签或特征之间的一些差
异。
每个接收它自己的参数的标签和特征的组合被称为一个联合特征。
最大熵分类器使用的基本模型与朴素贝叶斯相似;不过,它们使用了迭代优化来寻找使
训练集的概率最大化的特征权值集合。
"""

# 语言模式建模
"""
大多数从语料库自动构建的模型都是描述性的,也就是说,它们让我们知道哪些特征与
给定的模式或结构相关,但它们没有给出关于这些特征和模式之间的因果关系的任何信
息。
"""

计算熵

# 计算标签链表的熵
import math
def entropy(labels):
	freqdist=nltk.FreqDist(labels)
	probs=[freqdist.freq(l) for l in nltk.FreqDist(labels)] #l表示labels,即熵被定义为每个标签的概率乘以那个标
															#签的log 概率的总和
	return -sum([p*math.log(p,2) for p in probs])
	

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值