1.数据转换
(1)简单变化:
数据变换的目的是将数据转换为更方便分析的数据
简单变换通常使用函数变换的方式进行,常见的函数变换包括:开方,平方,对数等
(2)数据规范化:
离差标准化--消除量纲(单位)影响以及变异大小因素的影响 (最小-最大标准化)
x1=(x-min)/(max-min)
标准差标准化--消除单位影响以及变量自身变异影响 (零-均值标准化)
x1=(x-平均数)/标准差
小数定标规范化--消除单位影响
x1=x/10**(k)
k=log10(x的绝对值的最大值)
import pymysql
import pandas as pda
import numpy as npy
conn=pymysql.connect(host="127.0.0.1",user="root",passwd='root',db='csdn')
sql="select price,comment from taob"
data=pda.read_sql(sql,conn)
#离差标准化
data2=(data-data.min())/(data.max()-data.min())
print(data2)
#标准差标准化
data3=(data-data.mean())/data.std()
print(data3)
#小数定标规范化
k=npy.log10(data.abs().max())
data4=data/10**k
print(data4)
(3)离散化:
等宽离散化
等频率离散化
一维聚类离散化
2.属性构造
属性构造:
3.数据规约
(1)属性规约与数值规约概述:
(2)主成分分析:
PCA算法:PCA(PrincipalComponents Analysis)即主成分分析,是图像处理中经常用到的降维方法,将多个变量通过线性变换以选出较少个数重要变量的一种多元统计分析方法。比如经常用的图像的查询问题,在一个几万或者几百万甚至更大的数据库中查询一幅相近的图像。
from sklearn.decomposition import PCA
import pymysql
import pandas as pda
import numpy as npy
conn=pymysql.connect(host="127.0.0.1",user="root",passwd='root',db='hexum')
sql="select hits,comment from myhexum"
data9=pda.read_sql(sql,conn)
ch=data9[u"comment"]/data8["hits"]
data9[u"评点比"]=ch
#--主成分分析进行中--
pcal=PCA()
pcal.fit(data9)
#--返回模型中各个特征量
Characteristic=pcal.components_
print(Characteristic)
#--各个成分中各自方差百分比,贡献率
rate=pcal.explained_variance_ratio_
print(rate)
4.文本挖掘
import jieba
#全模式
sentence="我喜欢上海东方明珠"
w1=jieba.cut(sentence,cut_all=True)
for item in w1:
print(item)
print("")
#精准模式
w2=jieba.cut(sentence,cut_all=False)
for item in w2:
print(item)
print("")
#搜索引擎模式
w3=jieba.cut_for_search(sentence)
for item in w3:
print(item)
print("")
#默认使用精准模式
w4=jieba.cut(sentence)
for item in w4:
print(item)
print("")
#词性标注
sentence="内容"
import jieba.posseg
w5=jieba.posseg.cut(sentence)
#flag词性
#word词语
for item in w5:
print(item.world+"----"+item.flag)
a:形容词
c:连词
d:副词
e:叹词
f:方位词
i:成语
m:数词
n:名词
nr:人名
ns:地名
nt:机构团体
nz:其他专有名词
p:介词
r:代词
t:时间
u:助词
v:动词
vn:名动词
w:标点符号
un:未知词
#词典加载:
jieba.load_userdict("D:\Anaconda\Lib\site-packages\jieba\dict.txt")
5.文本相似度分析
TFIDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率):
是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
上述引用总结就是, 一个词语在一篇文章中出现次数越多, 同时在所有文档中出现次数越少, 越能够代表该文章.。
Doc2Bow:是Gensim中封装的一个方法,主要用于实现Bow模型,BoW使用一组无序的单词(words)来表达一段文字或一个文档.。
稀疏向量:通常用两部分表示:一部分是顺序向量,另一部分是值向量。密集向量和稀疏向量的区别: 密集向量的值就是一个普通的Double数组 而稀疏向量由两个并列的 数组indices和values组成。
语料库:指经科学取样和加工的大规模电子文本库,其中存放的是在语言的实际使用中真实出现过的语言材料。第三代语料库是历时语料库.是基于大规模真实文本的语料库,是对语言文字的使用进行动态追踪的语料库,是对语言的发展变化进行监测的语料库,是"活"的语料库.
(1)相似度计算的步骤:
读取文档
对要计算的文档进行分词
对文档进行整理成指定格式,方便后续进行计算
计算出词语的频率
对频率低的词语进行过滤
通过语料库建立词典
加载要对比的文档
将要对比的文档通过Doc2Bow转化为稀疏向量
对稀疏向量进行进一步处理,得到新语料库
将新语料库通过tfidfmodel进行处理,得到tfidf
通过token2id得到特征数
稀疏矩阵相似度,从而建立索引
得到最终相似度结果
from gensim import corpora,models,similarities
import jieba
from collections import defaultdict
doc1="地址.txt格式"
doc2="地址.txt格式"
d1=open(doc1).read()
d2=open(doc2).read()
data1=jieba.cut(d1)
data2=jieba.cut(d2)
data11=""
for item in data1:
data11+=item+""
for item in data2:
data21+=item+""
documents=[data11,data21]
texts=[[word for word in document.split()]
for document in documents]
frequency=defaultdict(int)
for text in texts:
for token in text:
frequency[token]+=1