最大熵模型用于文本分类的例子,里面有数据集和Python代码
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-05-08 12:36 maxEnt
目录 0 2015-05-07 19:38 maxEntdata
文件 504 2015-05-06 17:30 maxEntdata
ename.py
目录 0 2015-05-07 19:39 maxEntdata est
文件 5939 2015-05-07 19:38 maxEntdata estar7820.txt
文件 5196 2015-05-07 19:38 maxEntdata estar7823.txt
文件 10112 2015-05-07 19:38 maxEntdata estar7827.txt
文件 7285 2015-05-07 19:38 maxEntdata estar7837.txt
文件 2425 2015-05-07 19:38 maxEntdata estar7838.txt
文件 8163 2015-05-07 19:38 maxEntdata estar7840.txt
文件 695 2015-05-07 19:38 maxEntdata estar7842.txt
文件 4034 2015-05-07 19:38 maxEntdata estar7846.txt
文件 21443 2015-05-07 19:38 maxEntdata estar7850.txt
文件 7698 2015-05-07 19:38 maxEntdata estar7853.txt
文件 3808 2015-05-07 19:38 maxEntdata estar7855.txt
文件 2568 2015-05-07 19:38 maxEntdata estar7864.txt
文件 2217 2015-05-07 19:38 maxEntdata estar7868.txt
文件 3859 2015-05-07 19:38 maxEntdata estar7869.txt
文件 3559 2015-05-07 19:38 maxEntdata estar7871.txt
文件 10122 2015-05-07 19:38 maxEntdata estar7872.txt
文件 9354 2015-05-07 19:38 maxEntdata estar7880.txt
文件 2191 2015-05-07 19:38 maxEntdata estar7881.txt
文件 7808 2015-05-07 19:38 maxEntdata estar7885.txt
文件 6124 2015-05-07 19:38 maxEntdata estar7900.txt
文件 13448 2015-05-07 19:38 maxEntdata estar7904.txt
文件 13660 2015-05-07 19:38 maxEntdata estar7907.txt
文件 12541 2015-05-07 19:38 maxEntdata estar7912.txt
文件 6455 2015-05-07 19:38 maxEntdata estar7921.txt
文件 10015 2015-05-07 19:38 maxEntdata estar7928.txt
文件 15559 2015-05-07 19:38 maxEntdata estar7932.txt
文件 6473 2015-05-07 19:38 maxEntdata estar7936.txt
............此处省略17591个文件信息
# -*- coding: cp936 -*-
‘‘‘
注意当测试集,训练集不大时,在测试集中出现的单词在训练集中有可能不存在,这种情况直接忽略这个词的判断。
‘‘‘
import os
import random
textNum = 0
wordNum = 0
ctgyNum = 0
weight = [[0 for x in range(ctgyNum)] for y in range(wordNum)]
category = [‘finance‘‘local‘‘computer‘‘house‘‘edu‘‘tech‘‘car‘‘talent‘‘sport‘‘healthy‘‘artist‘‘fun‘]
words = set([])
def process(inPathoutPathctgyfileNameisTrainData):
text=open(inPath+‘\‘+fileName)
lines = text.readlines()
wf = {}
cnt = 0
for line in lines:
arr = line.split()
for w in arr:
w = w.strip()
if wf.has_key(w):
wf[w]+=1
else:
wf[w] = 1
cnt+=1
if isTrainData: #只收集训练集中的单词
if w not in words:
words.add(w)
for (kv) in wf.items():
wf[k]/=float(cnt)
text2 = open(outPath+‘\‘+ctgy+fileName‘w‘)
for (kv) in wf.items():
text2.write(k+‘ ‘+str(v)+‘
‘)
text.close()
text2.close()
def wordFreq():
print “计算中,请稍后...“
path = “TanCorp-12-Txt“
trainPath =“data\train\“
testPath =“data\test\“
wordPath = “data\words.txt“
dirs = os.listdir(path)
trainCnt = 0
testCnt = 0
for ctgy in dirs:
currPath = path+‘\‘+ctgy
files = os.listdir(currPath)
index = 0 #为了减小计算量,每类别最多取200个数据
for f in files:
index+=1
if index>300 : break
if random.random()>0.2:
process(currPathtrainPathctgyfTrue)
trainCnt+=1
else :
process(currPathtestPathctgyfFalse)
testCnt+=1
stat = open(wordPath‘w‘)
for word in words:
stat.write(word+‘
‘)
stat.close()
print “处理完毕:“
print “单词总量“+str(len(words))
print “训练总量“+str(trainCnt)
print “测试总量“+str(testCnt)
if __name__ == ‘__main__‘ :
wordFreq()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-05-08 12:36 maxEnt
目录 0 2015-05-07 19:38 maxEntdata
文件 504 2015-05-06 17:30 maxEntdata
ename.py
目录 0 2015-05-07 19:39 maxEntdata est
文件 5939 2015-05-07 19:38 maxEntdata estar7820.txt
文件 5196 2015-05-07 19:38 maxEntdata estar7823.txt
文件 10112 2015-05-07 19:38 maxEntdata estar7827.txt
文件 7285 2015-05-07 19:38 maxEntdata estar7837.txt
文件 2425 2015-05-07 19:38 maxEntdata estar7838.txt
文件 8163 2015-05-07 19:38 maxEntdata estar7840.txt
文件 695 2015-05-07 19:38 maxEntdata estar7842.txt
文件 4034 2015-05-07 19:38 maxEntdata estar7846.txt
文件 21443 2015-05-07 19:38 maxEntdata estar7850.txt
文件 7698 2015-05-07 19:38 maxEntdata estar7853.txt
文件 3808 2015-05-07 19:38 maxEntdata estar7855.txt
文件 2568 2015-05-07 19:38 maxEntdata estar7864.txt
文件 2217 2015-05-07 19:38 maxEntdata estar7868.txt
文件 3859 2015-05-07 19:38 maxEntdata estar7869.txt
文件 3559 2015-05-07 19:38 maxEntdata estar7871.txt
文件 10122 2015-05-07 19:38 maxEntdata estar7872.txt
文件 9354 2015-05-07 19:38 maxEntdata estar7880.txt
文件 2191 2015-05-07 19:38 maxEntdata estar7881.txt
文件 7808 2015-05-07 19:38 maxEntdata estar7885.txt
文件 6124 2015-05-07 19:38 maxEntdata estar7900.txt
文件 13448 2015-05-07 19:38 maxEntdata estar7904.txt
文件 13660 2015-05-07 19:38 maxEntdata estar7907.txt
文件 12541 2015-05-07 19:38 maxEntdata estar7912.txt
文件 6455 2015-05-07 19:38 maxEntdata estar7921.txt
文件 10015 2015-05-07 19:38 maxEntdata estar7928.txt
文件 15559 2015-05-07 19:38 maxEntdata estar7932.txt
文件 6473 2015-05-07 19:38 maxEntdata estar7936.txt
............此处省略17591个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)