tf-idf矩阵
词频-逆向文本频率,是一种用于信息检索和文本挖掘的常用加权技术。
TF(词频)
某一个给定的词语在该文件中出现的频率。
IDF(逆向文本频率)
总文件数目除以包含该词语之文件的数目,再将得到的商取以10为底的对数。
TF*IDF
表示给定词语对于一个文本的重要程度。
举例
heading_plus_content_corpus =["I come to China to travel",
"This is a car polupar in China",
"I love tea and Apple ",
"The work is to write some papers in science"]
这样两句代码就可以把tf-idf矩阵求出来。
print(tfidfX.shape)#矩阵的长宽
words = tfidf.get_feature_names()
print(words)#统计了哪些单词(按矩阵列的顺序)
print(tfidfX.todense()) #矩阵具体内容
print(tfidf.vocabulary_)# 单词以及它所在的列数(按文本出现顺序)
Dataframe
DataFrame是一种表格型数据结构,它含有一组有序的列,每列可以是不同的值。
通过字典创建
data = {
'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
'year':[2000,2001,2002,2001,2002],
'pop':[1.5,1.7,3.6,2.4,2.9]
}
行索引默认为0~n
列索引为字典的key值,可以通过参数修改。
frame = DataFrame(data,index=['11','22','33','44','55'],columns=['pop','year','state'])
通过读取文件创建
- header(默认第一行为columns,如果指定header=None,则表明没有索引行,第一行就是数据)
- index_col(默认作为索引的为第一列,可以设为index_col为-1,表明没有索引列)
- nrows(表明读取的行数)
- sep(分隔符,read_csv默认是逗号,而read_table默认是制表符\t)
参考文献(https://www.jianshu.com/p/8024ceef4fe2)
多标签分类
label_set = ['*','8','3']#多分类的类别字符
mlb = MultiLabelBinarizer(classes=label_set)
labelList=['8', '*', '*', '8']
dummY=mlb.fit_transform(labelList)
[[0 1 0]
[1 0 0]
[1 0 0]
[0 1 0]]