文本聚类
文本聚类过程

文本聚类过程
文本聚类是一种无监督学习方法,用于将相似的文本归为一类。
以下是一般的文本聚类过程:
1、数据准备:收集并准备要聚类的文本数据。
这些数据可以来自多个来源,例如网页、新闻文章、社交媒体帖子等。
2、特征提取:从每个文本中提取出一些特征,以便将其与其他文本区分开来。
常见的特征包括词频、TF-IDF值、n-gram等。
3、选择聚类算法:选择一个合适的聚类算法来对文本进行分组。
常见的聚类算法包括K-means、层次聚类、DBSCAN等。
4、确定聚类数量:确定要将多少个文档分为一组。
这可以通过手动设置或使用一些自动化方法来完成。
5、执行聚类:使用所选的聚类算法对所有文本进行分组。
在执行过程中,可能会需要多次迭代和调整,以获得最佳的结果。
6、结果评估:评估聚类结果的质量,可以使用一些指标来衡量,例如轮廓系数等。
7、结果解释:解释聚类结果,并将其应用于实际问题中,例如垃圾邮件过滤、主题分类等。
语义增强的文本聚类方法研究

语义增强的文本聚类方法研究一、语义增强的文本聚类方法概述随着信息技术的快速发展,文本数据的爆炸式增长使得文本聚类技术在信息检索、知识管理、数据挖掘等领域变得尤为重要。
文本聚类是一种无监督学习方法,旨在将文本数据自动地划分为若干个具有相似特征的类别。
然而,传统的文本聚类方法往往依赖于词频、位置等表面特征,难以深入挖掘文本的语义信息。
语义增强的文本聚类方法通过引入语义分析技术,能够更准确地捕捉文本的内在含义,从而提高聚类的效果和质量。
1.1 语义增强文本聚类的核心特性语义增强的文本聚类方法的核心特性主要体现在以下几个方面:- 语义一致性:通过语义分析技术,能够确保聚类结果在语义层面上具有一致性,提高聚类的准确性。
- 多维度特征:除了传统的词频特征,还能够利用词义、句法、语义角色等多维度特征,丰富聚类的维度。
- 动态适应性:能够根据文本数据的特点和变化,动态调整聚类策略,提高聚类的适应性和灵活性。
1.2 语义增强文本聚类的应用场景语义增强的文本聚类方法在多个领域都有着广泛的应用,包括但不限于以下几个方面:- 信息检索:通过聚类技术,能够将用户查询的关键词与相关文档进行匹配,提高检索的准确性和效率。
- 知识管理:在知识库中,通过聚类技术可以发现知识之间的关联,优化知识结构,促进知识的传播和应用。
- 数据挖掘:在大规模文本数据中,通过聚类技术可以发现数据的内在模式和规律,为决策提供支持。
二、语义增强文本聚类方法的关键技术语义增强的文本聚类方法涉及多种关键技术,这些技术共同作用,提升聚类的效果和质量。
2.1 语义分析技术语义分析技术是语义增强文本聚类方法的核心。
它通过分析文本中的词汇、句法、语义角色等信息,提取文本的深层含义。
常见的语义分析技术包括:- 词义消歧:通过上下文信息,确定多义词的具体含义,提高语义分析的准确性。
- 句法分析:分析句子的结构,提取主语、谓语、宾语等成分,理解句子的语义关系。
- 语义角色标注:标注句子中各个成分的语义角色,理解句子的深层含义。
文本聚类法最简单三个例子

文本聚类法最简单三个例子哎,大家好!今天咱们聊聊文本聚类法。
嘿,这名字听起来好像很高大上对吧?它并没有那么复杂,反而挺简单的,关键是你得理解它是干什么的。
打个比方,就像你去市场买水果,突然看到一堆梨、苹果、橙子都被摊主摆在一起,搞得你眼花缭乱,这时候你就想:我要不要把它们分开,像橙子一类,梨一类,苹果一类,这样挑起来是不是方便一点?文本聚类法的意思差不多,就是把一些相似的东西(在我们这里是文本)给归到一起,搞清楚哪些内容是有相似性的,哪些又是完全不搭的。
说到这里,可能有朋友会问:“那聚类到底怎么做?”别急,我给你讲个简单的例子。
假设你现在有三篇文章,分别讲的是:如何做饭、如何修电脑、如何打篮球。
这三篇文章表面上看,感觉完全没有关系,对吧?但是如果你细想一下,你会发现它们都有一个共同点——都是“怎么做某件事”。
这时候,文本聚类法就会帮你把这些文章按照主题分成不同的类。
就像你把梨、苹果、橙子分开一样,聚类方法把文章按相似的主题分好了类。
这样一来,以后你想找做饭的文章,就直接去找“做饭类”,再也不用翻整个文件夹了,简直是省时省力!你说这是不是挺方便的?咱们给你再举个例子。
这次想象一下,假如你在整理一些客户反馈信息,可能有一些反馈是关于“产品质量”的,另一些可能是关于“服务态度”的,还有一些则说的是“售后问题”。
你一眼看过去,心里就开始犯愁:这些反馈该怎么处理?要是能把它们都归类,分别处理,岂不是轻松多了?没错!这就又是文本聚类法的用武之地。
它能够自动把那些说产品质量的评论归到一起,那些说服务态度的归到一起,售后问题又单独归一类。
这样一来,不仅你能清楚知道每个问题的种类,还能针对性地做出改进,省时又高效。
你可能会问:“那到底是怎么分的?”嘿,这个就得稍微讲讲技术原理了。
不过,别担心,简单说就是,聚类算法会通过一系列的步骤来计算文本之间的相似度,进而把它们分成不同的类别。
想象一下,你跟朋友聊天,他说的每句话其实都有一定的含义,而聚类法就像是一个懂你话的人,能迅速搞清楚你的意思,并把它们归类到不同的话题上。
文本聚类过程

文本聚类过程文本聚类是一种将文本数据分组的技术,它可以将相似的文本归为一类,从而更好地理解和分析文本数据。
文本聚类过程包括以下几个步骤:1. 数据预处理在进行文本聚类之前,需要对文本数据进行预处理。
预处理包括去除停用词、词干提取、词向量化等步骤。
去除停用词是指去除一些常见的无意义词汇,如“的”、“是”等。
词干提取是指将单词的不同形态转化为其基本形式,如将“running”转化为“run”。
词向量化是指将文本数据转化为向量形式,以便于计算相似度。
2. 特征提取在进行文本聚类之前,需要将文本数据转化为特征向量。
常用的特征提取方法包括词袋模型、TF-IDF模型等。
词袋模型是指将文本数据转化为一个词汇表,然后统计每个单词在文本中出现的次数,将其转化为向量形式。
TF-IDF模型是指将每个单词的重要性加权,以便于更好地区分不同的文本。
3. 相似度计算在进行文本聚类之前,需要计算文本之间的相似度。
常用的相似度计算方法包括余弦相似度、欧几里得距离等。
余弦相似度是指将文本向量进行归一化,然后计算它们之间的夹角余弦值。
欧几里得距离是指计算文本向量之间的欧几里得距离。
4. 聚类算法在进行文本聚类之前,需要选择合适的聚类算法。
常用的聚类算法包括K-Means算法、层次聚类算法等。
K-Means算法是一种基于距离的聚类算法,它将文本数据分为K个簇,每个簇的中心点是该簇中所有文本向量的平均值。
层次聚类算法是一种基于相似度的聚类算法,它将文本数据分为一棵树形结构,每个节点代表一个簇,节点之间的距离表示簇之间的相似度。
5. 聚类评估在进行文本聚类之后,需要对聚类结果进行评估。
常用的聚类评估指标包括轮廓系数、互信息等。
轮廓系数是指将每个文本向量与其所属簇中其他文本向量的相似度与该文本向量与其他簇中文本向量的相似度进行比较,以评估聚类结果的质量。
互信息是指将聚类结果与真实标签进行比较,以评估聚类结果的准确性。
文本聚类是一种重要的文本分析技术,它可以帮助我们更好地理解和分析文本数据。
文本挖掘之文本聚类(DBSCAN)

⽂本挖掘之⽂本聚类(DBSCAN)刘勇 Email:简介 鉴于基于划分的⽂本聚类⽅法只能识别球形的聚类,因此本⽂对基于密度的⽂本聚类算法展开研究。
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是⼀种典型的基于密度的聚类⽅法,可以找出形状不规则的聚类,⽽且聚类时⽆需事先知道聚类的个数。
基本概念 DBSCAN算法中有两个核⼼参数:Eps和MinPts(⽂献与程序中经常使⽤)。
前者定义为邻域半径,后者定义为核⼼对象的阈值。
本⽂为了描述⽅便,下⽂将Eps和MinPts分别简记为E和M。
(1) E 邻域:给定对象半径E内的区域成为该对象的E邻域。
该E邻域为球形,其半径的界定可以采⽤距离(欧式距离)、余弦相似度、Word2Vec等表征,本⽂实现采⽤余弦相似度来表征。
(2) 核⼼对象:若给定对象E邻域内的对象(样本点)个数⼤于等于M,则称该对象为核⼼对象。
(3) 直接密度可达:给定⼀个对象集合D,若对象p在q的E邻域内,且q是⼀个核⼼对象,则称对象p从对象q出发是直接密度可达的(directly density-reachable)。
(4) 密度可达:给定⼀个对象集合D,若存在⼀个对象链p1,p2,p3,...,pn,p1=q,pn=p,对于pi属于D,i属于1~n,p(i+1)是从pi关于E和M直接密度可达的,则称对象p从对象q关于E和M密度可达的。
(5) 密度相连:给定⼀个对象集合D,若存在对象o属于D,使对象p和q均从o关于E和M密度可达的,那么对于对象p到q是关于E和M密度相连的。
(6) 边界对象:给定⼀个对象集合D,若核⼼对象p中存在对象q,但是q对象⾃⾝并⾮核⼼对象,则称q为边界对象。
(7) 噪声对象:给定⼀个对象集合D,若对象o既不是核⼼对象,也不是边界对象,则称o为噪声对象。
图1 集合对象 如图1所⽰,其设定M=3,红⾊节点为核⼼对象,黄⾊节点为边界节点,蓝⾊为噪声节点。
文本分类聚类算法

文本分类聚类算法
文本分类聚类算法是一种将文本数据根据其内容或特征进行分类和聚类的方法。
常见的文本分类聚类算法有以下几种:
1. K-means聚类算法:K-means是一种基于距离的聚类算法,
可以用于将文本数据划分为k个不同的类别。
该算法通过迭代地更新类别的均值来找到最佳的聚类结果。
2. 层次聚类算法:层次聚类算法通过计算文本数据之间的相似度或距离来将其分层次地组织成一个层次结构。
这样可以通过设置层次结构中的切割点来得到不同的聚类结果。
3. 朴素贝叶斯分类算法:朴素贝叶斯分类算法是一种基于统计学原理的文本分类算法,它通过计算文本数据在不同类别下的条件概率来进行分类。
4. 支持向量机分类算法:支持向量机分类算法是一种基于机器学习的文本分类算法,它通过在特征空间中构建一个最优的超平面来实现分类。
5. 基于深度学习的分类算法:近年来,随着深度学习的发展,深度学习在文本分类聚类领域也得到了广泛应用。
常见的深度学习模型包括卷积神经网络(CNN)和循环神经网络(RNN)等。
这些算法在不同场景下有不同的适用性和性能表现,具体选择哪种算法需要根据具体问题和数据特点来决定。
长文本聚类方法

长文本聚类方法长文本聚类方法,听我跟你唠唠嘿,朋友!今天我要跟你分享一个超厉害的技能——长文本聚类方法。
这玩意儿就像是给一堆混乱的文字拼图找到它们各自的归属,让它们整整齐齐、清清楚楚。
准备好了吗?那咱们开始!第一步,咱得先搞清楚咱手头这些长文本到底在说啥。
这就好比你去参加一个大派对,得先瞅瞅来的都是些啥人,有啥特点。
你得把每段长文本都快速浏览一遍,心里有个大概的谱。
比如说,这篇可能是讲美食的,那篇可能是说旅游的。
别嫌麻烦,这可是基础中的基础!我之前就有一次,没好好做这一步,结果后面弄得一团糟,就像闭着眼睛在迷宫里乱撞,那叫一个惨!第二步,找出关键的词语和主题。
这就像是从一堆水果里挑出苹果、香蕉、橙子一样。
把那些频繁出现的、能代表主要意思的词给揪出来。
比如说,如果好多文本都提到了“火锅”“串串香”,那“美食”这个主题就八九不离十啦。
这里有个小窍门,你可以像个侦探一样,对那些出现频率高得离谱的词特别留意。
我跟你说,我有一回找关键词,找得眼睛都花了,最后发现居然把“的”“了”这种没啥用的词算进去了,闹了个大笑话!第三步,给这些文本分分类。
想象一下,你有一堆玩具,要把小汽车放一起,小娃娃放一起。
咱们也把主题类似的文本放在一块儿。
可以先弄几个大类,比如“生活类”“科技类”“娱乐类”等等。
然后再细分,像“生活类”里可以再分成“美食”“家居”“健身”。
这一步可别马虎,不然就像把大象和蚂蚁放在一个笼子里,乱套啦!第四步,检查和调整。
这就像是给你的分类成果来个“质检”。
看看有没有分错的,有没有漏网之鱼。
有时候你可能会发现,哎呀,有一篇讲美食的不小心被分到旅游里去了,赶紧给它挪回来。
我之前就有一次,检查的时候发现自己把一篇讲如何修电脑的文章分到了“厨艺秘籍”里,简直离谱到家!最后一步,给每个分类起个响亮的名字。
这名字得让人一看就明白里面是啥。
比如说,那个都是讲各种美食做法的分类,你就叫它“美食秘籍大全”。
起个吸引人的名字,自己看着也舒服,别人也能一目了然。
自然语言处理中的文本聚类方法评估指标

自然语言处理中的文本聚类方法评估指标自然语言处理(Natural Language Processing,简称NLP)是人工智能领域中一项重要的技术,它致力于使计算机能够理解和处理人类语言。
在NLP中,文本聚类是一种常见的任务,它将相似的文本归为一类,以便更好地理解和分析大量的文本数据。
然而,评估文本聚类方法的效果并不容易,需要考虑多个指标。
一、聚类准确性指标聚类准确性是评估文本聚类方法的重要指标之一。
它衡量了聚类结果与人工标注结果之间的相似度。
常用的聚类准确性指标包括调整兰德指数(Adjusted Rand Index,简称ARI)、互信息(Mutual Information,简称MI)和Fowlkes-Mallows 指数(Fowlkes-Mallows Index,简称FMI)等。
调整兰德指数是一种度量聚类结果与标准结果之间相似性的指标。
它考虑了聚类结果中的真阳性、真阴性、假阳性和假阴性等因素,通过计算所有样本对之间的相似度来评估聚类结果的准确性。
互信息则是一种度量聚类结果和标准结果之间的互信息量的指标,它衡量了聚类结果和标准结果之间的相关性。
Fowlkes-Mallows 指数是一种结合了精确度和召回率的指标,它考虑了聚类结果中的真阳性、假阳性和假阴性等因素。
二、聚类稳定性指标聚类稳定性是评估文本聚类方法的另一个重要指标。
它衡量了聚类结果对于不同的采样数据或参数设置的稳定性。
常用的聚类稳定性指标包括Jaccard系数(Jaccard Coefficient)和兰德指数(Rand Index)等。
Jaccard系数是一种度量两个聚类结果之间相似性的指标。
它通过计算两个聚类结果之间的交集和并集的比值来评估它们的相似程度。
兰德指数则是一种度量两个聚类结果之间一致性的指标,它通过计算两个聚类结果中样本对的一致性数量来评估它们的相似性。
三、聚类效率指标聚类效率是评估文本聚类方法的另一个重要指标。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1 概念及应用背景 (1)1.1概念 (1)1.2应用背景 (1)2 系统设计框架 (2)2.1总体框架 (2)2.2文本聚类的具体过程 (3)3应用程序具体实现及说明 (4)3.1获取文档的输入 (4)3.2提取文档的TF/IDF权重 (5)3.3 k-means进行数据聚类 (6)4 实验结果及分析 (7)4.1实验结果 (7)4.2结果分析 (10)5结论 (10)5.1实验结论 (10)5.2个人感受 (11)附录:项目框架和主程序代码 (12)1 概念及应用背景1.1概念文本聚类(Text clustering)是在没有学习的条件下对文本集合进行组织或划分的过程,其主要依据著名的聚类假设:同类的文档相似度较大,而不同类的文档相似度较小。
作为一种无监督的机器学习方法,聚类由于不需要训练过程,以及不需要预先对文档手工标注类别,因此具有一定的灵活性和较高的自动化处理能力,已经成为对文本信息进行有效地组织、摘要和导航的重要手段,为越来越多的研究人员所关注。
(代码下载:/source/3277899)1.2应用背景文本聚类是搜索引擎和语义Web的基本技术,Internet 已经发展为当今世界上最大的信息库和全球范围内传播信息最主要的渠道。
随着Internet 的大规模普及和企业信息化程度的提高,各种资源呈爆炸式增长。
在中国互联网络信息中心(CNNIC)2011年1月最新公布的中国互联网络发展状况统计报告中显示,自2003年开始,中国的网页规模基本保持翻番增长,2010年网页数量达到600亿个,年增长率78.6%,其中仍有62.3% 的网络信息均以文本形式体现。
对于这种半结构或无结构化数据,如何从中获取特定内容的信息和知识成为摆在人们面前的一道难题。
近年来,文本挖掘、信息过滤和信息检索等方面的研究出现了前所未有的高潮。
作为一种无监督的机器学习方法,聚类技术可以将大量文本信息组成少数有意义的簇,并提供导航或浏览机制。
文本聚类的主要应用点包括:(1) 文本聚类可以作为多文档自动文摘等自然语言处理应用的预处理步骤。
(2) 对搜索引擎返回的结果进行聚类,使用户迅速定位到所需要的信息。
(3) 对用户感兴趣的文档(如用户浏览器cache中的网页)聚类,从而发现用户的兴趣模式并用于信息过滤和信息主动推荐等服务。
(4) 改善文本分类的结果。
(5) 数字图书馆服务。
通过SOM神经网络等方法,可以将高维空间的文档拓扑保序地映射到二维空间,使得聚类结果可视化和便于理解。
(6) 文档集合的自动整理。
如Scatter/Gather,它是一个基于聚类的文档浏览系统。
2 系统设计框架2.1总体框架聚类(Clustering) 就是将数据对象分组成为多个类或者簇(Cluster),它的目标是:在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大。
其实聚类是一个人们日常生活的常见行为,即所谓―物以类聚,人以群分‖,核心的思想也就是聚类。
作为聚类算法的主要应用场景——文本聚类是在没有学习的条件下对文本集合进行组织或划分的过程,方法主要包括等级聚类法和动态聚类法(即层次凝聚法和平面划分法),其中动态聚类法的基本思想如图2-1所示:图2-1 动态聚类法基本思想具体步骤如下:1) 确定聚类个数k,从文档集合中选择k个文档作为凝聚点(聚类中心),每个凝聚点文档自成一类2) 按照距离最近原则,将剩余n-k个文档逐个并入最近凝聚点所代表的类。
每并入一篇文档,立即重新计算该类的中心,并用此中心替代原来的凝聚点3) 以最后形成的每个凝聚点代表一类,将全部n篇文档重新聚类。
文档集合被重新聚类以后,如果与原来的聚类结果不同,就重复步骤3);否则,聚类处理结束文本聚类的具体过程如图2-2所示:图2-2 文本聚类具体过程2.2文本聚类的具体过程1 文本信息的预处理文本聚类的首要问题是如何将文本内容表示成为数学上可分析处理的形式,即建立文本特征,以一定的特征项(如词条或描述)来代表目标文本信息。
要建立文本信息的文本特征,常用的方法是:对文本信息进行预处理(词性标注、语义标注),构建统计词典,对文本进行词条切分,完成文本信息的分词过程。
对于中文的处理,Lucene中文分词组件je-analysis.jar是个不错的包,其分词方法主要有以下两种:MMAnalyzer analyzer = new MMAnalyzer();//采用正向最大匹配的中文分词算法,相当于分词粒度等于0MMAnalyzer analyzer = new MMAnalyzer(int wordLength);//参数为分词粒度:当字数等于或超过该参数,且能成词时,该词就被切分出来2 文本信息特征的建立文本信息的特征表示模型有多种,常用的有布尔逻辑型、向量空间型、概率型以及混合型等。
其中,向量空间模型(Vector Space Model,VSM) 是近几年来应用较多且效果较好的方法之一。
1969 年,Gerard Salton 提出了向量空间模型VSM ,它是文档表示的一个统计模型。
该模型的主要思想是:将每一文档都映射为由一组规范化正交词条矢量张成的向量空间中的一个点。
对于所有的文档类和未知文档,都可以用此空间中的词条向量(T1 ,W 1 ,T 2 ,W2 ,…, Tn , Wn )来表示( 其中,Ti 为特征向量词条;Wi 为Ti 的权重)。
一般需要构造一个评价函数来表示词条权重,其计算的唯一准则就是要最大限度地区别不同文档。
这种向量空间模型的表示方法最大的优点在于将非结构化和半结构化的文本表示为向量形式,使得各种数学处理成为可能。
3 文本信息特征集的缩减VSM 将文本内容表示成数学上可分析处理的形式,但是存在的一个问题是文档特征向量具有惊人的维数。
因此,在对文本进行聚类处理之前,应对文本信息特征集进行缩减。
通常的方法是针对每个特征词条的权重排序,选取预定数目的最佳特征作为结果的特征子集。
选取的数目以及采用的评价函数都要针对具体问题来分析决定。
4 文本聚类在将文本内容表示成数学上可分析处理的形式后,接下来的工作就是在此数学形式的基础上,对文本进行聚类处理。
文本聚类主要有 2 种方法:基于概率[6] 和基于距离。
基于概率的方法以贝叶斯概率理论为基础,用概率的分布方式描述聚类结果。
基于距离的方法,就是以特征向量表示文档,将文档看成向量空间中的一个点,通过计算点之间的距离进行聚类。
目前,基于距离的文本聚类比较成熟的方法大致可以分为 2 种类型:层次凝聚法和平面划分法。
对于给定的文件集合D={d1, d2,…,di ,…, dn},层次凝聚法具体过程如下:(1) 将D中的每个文件di 看成一个具有单个成员的簇ci ={di}这些簇构成了D的一个聚类C={c1 ,c2 ,…,ci ,…,cn};(2) 计算C中每对簇(ci ,cj)之间的相似度sim{ci ,cj};(3) 选取具有最大相似度的簇对(ci ,cj)将ci和cj合并为一个新的簇ck =sim ci∪cj,从而构成了D的一个新的聚类C =(c1, c2,…,cn-1);(4) 重复上述步骤,直至C中剩下一个簇为止。
该过程构造出一棵生成树,其中包含了簇的层次信息以及所有簇内和簇间的相似度。
对于给定的文件集D={d1 , d2 ,…,di ,…, dn},平面划分法的具体过程如下:(1) 确定要生成簇的数目k;(2) 按照某种原则生成k个聚类中心作为聚类的种子S=(s1,s2,…,si,…,sk);(3) 对D中的每个文件di,依次计算它与各个种子sj的相似度sim (di,sj);(4) 选取具有最大相似度的种子,将di归入以sj为聚类中心的簇cj,从而得到D的一个聚类C={ci ,cj};(5) 重复此步骤若干次,以得到较为稳定的聚类结果。
这2种类型各有优缺点。
层次凝聚法能够生成层次化的嵌套簇,准确度较高。
但在每次合并时,需要全局地比较所有簇之间的相似度,并选出最佳的2个簇,因此执行速度较慢,不适合大量文件的集合。
而平面划分法相对来说速度较快,但是必须事先确定k 的取值,且种子选取的好坏对群集结果有较大影响。
3应用程序具体实现及说明计算两篇文档的相似度,最简单的做法就是用提取文档的TF/IDF权重,然后用余弦定理计算两个多维向量的距离。
能计算两个文本间的距离后,用标准的k-means算法就可以实现文本聚类了。
这里会用到TF/IDF权重,用余弦夹角计算文本相似度,用方差计算两个数据间欧式距离,用k-means进行数据聚类。
其具体实现过程为:图3-1 文本聚类具体实现过程3.1获取文档的输入首先获得文档所在位置(即所需聚类文档集所在的文件夹路径),根据该文件夹路径获得所有文档文件的路径信息(ReadDir),保存在一个String类型List 中,用然后将文档中的内容依次读入一个字符串中(ReadFile),形成一个String 数组作为文档的输入。
3个函数定义如图3-2所示:图3-2 获得文档输入的3个函数3.2提取文档的TF/IDF权重TF-IDF(term frequency–inverse document frequency)的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
TFIDF实际上是:TF*IDF,TF词频(Term Frequency),IDF反文档频率(Inverse Document Frequency)。
TF表示词条t在文档d中出现的频率。
IDF的主要思想是:如果包含词条t的文档越少,IDF越大,则说明词条t具有很好的类别区分能力。
假如document1和document2的term的TF/IDF分别是t11,t12,t13,...t1n和t21,t22,t23,...,t2n.他们之间的相似性可以用余弦定理来表示。
则:cos(d1,d2) = d1和d2的内积/(d1的长度*d2的长度) = (t11*t21 + t12*t22 + t13*t23 + ... + t1n*t2n)/(|d1|*|d2|);d1 = sqrt(t11*t11 + t12*t12 + t13*t13 + ... + t1n*t1n)。
夹角越大,相似性越大;为1则表示d1和d2一致。
例如一篇文档文件的总词语数是100个,而词语―母牛‖出现了3次,那么―母牛‖一词在该文件中的词频就是0.03 (3/100)。
一个计算文件频率(DF) 的方法是测定有多少份文件出现过―母牛‖一词,然后除以文件集里包含的文件总数。
所以,如果―母牛‖一词在1,000份文件出现过,而文件总数是10,000,000份的话,其文件频率就是0.0001 (1000/10,000,000)。