wuxiaolananhui的个人博客分享 http://blog.sciencenet.cn/u/wuxiaolananhui

博文

sklearn学习笔记

已有 3948 次阅读 2016-4-26 16:50 |系统分类:科研笔记| libsvm, 文本分类, sklearn

libsvm:

>>> y, x = svm_read_problem('label_Tfidf.txt')
>>> m = svm_train(y[:800], x[:800], '-c 5')
>>> p_label, p_acc, p_val = svm_predict(y[800:], x[800:], m)
Accuracy = 9.613% (929/9664) (classification)
>>> y, x = svm_read_problem('label_Tfidf.txt')
>>> m = svm_train(y[:8000], x[:8000], '-c 5')
>>> p_label, p_acc, p_val = svm_predict(y[8001:], x[8001:], m)
Accuracy = 0% (0/2463) (classification)

 

以下转载自http://www.wtoutiao.com/p/12dmN1i.html

  1. import time

  2. import re

  3. import os

  4. import sys

  5. import codecs

  6. import shutil

  7. from sklearn import feature_extraction

  8. from sklearn.feature_extraction.text import TfidfTransformer

  9. from sklearn.feature_extraction.text import CountVectorizer

  10.  

  11. '''''

  12. sklearn里面的TF-IDF主要用到了两个函数:CountVectorizer()和TfidfTransformer()。

  13. CountVectorizer是通过fit_transform函数将文本中的词语转换为词频矩阵。

  14. 矩阵元素weight[i][j] 表示j词在第i个文本下的词频,即各个词语出现的次数。

  15. 通过get_feature_names()可看到所有文本的关键字,通过toarray()可看到词频矩阵的结果。

  16. TfidfTransformer也有个fit_transform函数,它的作用是计算tf-idf值。

  17. '''

  18.  

  19. if __name__ == "__main__":

  20. corpus = [] #文档预料 空格连接

  21.  

  22. #读取预料 一行预料为一个文档

  23. for line in open('BaiduSpider_Result.txt', 'r').readlines():

  24. print line

  25. corpus.append(line.strip())

  26. #print corpus

  27. time.sleep(5)

  28.  

  29. #将文本中的词语转换为词频矩阵 矩阵元素a[i][j] 表示j词在i类文本下的词频

  30. vectorizer = CountVectorizer()

  31.  

  32. #该类会统计每个词语的tf-idf权值

  33. transformer = TfidfTransformer()

  34.  

  35. #第一个fit_transform是计算tf-idf 第二个fit_transform是将文本转为词频矩阵

  36. tfidf = transformer.fit_transform(vectorizer.fit_transform(corpus))

  37.  

  38. #获取词袋模型中的所有词语

  39. word = vectorizer.get_feature_names()

  40.  

  41. #将tf-idf矩阵抽取出来,元素w[i][j]表示j词在i类文本中的tf-idf权重

  42. weight = tfidf.toarray()

  43.  

  44. resName = "BaiduTfidf_Result.txt"

  45. result = codecs.open(resName, 'w', 'utf-8')

  46. for j in range(len(word)):

  47. result.write(word[j] + ' ')

  48. result.write('rnrn')

  49.  

  50. #打印每类文本的tf-idf词语权重,第一个for遍历所有文本,第二个for便利某一类文本下的词语权重

  51. for i in range(len(weight)):

  52. print u"-------这里输出第",i,u"类文本的词语tf-idf权重------"

  53. for j in range(len(word)):

  54. result.write(str(weight[i][j]) + ' ')

  55. result.write('rnrn')

  56.  

  57. result.close()

 



http://blog.sciencenet.cn/blog-668239-972924.html

上一篇:请教: 自然科学基金委分类号与哪个分类法体系最为接近?
下一篇:可加工的云图

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2021-4-19 22:39

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部