关于中文文本分类的一点想法

现实中,中文文本分类的应用很多,比方将一则新闻归结到哪一类中,是体育呢,还是科技,还是娱乐

那么怎么归类呢?我的想法是根据文章中的词来判断,至于怎么判断呢

我想到是先训练一批词出来,具体方法是从网络中找200篇关于某一类的文章,必须很典型,假设有10个类,那么每个类下就有200篇了

然后将文章切词,java有中文切词工具包,这个很简单,用一个treemap数据结构保存所切的词和该词对应的出现次数,假设对应的map命名为map_A

然后处理B类,同样切词生成map_B

.....

切词完成后,我们想想切词的目的是为了保留一些容易识别类的关键词,而一些噪音词,比如“我”、的”、“这些”等等需要将他们排除

是的,我们发现这些词不仅仅map_A中有而且出现在map_B中,而且当数据量很大的时候,它们所占的比基本稳定

这里可以用英文中去除停留词的技术,停留词主要是指the、this、that等

将这些噪音词保存到一个list中,留有他用

经过上述处理后,每个类都有了相应的关键词库,以及频率

 

这时候,我采用的是边分类边学习

具体过程采用朴素贝叶斯分类过程

p(Ci | text)表示已知一篇文章,将它分给类i的概率,当然我们需要取使p最大的Ci

p(Ci | text) = p(text|Ci)*p(Ci)/p(text)  这里p(text)设为1吧,因为每个text是已知的

p(text|Ci)=p(word1|Ci)+p(word2|Ci)......+p(wordj|Ci)

p(Ci) = numberof(Ci)/allnumberofwords

 

如果将text归为某一类了之后,可以将text分的词加入到相应的map中,比如某一个词之前map中没有,当然这里需要将text中的噪声词给干掉

这时候加了进来

然后继续边学习边分类

当某一类学习了200篇之后,可以将map中词频最小的几个去掉,因为他们在统计学中,不具有表现这一类的代表性,当然当学习的足够多的时候,

最小词频的也足够大了,这个时候就代表收敛了,就没必要去删除最小词频,因此这里设置一个阈值

 

 

实验正在进行中,暂且记录想法!

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值