文本聚类程序实例

摘 要:文本聚类是搜索引擎和语义web的基本技术,本文和大家一起学习一下简单的文本聚类算法,可能不能直接用于实际应用中,但对于想学搜索技术的初学者还 是有一定入门作用的。这里会用到TF/IDF权重,用余弦夹角计算文本相似度,用方差计算两个数据间欧式距离,用k-means进行数据聚类等数学和统计 知识。关于这些概念可以去google,或者参考文本后的参考链接。 数据挖掘交友

思路:计算两篇文档的相似度,最简单的做法就是用提取文档的TF/IDF权重,然后用余弦定理计算两个多维向量的距离。能计算两个文本间的距离后,用标准的k-means算法就可以实现文本聚类了。 数据挖掘实验室

测试:首先我们准备以下数据
===================
奥运 拳击 入场券 基本 分罄 邹市明 夺冠 对手 浮出 水面
股民 要 清楚 自己 的 目的
印花税 之 股民 四季
杭州 股民 放 鞭炮 庆祝 印花税 下调
残疾 女 青年 入围 奥运 游泳 比赛 创 奥运 历史 两 项 第一
介绍 一 个 ASP.net MVC 系列 教程
在 asp.net 中 实现 观察者 模式 ,或 有 更 好 的 方法 (续)
输 大钱 的 股民 给 我们 启迪
Asp.Net 页面 执行 流程 分析
运动员 行李 将 “后 上 先 下” 奥运 相关 人员 行李 实名制
asp.net 控件 开发 显示 控件 内容
奥运 票务 网上 成功 订票 后 应 及时 到 银行 代售 网点 付款
某 心理 健康 站 开张 后 首 个 咨询 者 是 位 新 股民
ASP.NET 自定义 控件 复杂 属性 声明 持久性 浅析
==================
很明显以上数据可以分为三类:asp.net,奥运和股民,我们就写程序来实现它,各种算法的原理网上都有,我就大概只贴代码,声明一下,部分代码是从网 上直接抄的,k-means代码是我从一篇文章的java示例代码转换过来的,我给代码加了不少注释,希望能帮助大家理解。
数据挖掘论坛

以下是入口函数 数据挖掘论坛

static void Main(string[] args)
{ 数据挖掘实验室
    
//1、获取文档输入

    string[] docs = getInputDocs("input.txt"); 数据挖掘论坛
    
if (docs.Length < 1
)
    
{ 数据挖掘交友
         Console.WriteLine(
"没有文档输入"
);
         Console.Read();
        
return
;

数据挖掘交友


     }


    
//2、初始化TFIDF测量器,用来生产每个文档的TFIDF权重 数据挖掘工具
     TFIDFMeasure tf = new TFIDFMeasure(docs, new Tokeniser());

    
int K = 3; //
聚成3个聚类

    
//
3、生成k-means的输入数据,是一个联合数组,第一维表示文档个数,
    
//第二维表示所有文档分出来的所有词
数据挖掘交友
    double[][] data = new double[docs.Length][];
   
int docCount = docs.Length; //文档个数
数据挖掘研究院
    int dimension = tf.NumTerms;//所有词的数目
    for (int i = 0; i < docCount; i++) 数据挖掘实验室
    
{
      
for (int j = 0; j < dimension; j++
) 数据挖掘论坛
        
{
             data[i]
= tf.GetTermVector2(i); //获取第i个文档的TFIDF权重向量
数据挖掘工具
         }

     }

数据挖掘研究院
    
//4、初始化k-means算法,第一个参数表示输入数据,第二个参数表示要聚成几个类
     WawaKMeans kmeans = new WawaKMeans(data, K);
    
//5、开始迭代

     kmeans.Start();
数据挖掘论坛
    
//6、获取聚类结果并输出

     WawaCluster[] clusters = kmeans.Clusters;
    
foreach (WawaCluster cluster in
clusters) 数据挖掘实验室
    
{
         List
<int> members =
cluster.CurrentMembership;

数据挖掘工具


         Console.WriteLine(
"-----------------"
);
        
foreach (int i in
members)

数据挖掘交友


        
{
             Console.WriteLine(docs[i]);

数据挖掘论坛


         }


     }

     Console.Read(); 数据挖掘研究院
}


数据挖掘实验室

以下是分词器的主要代码

数据挖掘工具

/**//// <summary>
/// 以空白字符进行简单分词,并忽略大小写,
///
实际情况中可以用其它中文分词算法
/// </summary>

数据挖掘交友


/// <param name="input"></param>
/// <returns></returns>

public IList<string> Partition(string input) 数据挖掘研究院
{
Regex r
=new Regex("([ \\t{}():;. \n])"
);   数据挖掘工具
input
=
input.ToLower() ;

String [] tokens
=
r.Split(input);           数据挖掘工具

List
<string> filter=new   List<string>
() ;

for (int i=0; i < tokens.Length ; i++
)
{
   MatchCollection mc
=
r.Matches(tokens[i]);
  
if (mc.Count <= 0 && tokens[i].Trim().Length > 0
       
   
&& !
StopWordsHandler.IsStopword (tokens[i]) )         数据挖掘论坛
    filter.Add(tokens[i]) ;
         }


return filter.ToArray();

数据挖掘工具


}



上一页12 下一页
[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:数据挖掘的隐私保护研究资料
下一篇:News & Surprises from Text Analytics Summit 2008
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • 文本聚类程序实例
  • BBS 数据挖掘研究及其地位与核心问题
  • 一种新的基于统计的自动文本分类方法
  • Text Categorization
  • Is Data Mining Misguided?
  • 焦点应用:语义分析
  • 句子相似度计算在FAQ中的应用
  • 文本挖掘抢占商业智能掘金制高点
  • 基于文本概念和kNN 的跨语种文本过滤
  • More data isn’t always a good thing in
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • More data isn’t always a good thing in
  • Text Categorization
  • Finding Advertising Keywords on Web Page
  • Communities from Seed Sets
  • To Randomize or Not To Randomize: Space
  • Overview of Text Summarization History
  • Porter Stemming Algorithm
  • Sequential Minimal Optimization
  • 句子相似度计算在FAQ中的应用
  • 弱指导的统计隐含语义分析及其在跨语言信息
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静