目 录
- 研究目标
- 分析方法与过程
2.1. 总体流程
2.2. 具体步骤 - 结论
- 参考文献
1. 挖掘目标
本次建模的目的是利用通过网络爬虫工具从某些社区采集的网络舆情信息,采用数据挖掘技术,从资源集合中找出与指定的用户中存在关联的用户,利用用户各信息与用户之间不同的关联规则,计算求得这些用户与舆情资源集合的关联度,并进行关联度排序。
2. 分析方法与过程
2.1. 总体流程
主要包括如下步骤:
步骤一: 样本数据预处理
步骤 2:为用户各属性设置不同的权重
步骤 3:中文分词
步骤 4:关键词词频统计
步骤 5:关键词在文档中的权重的量化
步骤 6:文档分类、关联度计算及排序
2.2. 具体步骤
步骤 1:样本数据预处理
数据预处理主要从两方面进行:一方面是对舆情资源的预处理,另一方面是对用户信息表的预处理。
对舆情资源的预处理 主要包括无效 HTML 文档过滤、HTML 文档噪声清洗。(程序见附录一)
无效 HTML 文档过滤
由于 HTML 文档是根据网络爬虫工具爬取而来,可能会爬取出无效的网页,如无法访问的页面。在给定的舆情资源中,存在大量的无效 HTML 文档,其内容为“404”,通过 Java 编程将其过滤。此外,还有一些 HTML 文档的内容只包含数字,没有正文内容,但是用户信息中出现了很多数值类型的属性如身份证号、电话号码等,不排除这些 HTML 文档中某些用户信息的可能,我们没有将这类文档过滤。
HTML 文档噪声清洗
由于舆情资源中的正文通常都是由成段的文字来描述,中间通常不会有大量的超链,通过对抓取到的网页 HTML 文件进行分析,可以获取网页正文信息。具体净化操作:利用 Java 编程,去除空格、“,”、“。”、“、”、 “|”、“\n\r”、“<”、“>”、“_”等 量符号。此外,考虑到文档中可能出现用户的英文信息如 E-mail、MSN 以及数值信息如身份证号、电话号码等,因此我们没有将文档中的数值信息和英文信息当作噪声信息过滤掉。
对用户信息表的预处理 主要包括无效信息处理、重复记录处理。(程序见附录二)
无效信息处理
在原始 Excel 数据表中,所有用户的国别属性值均为“中国”,因此,这个属性对于给定的用户与舆情资源的关联度分析不起作用,可以人工将其删除。
重复记录处理
表中的 Id7 和 Id26 代表同一个用户,Id8 和 Id27 代表同一个用户,这些冗余信息会影响关联度分析的结果,因此需要人工删除两行信息。观察发现 Id7 和 Id8 中存在大量噪声数据,如:Id7 和 Id8 具有相同的身份证号、出生日期、QQ 号码、E-mail和 MSN,可以看出这两行数据不能很好地代表这两个用户。而 Id26 和 Id27 中缺少“照片”信息,因此,我们将 Id7 和 Id8 的“照片”信息添加到 Id26 和 Id27 的“照片”信息中,并人工删除掉 Id7 和 Id8 所在的两行。
步骤 2:为用户各属性设置不同的权重
思路分析:
基于层次分析法的用户属性权重设置
由于用户的姓名、住址、身份证号、电话号码、QQ 号码、E-mail、MSN 等属性与用户存在着不同程度的关联,舆情资源集合中这些信息的出现模式,也间接的反映了资源与用户的关联。因此在进行舆情资源与用户之间的关联度分析之前,需要设置不同的权重,来表征用户其各属性的关联规则。本文采用层次分析法,通过相互比较,确定用户的姓名、住址、身份证号、电话号码、QQ 号码、E-mail、MSN 等属性对于用户的权重,这是一个量化的过程。
层次分析法分析步骤
(1)建立层次结构模型
本文只需确定用户各个属性对于用户的权重,因此,将各个用户的姓名、住址、身份证号、电话号码、QQ 号码、E-mail、MSN 等属性作为准则层,分别为 C1,C2,… , C11,将用户作为目标层 O。
(2)构造成对比较矩阵构造成对比较阵 A,将用户各个属性之间两两对比,对比采用相对尺度,来表征各准则 C1,C2,… , C11 对目标 O 的重要性。其中 a i j a_{ij} aij表示 C i C_i Ci对 C j C_j Cj的相对重要程度,即:
C i : C j ⇒ a i j C_i:C_j \Rightarrow a_{ij} Ci:Cj⇒aij
A = ( a i j ) n × n , a i j > 0 , a i j = 1 a i j A=(a_{ij})_{n \times n}, a_{ij}>0, a_{ij}= \frac{1}{a_{ij}} A=(aij)n×n,aij>0,aij=aij1
其中,比较尺度为:Saaty 等人提出 1-9 尺度—— a i j a_{ij} aij 取值 1,2,… , 9 及其互反数1,1/2, … , 1/9, 便于定性到定量的转化,见表 1。
(3)计算权向量
采用权重算术平均法确定各影响因素的权重,步骤如下:
(a)计算各个有效判断矩阵的权重。这可归结为计算判断矩阵的最大特征根及其
特征向量的问题。计算方法包括和法、方根法、幂法。当精度要求不高时,和法、方
根法可以满足实际应用要求;当精度要求较高时可用幂法。采用方根法。计算判断矩
阵每一行元素的乘积 M i M_i Mi,如式所示。
M i = ∏ j = 1 n C i j ( i = 1 , 2 , . . . . . , n ) M_i = \prod_{j=1}^{n} C_{ij}(i=1,2,.....,n) Mi=j=1∏nCij(i=1,2,.....,n)
(b)计算 M i M_i Mi的 n 次方根 W i ˉ \bar{W_i} Wiˉ, 如式所示;
W i ˉ = M i n \bar{W_i}= \sqrt[n]{M_i} Wiˉ=nMi
(c)对向量正规化,如式所示;
W i = W i ˉ / ∑ j = 1 n W j ˉ W_i=\bar{W_i}/\sum_{j=1}^{n} \bar{W_j} Wi=Wiˉ/j=1∑nWjˉ
即为所求的特征向量,也就是相应的权重系数。
(4)一致性检验
计算出每个有效判断矩阵的权重后对这些有效判断的权重取算术平均即得到各影响因素权重。一致性检验: 如果 A 是 完全一致的成对比较 矩阵,应该有 a i , j a j , k = a i , k a_{i,j}a_{j,k}=a_{i,k} ai,jaj,k=ai,k。但实际上在构造成对比较矩阵时要求满足上述众多等式是不可能的。因此退而要求对比较矩阵有一定的一致性,即可以允许成对比较矩阵存在一定程度的不一致性。
检验成对比较矩阵 A 一致性的步骤如下:
(a)计算衡量一个成对比矩阵 A (n>1 阶方阵)不一致程度的指标 C I CI CI:
C I = ( λ m a x − n ) / ( n − 1 ) CI=(\lambda_{max}- n )/(n-1) CI=(λmax−n)/(n−1)
其中 λ m a x \lambda_{max} λmax是矩阵 A 的最大特征值。
(b)从有关资料查出检验成对比较矩阵 A 一致性的标准RI:RI称为平均随机一致性指标,它只与矩阵阶数有关。RI的值如表 2 所示。
(c)按下面公式计算成对比较阵 A 的随机一致性比率CR:
C R = C I / R I CR = CI / RI CR=CI/RI
判断方法如下: 当 CR<0.1 时,判定成对比较阵 A 具有满意的一致性,或其不一致程度是可以接受的;否则就调整成对比较矩阵 A,直到达到满意的一致性为止。
具体实现:
根据表格信息以及先验知识判断,构造成对比较矩阵。并运用 Excel 进行分析,根据上述步骤,计算出权重以及一致性检验结果。如表 3 所示。
由表 2 可知:权向量为:
w = (0.13775506 6,0.02156455 ,0.03811044,0.11281277 ,0.10837126 ,0.02868322,0.13775507,0.13775507,0.13775507,0.06971875,0.06971875 ) T ^T T
一致性比率为CR = 0.078885 < 0.1,通过一致性检验。
权向量 w 代表用户的用户的姓名、住址、身份证号、电话号码、QQ 号码、E-mail、MSN 等属性对于用户的权重。
步骤 3:中文分词
思路分析:
基于 ICTCLAS 的分析技术。
所谓分词,就是将连续的字序列按照一定的规范重新组合成词序列的过程,以便为其建立索引。中文分词是文本挖掘的基础工作,是文本深层分析的前提。不同于英文文本,其词间的空格可以作为其自然分隔符,因此在词的层次上,中文分词的难度相对英文分词高。此外,中文分词还面临着歧义切分、未登录词识别等难题。
本文采用中国科学院计算机所软件室编写的中文分词工具 ICTCLAS,对 HTML文档和 TXT 文档进行中文分词。ICTCLAS 的分词速度快,精度高,具有新词识别、支持用户词典等功能,基本上解决了中文分词的难题。ICTCLAS 中文分词工具还具有词性标注的功能。词性标注方法包括北大一级标注和二级标注。其中,一级只标注名词、动词等;二级可以标注出更为具体的情况,如具有名词功能的形容词或者动词,专有名词等等。为了提高挖掘查准率,我们采用了二级标注。为了进一步进行词频统计,分词结束后将词性标注去掉。
具体实现:
本文使用 ICTCLAS 提供的 JNI 接口进行 Java 编码,实现了中文文本分词(程序见附录三 )。如对下面一篇原始 HTML 文档进行中文分词:
步骤 4:关键词词频统计
思路分析:
为了找出与舆情资源有关的用户,需要将用户的姓名、性别、住址、身份证号、电话号码、出生日期、QQ 号码、E-mail、MSN、附加关键字、照片等信息定义为关键字并进行词频统计。
具体实现:
(1)利用 Java 编程,读入所有分词后的 HTML 文档。遍历这些文档,从第一个用户开始,如果发现文档中出现了该用户的任何一个属性值,就记录下该文档的文档名称,并依次记录下该用户的所有属性在此文档中出现的频率中,汇总成为一个表格。部分结果如图一。
(2)采用同样的方法,对 TXT 文档集中的每个文档进行关键词的词