一种根据关键字进行分类的文本分类算法
chester60
2008-07-30
前段时间在做文本分类,用了k-means算法来分500篇文章,花了1个小时,分的结果还乱七八糟。当年学的高数和线性代数已经还给老师了,看SVM等于看天书,无奈之下,自己想了个法子来进行分类,就是依靠关键字来进行分类。
简单的说下原理吧,如果某篇文章包含有很多军事类别的关键字,那么该文章很有可能就是军事方面的文章。OK,这样的话我们只需要从文章中提取关键字,然后对这些关键字的类别进行判断,就可以得到文章的类别了。 这样我们可以得出这个算法的重点: 1.提取关键字 如何自动提取关键字呢?我们知道IDF值在一定程度上可以表达一个词的重要程度,像“我的”,“你的”这样的关键字肯定无法判断出文章的类别,他们的IDF值也是较低的。而“AK47”,“火箭炮”这样的关键字可以判断出文章类别,他们的IDF也比一般的词要高。所以,我们只需要选择IDF高于一定值的词,就可以提取出绝大多数关键字了。 2.关键字分类 识别关键字的类别也是一个大问题,如果手工识别是不现实的,网上也没有什么算法是进行关键字分类的。想来想去,最后还是用IDF值把这个问题给解决了。其实思路很简单,可以说是上面一个问题的一种延续。假设现在我们有军事,经济,人文的文本各100篇。将经济,人文的文章复制4次,这样,我们就有军事文本100篇,经济,人文的文本各500篇(注意,经济人文的文章都是有重复的,每篇文章存在4个完全相同的副本)。 然后我们计算这些文章的IDF值,想想会出现什么结果?我们知道IDF的计算公式是log(总文章数/出现次数)。假设关键字“AK47”在没进行处理之前,在10篇文章中出现,那么它的值为log(300/10)=log30=1.47. 处理之后,“AK47”出现的次数不变,但是总文章数已经变为1100篇,那么AK47的IDF值为:log(1100/10)=log110=2.04。我们可以看到,经过这样的处理,军事的关键字都得到了加权,但是经济,文化的关键字的IDF值变化很小。这样,我们就能够把军事的关键字同其他的关键字区分开来。 我做的实验中,分出的关键字至少80%是军事类别的,实际的例子就不贴出来了。有的朋友就会问了,那你是怎么进行文本分类的?难道也是手工分? 嘿嘿,这个当然不是了。分好类的文本来自于搜狗实验室(http://www.sogou.com/labs/dl/c.html)。上面的类别也只有几种,如果要做其他类别的样本,只要用爬虫抓取某个专业网站或者某一类新闻,然后进行分析出正文就OK了。我们的目标是尽量偷懒,呵呵。 ------------------------------------------------ 解决了这两个难题,再回到算法本身来。首先,提取关键字,使得要比较的词语大大减少(我只提取15%~20%的关键字)。一篇1000字的文章词语也就那么300~400个,也就是说和一个类别比较50个关键字左右就可以判断出来了,也就是50次的hashmapping操作。然后,有几个类别就做几次判断,所以算法复杂度是O(m*n)。一般分成十几个类别已经很细了,整个算法复杂度不会很高。但是这个实验我没能做就申请离职了,伤心啊,我的心血都没了,如果以后有时间再实验下吧。 顺便发个广告,目前正在找工作,虽然已经拿到offer但是不太满意,如果有公司缺人的话可以站内信给我,只想做搜索引擎研发方面的工作。我是应届生但是做过9个月的搜索引擎,具体可以发简历后再谈。 |
|
xietingyan
2008-08-07
![]() ![]() |
|
dvdface
2009-04-19
Gerard Salton、Christopher Buckley. Term Weighting Approaches in Automatic Text Retrieval
上面这篇论文貌似就专门对TF-IDF的改进型在哪些情况下适用做了一下实验。 |
|
strayly
2009-12-23
楼主有没有这方面的实例代码 可供研究一下
|
|
imjl
2009-12-23
strayly 写道 楼主有没有这方面的实例代码 可供研究一下
你可以看看 Programming.Collective.Intelligence.Aug.2007 应有尽有。 |
相关讨论
相关资源推荐
- Python 二次开发 AutoCAD 简介
- 如何将CAD格式转成可以编辑的矢量图
- CAD图形导出为XAML实践
- 矢量图形工具大测评,VectorDraw vs CAD.Net谁更是你的style?
- 简述autocad在测绘工程中的应用_AutoCAD在工程测绘制图中的应用
- CAD文件转换为SVG文件
- java 解析cad文件数据开源免费jar整理
- FreeCAD傻瓜式教程之入门初级使用方法-移动图形、坐标系、视角切换、工作台介绍、Blender导航模式、约束,导出dxf格式
- AutoCAD一维码、二维码的生成及使用,含Data Matrix,QRCode二维码、EAN-13条形码
- 如何应用卫星图像到Auto CAD