基于k-means的中文文本聚类算法的研究与实现
基于改进K—Means算法的教学反思文本聚类研究

( 1 . S c h o o l o f C o mp u t e r S c i e n c e , S h a a n x i No r ma l U n i v e r s i t y , X i ’ a l l 7 1 0 0 6 2 , C h i n a ;
e n h a n c e t h e i r p r o f e s s i o n a l c a p a b i l i i t e s . Cl us t e i r ng t h e s a me t h e me o f t h e t e a c h i n g ef r l e c io t n t e x t b a s e d o n a l l i mp r o v e d K -Me ns a a l g o —
第2 3卷
第 l l 期
计 算 机 技 术 与 发 展
COMP UT ER r E CHNOL OGY AND DEVEL OP MENT
2 0 1 3年 1 1月
Vo 1 . 2 3 N o . 1 1 NO V. 2 01 3
基 于 改进 K— Me a n s 算 法 的教 学 反 思 文本 聚 类研 究
c l u s t e in r g p r o c e s s, s i mi l a r i  ̄ t h r e s h o l d i s i n t r o d u c d e t o l i mi t he t r e l f e c io t n t e x t s’ s i i l m a r i t y r ng a e s , ea r l i z i n g he t t e a c in h g ef r le ct i o n t e x t
基于k-means聚类算法的研究

第 7期
计 算 机 技Biblioteka 术 与 发 展 C0MP ER ECHNOL UT T OGY AND DEVE LOP MEN1 ’
V0. 1 No 7 12 .
2 1 年 7月 01
J l 2 1 uy 0 1
基 于 k me n — a s聚 类算 法 的研 究
黄 韬, 刘胜 辉 , 艳 娜 谭
HUANG o, U h n Ta LI S e g-h i TAN n-n u, Ya a
( c . f o u c.n eh - ri U i.fSiadT c . H bn108 。 hn ) Sh o mp ̄r iadT c .Ha n nv o c. eh , a i 5 0 0 C ia C S b n r
( 尔滨理 工大 学 计 算机 科 学与技 术 学院 , 哈 黑龙 江 哈 尔滨 10 8 ) 5 00
摘 要 : 析研 究聚 类分 析方法 , 多种 聚类分 析算 法进 行 分析 比较 , 分 对 讨论 各 自的优 点 和 不 足 , 同时 针 对原 k m as 法 - en 算
的 聚类结 果受 随机选 取初 始聚 类 中心的影 响较 大 的缺 点 , 出一 种 改进 算 法 。通过 将 对 数据 集 的 多次 采 样 , 提 选取 最 终较
中图分 类号 :P0 . T 316 文献 标识 码 : A 文章 编号 : 7 —2 X(0 10 — 04 0 1 3 69 2 1 )7 05 — 4 6
Re e r h o u trn g rt m s d o - a s s a c f Cl se i g Al o i h Ba e n K me n
Ab t a t An l z n e e r h t e me o fcu t ra a y i - a y e a d c mp r n i d fa g rt ms o l se n y i 。 i u s s r c : ay e a d r s a c h t d o l se l ss a l z n o a e ma y k n so o i h n n l h fcu t ra a ss d s s l c merr s e t e s e g s a d we k e s s Att e s me t i e p c v t n t n a n s . a i i r h e h me。 c o d n o t e we kn s s o e c u tr r s l fo g n a c r i g t a e s f t l se e u to r i a k-me s ag - h e h i l n a lo r h a i ini c ti fu n e b lc i g t e i i a l t r c n e s r d ml a mo i e g rt m s p o o e T o g k n a p e i r s sg f a n e c y s e t n t cus e t r a o y。 d f d a o i t in l e n h i l e n i l h i r p s d. hr u h t i g s a m l ma y t st aa s t c o s n u e o l se e t r br g d wn t e i a t fi i a l se e t r o i r e g rt m r a l . n me d t e , h o e f a s p r rcu t rc n e - i o mp c tl cu trc n e st mp ov d a o h g e t i o il i n h o ni l i y S mu tn o sy-t e ii a t ssa d d z d o e t ei i a l se e tr i s lc e i l e u l h n t da i tn a ie nc t cu t r n e s ee t d,ma e l se fe t mp o e t e mo . t — a i l a h ni l c k scu t re c r v d f h r r Dee i ur e c i w o t m r g ue a g r h Hk- a s t r u h t e d t f UCId t t t e r s l s o a n l i me h o g h a e o n aa s 。 u t h wst tHk- a s ag rt m s mo r mi e ti r v e h e h me o i n l h i r p o n n mp e o o d h n n tl k t a i i a —me sa g rt m i l se fe t a d i S u f l o o f r n e t e a v ie d i n a l o h i n cu t re f , c n t s u f rc n e c o r lt ef l . e e i Ke r s d t n n cus r g a g rt m ; me s ag r h y wo d : aa m i g; l t i o i i en l h k— a o i m n l t
kmeans聚类算法原理与步骤

kmeans聚类算法原理与步骤K-means聚类算法原理与步骤K-means聚类算法是一种常用的无监督学习算法,用于将数据集划分成不同的类别。
该算法的原理和步骤如下:一、算法原理1. 初始化:选择K个初始的聚类中心点,可以是随机选择或者根据领域知识进行选择。
2. 数据分配:根据欧氏距离等度量方式,将每个样本点分配到与其最近的聚类中心点所代表的类别。
3. 聚类中心更新:根据当前分配的聚类结果,重新计算每个类别的聚类中心点。
4. 重复步骤2和步骤3,直到聚类中心点不再发生变化或达到预设的迭代次数。
5. 输出最终的聚类结果。
二、算法步骤1. 选择聚类的数量K:根据问题的具体要求和领域知识,确定聚类的数量K。
2. 初始化聚类中心点:从数据集中随机选择K个样本点作为初始的聚类中心点。
3. 计算样本点到聚类中心点的距离:对于每个样本点,计算其与各个聚类中心点之间的距离,常用的距离度量方式是欧氏距离。
4. 将样本点分配到最近的聚类中心点所代表的类别:将每个样本点分配到与其最近的聚类中心点所代表的类别,形成初始的聚类结果。
5. 更新聚类中心点:根据当前的聚类结果,重新计算每个类别的聚类中心点,通常是计算类别内样本点的均值。
6. 重复步骤3和步骤5,直到聚类中心点不再发生变化或达到预设的迭代次数。
如果聚类中心点不再发生变化,则算法收敛;如果达到预设的迭代次数,但聚类中心点仍在发生变化,则可以考虑增加迭代次数或调整聚类的数量K。
7. 输出聚类结果:将最终的聚类结果输出,每个样本点属于某个类别。
三、算法优缺点1. 优点:- K-means算法简单易实现,计算效率高。
- 对大规模数据集有较好的可扩展性。
- 聚类结果具有较好的可解释性。
2. 缺点:- 对初始聚类中心点的选择敏感,可能会得到不同的聚类结果。
- 对噪声和异常点较为敏感,可能会影响聚类结果的准确性。
- 需要提前确定聚类的数量K,如果选择不当可能会影响聚类结果。
最大距离法选取初始簇中心的 K-means 文本聚类算法的研究

2 0 1 4年 3 月
计 算 机 应 用 研 究
Ap p l i c a t i o n Re s e a r c h o f Co mp u t e r s
Vo 1 . 3l No . 3
Ma r .2 01 4
最 大 距 离 法 选 取初 始簇 中心 的 K - me a n s a me c l u s t e r .T o a p p l y t h e i mp r o v e d a l g o r i t h m i n t o t e x t c l u s t e r i n g ,i t c o n s t r u c t e d a me t h o d t o t r a n s f o r m t e x t s i mi l a r i t y i n t o
翟东海 。 , 鱼 江 , 高 飞 , 于 磊 , 丁 锋
( 1 . 西南交通大学 信息科学与技术学院, 成都 6 1 0 0 3 1 ; 2 . 西藏大学 工学院, 拉萨8 5 0 0 O O )
摘 要 :由于初 始 簇 中心的 随机 选择 , K — m e a n s 算法在 聚 类时容 易 出现 聚 类结 果局 部 最优 、 聚 类 结果 不稳 定、 总
K— me a n s t e x t c l u s t e r i n g a l g o r i t h m b a s e d o n i n i t i a l c l u s t e r c e n t e r s s e l e c t i o n a c c o r d i n g t o ma x i mu m d i s t a n c e
s t a b i l i t y o f c l u s t e r i n g r e s u l t s ,a n d h u g e n u mb e r o f i t e r a t i o n s .T o o v e r c o me t h e a b o v e p r o b l e ms ,t h i s p a p e r s e l e c t e d t h e i n i t i a l
基于改进的K-means算法的文本聚类仿真系统

可以得到最佳聚类结果 。然后将 改进 的 K—m as 法应用 en 算
于文本聚 类 仿 真 系 统 , 真 实 验 结 果 表 示 基 于 改 进 K— 仿 m as en 算法 的文本聚类系统有效地消除 了孤立点对聚类结果 的影响 , 取得 了 良好 的应用效果 。
合 于大数据量文本聚类 系统 , 以传统 的文本聚类 系统是基 所 于 K— as 法实现的。 由于 K—m a s me 算 n en 算法 自身 的缺 陷 ,
eet o tes f cs f ul ri o i 州 peaef x c s r g ntepoeso t t ls r gs l i x e m ns t g— rp r et l t i .I h rcs fe ut n i a o epr et,h a o r ot u en xc e i mu t n i el
1 引言
目前 , 文本聚类 已经成 为 了文 本挖 掘的一 个重 要分 支 , 近年来学术界在这方面也做 了大量研究 “] 。K— as men 聚 类算法 的时 间复杂度 与数 据量 成线性 关 系, 算开销 小 , 计 适
Si a t三个参数 , 以自动计算聚类结果 中簇 的个数 , n 可 去除 了用 户选择 值难的 问题 , 同时 Si阈值 消除 了孤 立点 的影 响 ,
行了多次测试 , 测试结果表 明基于改进 K— e s m a 算法 的文本聚类系统具有更好的聚类 特性 , 了良好 的应用效果。 n 取得
关键词 : 均值 ; 文档 聚类 ; 相似度
中图 分 类 号 :P 8 T 1 文 献 标 识 码 : B
Te tCl t rng S m ulto y t m s d o x use i i a i n S se Ba e n I pr v d K —m e n lo ihm m o e — a sA g rt
基于K-Means的文本聚类算法

基于K-Means的文本聚类算法TF-IDF(term frequency–inverse document frequency)这是一种用于信息检索的一种常用加权技术。
它是一种统计方法,用以评估一个字词对于一个文件集或一个语料库中的其中一份文件的重要程度。
字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
假如一篇文件的总词语数是100个,而词语“母牛”出现了3次,那么“母牛”一词在该文件中的词频就是 0.03 (3/100)。
一个计算文件频率 (DF) 的方法是测定有多少份文件出现过“母牛”一词,然后除以文件集里包含的文件总数。
所以,如果“母牛”一词在1,000份文件出现过,而文件总数是 10,000,000份的话,其文件频率就是 0.0001 (1000/10,000,000)。
最后,TF-IDF分数就可以由计算词频除以文件频率而得到。
以上面的例子来说,“母牛”一词在该文件集的TF- IDF分数会是 300 (0.03/0.0001)。
这条公式的另一个形式是将文件频率取对数。
具体的计算原理,请参考维基百科tf–idf条目。
下面简单介绍下基本的计算步骤:1,文档预处理:1)文档分词;2)移除停用词;3)单词正规化处理2,分出的单词就作为索引项(或单词表),它们代表的就是向量空间的项向量3,计算项权值:这包括要计算1)词频 ; 2)倒排文件频率;3)TF-IDF权值4,计算文档之间的相似度,一般用余弦相似度(cosine similarity)一同使用于向量空间模型中,用以判断两份文件之间的相似性#include "ITokeniser.h"#includeclass TFIDFMeasure{private:StrVec _docs;//文档集合,每一行字符串代表一份文档int _numDocs;//文档数目int _numTerms;//单词数目StrVec _terms;//单词集合Int2DVec _termFreq;//每个单词出现在每份文档中的频率Double2DVec _termWeight;//每个单词在每份文档的权重IntVec _maxTermFreq;//记录每一份文档的最大词频IntVec _docFreq;//出现单词的文档频率ITokeniser* _tokenizer;//分词器map _wordsIndex;//单词映射表,保存每一个单词及其对应的下标public:TFIDFMeasure(const StrVec& documents,ITokeniser* tokeniser);public:~TFIDFMeasure(void);protected:void Init();//初始化TF-IDF计算器void GenerateTerms(const StrVec& docs,StrVec& terms);//分词处理void GenerateTermFrequency();//计算词频void GenerateTermWeight();//计算词的权重void GetWordFrequency(string& input,map& freq); //实际统计词频函数int CountWords(string& word, const StrVec& words);//统计词数int GetTermIndex(const string& term);//查询词语对应的下标double ComputeTermWeight(int term, int doc);//计算词语在指定文档中的权重值double GetTermFrequency(int term, int doc);//获取词语在指定文档的词频double GetInverseDocumentFrequency(int term);//计算倒排文件频率public:inline int NumTerms()const{return this->_numTerms;}void GetTermVector(int doc,DoubleVec& vec);//获取项向量};TF-IDF具体实现代码#include "TFIDFMeasure.h"#include#includeusing namespace std;TFIDFMeasure::~TFIDFMeasure(void){//销毁分词器if (this->_tokenizer!=NULL){delete _tokenizer;_tokenizer = NULL;}//清空数据_docs.clear();_terms.clear();_wordsIndex.clear();}TFIDFMeasure::TFIDFMeasure(const StrVec& documents,ITokeniser* tokeniser) {_docs=documents;_numDocs=documents.size();_tokenizer = tokeniser;this->Init();}void TFIDFMeasure::GenerateTerms(const StrVec& docs,StrVec& terms) {for (int i=0; i{StrVec words;_tokenizer->Partition(docs[i],words);//分词for (int j=0; j{//不在单词表中,则加入if (find(terms.begin(),terms.end(),words[j])==terms.end()){terms.push_back(words[j]);}}}}void TFIDFMeasure::Init(){//初始化this->GenerateTerms (_docs,_terms);//分出所有词项this->_numTerms=_terms.size() ;//所有文档中的词项数目//准备好存储空间_maxTermFreq.resize(_numDocs);_docFreq.resize(_numTerms);_termFreq.resize(_numTerms);_termWeight.resize(_numTerms);for(int i=0; i{_termWeight[i].resize(_numDocs);_termFreq[i].resize(_numDocs) ;_wordsIndex[_terms[i]] = i;//将单词放入单词映射表中}this->GenerateTermFrequency ();//计算单词频率this->GenerateTermWeight();//计算单词权重}void TFIDFMeasure::GetWordFrequency(string& input,map& freq){//计算单词频率transform(input.begin(),input.end(),input.begin(),tolower);StrVec temp;this->_tokenizer->Partition(input,temp);//对当前文档分词unique(temp.begin(),temp.end());StrVec::iterator iter;for (iter=temp.begin();iter!=temp.end();++iter){int count = CountWords(*iter, temp);//计算单词在文档中出现的次数 freq[*iter] = count;//保存单词频率}}void TFIDFMeasure::GetTermVector(int doc,DoubleVec& vec){vec.resize(this->_numTerms);for (int i=0; i _numTerms; i++)vec[i]=_termWeight[i][doc];//第i个单词在文档doc中的权重}//用于字符串比较的仿函数class WordComp{public:WordComp(string& sWord) : word(sWord){}bool operator() (const string& lhs){return pare(word)==0;}private:string word;};int TFIDFMeasure::CountWords(string& word, const StrVec& words) {int nCount = 0;nCount = count_if(words.begin(),words.end(),WordComp(word));return nCount;}int TFIDFMeasure::GetTermIndex(const string& term) {map::iterator pos = _wordsIndex.find(term);if (pos!=_wordsIndex.end()){return pos->second;}elsereturn -1;}void TFIDFMeasure::GenerateTermFrequency(){//计算每个单词在每份文档出现的频率for(int i=0; i{string curDoc=_docs[i];//当前待处理的文档map freq;this->GetWordFrequency(curDoc,freq);map::iterator iter;_maxTermFreq[i]=numeric_limits::min();for (iter = freq.begin();iter!=freq.end();++iter) {string word=iter->first;int wordFreq=iter->second ;int termIndex=GetTermIndex(word);//单词下标if(termIndex == -1)continue;_termFreq [termIndex][i]=wordFreq;//单词在第i份文档中出现的频率_docFreq[termIndex]++;//出现第termIndex单词的文档频率加if (wordFreq > _maxTermFreq[i]) _maxTermFreq[i]=wordFreq;//记录第i份文档中的最大词频}}}void TFIDFMeasure::GenerateTermWeight(){//计算每个单词在每份文档中的权重for(int i=0; i{for(int j=0; j{_termWeight[i][j]=ComputeTermWeight (i, j);}}}double TFIDFMeasure::GetTermFrequency(int term, int doc){int freq=_termFreq [term][doc];//词频int maxfreq=_maxTermFreq[doc];return ( (float) freq/(float)maxfreq );double TFIDFMeasure::ComputeTermWeight(int term, int doc){//计算单词在文档中的权重float tf=GetTermFrequency (term, doc);float idf=GetInverseDocumentFrequency(term);return tf * idf;}double TFIDFMeasure::GetInverseDocumentFrequency(int term){int df=_docFreq[term];//包含单词term的文档数目return log((float) (_numDocs) / (float) df );}分词算法为了便于使用不同的分词算法,我们定义一个抽象的分词算法接口,具体的分词算法由用户自行实现class ITokeniser{public:virtual void Partition(string input,StrVec& retWords)=0;//分词算法};这里只实现了一个最简单的空格符分词算法:#include "Tokeniser.h"#include "StopWordsHandler.h"Tokeniser::Tokeniser(void){Tokeniser::~Tokeniser(void){}void Tokeniser::Partition(string input,StrVec& retWords){//分词算法,input为输入串,retWords为处理后所分开的单词,这里就简单化处理了,以空格符为分隔符进行分词transform(input.begin(),input.end(),input.begin(),tolower);string::iterator start = input.begin();string::iterator end = input.end();StopWordsHandler stopHandler;do{string temp;pos = find(start,input.end(),' ');//找到分隔符copy(start,end,back_inserter(temp));if (!stopHandler.IsStopWord(temp)){//不是停用词则保存retWords.push_back(temp);//保存分出的单词}if (end == input.end()){//最后一个单词了break;}start = ++end;} while (end != input.end());}停用词处理去掉文档中无意思的词语也是必须的一项工作,这里简单的定义了一些常见的停用词,并根据这些常用停用词在分词时进行判断#include "StopWordsHandler.h"string stopWordsList[] ={"的", "我们","要","自己","之","将","“","”",",","(",")","后","应","到","某","后","个","是","位","新","一","两","在","中","或","有","更","好",""};//常用停用词int stopWordsLen = sizeof(stopWordsList)/sizeof(stopWordsList[0]);StopWordsHandler::StopWordsHandler(void){for (int i=0;i{stopWords.push_back(stopWordsList[i]);}}StopWordsHandler::~StopWordsHandler(void){}bool StopWordsHandler::IsStopWord(string& str){//是否是停用词transform(str.begin(),str.end(),str.begin(),tolower);//确保小写化return find(stopWords.begin(),stopWords.end(),str)!=stopWords.end();}K-Means算法k-means 算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。
K-means聚类算法的研究的开题报告

K-means聚类算法的研究的开题报告一、选题背景K-means聚类算法是一种常用的聚类算法,它可以把数据分成K个簇,每个簇代表一个聚类中心。
该算法适用于大数据分析、图像分析等领域。
由于其具有简单、快速、效果明显等特点,因此备受研究者的关注。
二、研究意义K-means聚类算法在大数据分析、图像分析等领域的应用广泛,研究该算法有着十分重要的意义。
本次研究将对该算法进行探究,通过改进和优化算法,提高其聚类效果和运行效率,为实际应用提供更加可靠、有效的解决方案。
三、研究内容与方法本研究将围绕K-means聚类算法展开,重点探讨以下内容:1. K-means聚类算法原理及优缺点分析2. 基于距离的K-means聚类算法优化3. 基于密度的K-means聚类算法研究4. 算法的实现与效果评估在研究方法上,将采用文献调研、数学统计方法、算法实现和效果评估等多种方法对K-means聚类算法进行研究。
四、计划进度安排本研究总计时长为12周,具体进度安排如下:第1-2周:文献调研,研究K-means聚类算法的原理和优缺点分析第3-4周:基于距离的K-means聚类算法优化第5-6周:基于密度的K-means聚类算法研究第7-8周:算法实现第9-10周:效果评估第11-12周:论文撰写和答辩准备五、预期研究结果本研究将针对K-means聚类算法进行深入探究,并尝试改进和优化算法,提高其聚类效果和运行效率。
预期研究结果将包括以下几个方面:1.对该算法的优缺点进行全面分析,揭示其内在机制和局限性。
2.基于距离和密度两种方法对算法进行优化,提高其聚类效果和运行效率。
3.通过实验评估算法效果,得出具体的结论。
4.输出论文成果,向相关领域进行贡献。
六、研究的难点1.算法优化的设计,需要具备一定的数学和计算机知识。
2.实验的设计需要满足实际应用场景,需要有较强的应用能力。
3.研究过程中可能遇到一些技术难点,需要耐心解决。
七、可行性分析K-means聚类算法是广泛使用的算法之一,其研究具有实际意义和可行性。
k-means聚类方法的原理

k-means聚类方法的原理k-means聚类方法是一种常见的无监督学习算法,用于将数据集分成预定数目的簇。
它的目标是通过最小化数据点与其所属簇中心点之间的平方距离之和来确定每个数据点所属的簇。
k-means聚类方法的原理如下:首先,根据设定的簇的数目k,随机选择k个数据点作为初始簇中心。
然后,对于其他所有的数据点,将其与这k个初始簇中心进行距离计算,并将其归类到与之最近的簇中心所属的簇。
接下来,对于每个簇,计算其所有数据点的均值,将该均值作为新的簇中心。
然后,重复以上步骤,直到达到某个停止条件,例如簇中心不再发生变化或达到最大迭代次数。
k-means聚类方法的优点包括简单易实现、计算效率高,适用于大规模数据集;缺点主要是对初始簇中心的选择较为敏感,可能陷入局部最优解,并且对于不规则形状的簇效果较差。
k-means聚类方法的流程可以总结为以下几个步骤:1.初始化簇中心:根据设定的簇的数目k,随机选择k个数据点作为初始簇中心。
2.分配数据点到簇中心:对于其他所有的数据点,计算其与这k个初始簇中心之间的距离,并将其归类到与之最近的簇中心所属的簇。
3.更新簇中心:对于每个簇,计算其所有数据点的均值,将该均值作为新的簇中心。
4.重复步骤2和步骤3,直到达到某个停止条件,例如簇中心不再发生变化或达到最大迭代次数。
5.输出最终的聚类结果。
在k-means聚类方法中,距离的度量通常使用欧氏距离,即数据点之间的直线距离。
但在某些特定的情况下,也可以使用其他距离度量方法,例如曼哈顿距离或闵可夫斯基距离。
k-means聚类方法的性能评估主要有两种方式:内部评价和外部评价。
内部评价是基于数据本身进行评估,例如簇内的紧密度和簇间的分离度;外部评价是将聚类结果与事先给定的真实分类进行比较,例如准确率、召回率和F1分数等。
总结来说,k-means聚类方法是一种常用的无监督学习算法,通过最小化数据点与其所属簇中心点之间的平方距离之和来确定每个数据点所属的簇。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
硕士学位论文
基于k-means的中文文本聚类算法的研究与实现
姓名:张睿
申请学位级别:硕士
专业:计算机软件与理论
指导教师:刘晓霞200Fra bibliotek0601基于k-means的中文文本聚类算法的研究与实现
作者:张睿
学位授予单位:西北大学
被引用次数:2次
1.孙爽基于语义相似度的文本聚类算法的研究[学位论文]2007
2.王钦平基于改进K-means算法的Web文档聚类系统的研究与实现[学位论文]2007
3.吴启纲中文文本聚类算法的研究与实现[学位论文]2010
1.罗晖霞.曲晓玲基于网络舆情的K-Means算法的改进研究[期刊论文]-电脑开发与应用 2010(8)
2.汤寒青.王汉军改进的K-means算法在网络舆情分析中的应用[期刊论文]-计算机系统应用 2011(3)本文链接:/Thesis_Y1453367.aspx