tfidfVectorizer个人理解

导入方法:from sklearn.feature_extraction.text import TfidfVectorizer
功能:将原生文档转化成tfidf矩阵
英文文档有天然的空格分隔符,但是中文没有,在使用tfidfvectorizer时,如果是中文,注意要先分词(因为tfidf的计算原理是基于词语的),如果中文不事先分词的话,tfidfvectorizer会把每个句子作为一个特征。
tfidfVectorizer个人理解_第1张图片

tfidfVectorizer个人理解_第2张图片
中文未分词的时候,可以看到一句话就是一个特征。

tfidfvectorizer与countvectorizer的区别:countervectorizer中将tfidf值换成每个文本中词语出现的次数即可,在调用两者的时候,参数稍微有点不同。
tfidfvectorizer()的参数 —spyder中ctrl+鼠标点击函数名 可查看函数原型。部分参数的含义如下:

  1. max_df、min_df设置考虑的词频范围;

  2. max_features设置考虑的最大词语数(按tfidf值的高低选top
    n个),可用来限制转化后的文档的长度;

  3. use_idf 是否是否逆文档频率,为flase时统计的仅是tf值;

  4. smooth_idf 默认是True, 计算tfidf值时,为了防止除数是0,会假设一个文档里面包含了所有词语;

  5. sublinear_tf 用1+log(tf) 代替tf;

  6. ngram_range (min,max) 词语组成长度范围,默认是(1,1) 比如一个文档是[‘i love nlp’] ngram_range=(1,3)时,得到的词语特征是{“i”,“love”,“nlp”,“i love”,“love nlp” ,“ilove nlp”};

  7. token_pattern 正则匹配模式,默认"(?u)\b\w\w+\b" ?u表示对大小写不敏感,\b可理解为空格, \w表示匹配一个字母或数字或下划线或汉字,\w+ 表示匹配一个或多个字母或者数字或者下划线或汉字。默认模式会忽略单个字符,比如文本中有“花儿 真 漂亮 ” “真”这单个词匹配不到的,可根据自己的需求来调整,常见的匹配模式是“(?u)\b\w+\b” 可以匹配到单个字符。

你可能感兴趣的:(自然语言处理,自然语言处理)