机器学习之使用TF-IDF算法进行文本特征的提取

TF-IDF的主要思想

如果一个词或短语在某一篇文章中出现的概率很高,并且在其它文章中很少出现,则认为该词或短语具有很好的类别区分能力,适合用来分类

TF-IDF的作用

用以评估一个词语对于一个文件或者一个语料库中的其中一份文件的重要程度

TF-IDF公式

  • 词频(term frequency,简称TF),指的是某一个给定的词语在该文件中出现的频率;
  • 逆向文档频率(inverse document frequency,简称IDF)是一个词语普遍重要性的重要度量。某一特定词语idf由总文件数目除以包含该词语文件的数目,再将得到的商取以10为底数得到
TF-IDF=TF*IDF     #衡量一个词语的重要程度

Sklearn中API(如果不了解建议去了解一哈Skelearn,能直接计算TF-IDF)

sklearn.feature_extraction.text.TfidfVectorizer(stop_words=[],.......)
  • TfidfVectorizer.fit_transform(X)
    X表示传入的文本,返回值为sparse矩阵
  • TfidfVectorizer.inverse_transform(X)
    X表示array数组或者sparse矩阵,返回值为转换之前的数据格式
  • TfidfVectorizer.get_feature_names()
    返回值为单词列表

实例如下(直接全部粘贴到PyChram即可使用,注意导入相关依赖包,如果没有及时下载

# 针对中文分词
import jieba
from sklearn.feature_extraction.text import TfidfVectorizer


def cut_word(text):
    new_text = " ".join(list(jieba.cut(text)))
    print(new_text)
    return new_text
#tf-idf实列
def tfidf_demo():
    data = ["老沈是一名网约车司机,晚上是他最忙的时段。他经常在饭店门口等那些喝醉了酒的客人。",
            "老主顾把胖子塞进车后座,对老沈大声地说道:“先到长城花园,顺路顺路,先把李总送回家。”",
            "那姑娘报了一个地名,老主顾眼都不眨地说道:“顺路顺路,刚好先送你到家。”"]
    data_new = []
    for sent in data:
        data_new.append(cut_word(sent))
    # 1、生成一个转换器
    transfer = TfidfVectorizer(stop_words=[",","。",'"',":"])
    # 2、调用fit_transform
    data_finale = transfer.fit_transform(data_new)
    print("特征名字:\n", transfer.get_feature_names())
    print("data_new:\n", data_finale.toarray())
    return


if __name__ == '__main__':
    tfidf_demo()

相关实战项目Python文本相似度识别(附图形化界面)

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值