TFIDF练习
直接上代码吧:
"""
测试Demo
"""
import lightgbm as lgb
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.feature_extraction.text import CountVectorizer def use_lgb():
# 训练数据,500个样本,10个维度
train_data = np.random.rand(500, 10)
# 构建二分类数据
label = np.random.randint(2, size=500)
# 放入到dataset中
train = lgb.Dataset(train_data, label=label)
print(train) def use_tfidf():
sentence = ['没有 你 的 地方 都是 他乡', '没有 你 的 旅行 都是 流浪']
# 不去掉停用词
c = CountVectorizer(stop_words=None) # 拟合模型返回文本矩阵
count_word_tf = c.fit_transform(sentence) # print(count_word_tf.toarray())
# # 查看那些词,以字典的形式
# print(c.vocabulary_)
# # 得到特征
# print(c.get_feature_names()) ###############################
stopword = ['都是']
# 构建一个tfidf向量器,去除停用词
tfidf = TfidfVectorizer(stop_words=stopword) # 给出tfidf的权重,将tfidf矩阵抽取出来
weight = tfidf.fit_transform(sentence).toarray()
# 给出特征名称
word = tfidf.get_feature_names() print("有哪些词:")
print(word) print("\n词汇表以及他们的位置索引:")
for key, value in tfidf.vocabulary_.items():
print(key, value) print("\n词频矩阵:")
print(weight)
print(len(weight)) # 打印每类文本中的tfidf权重,第一个for变量所有样本,第二个for遍历某一类文档下的所有权重
for i in range(len(weight)):
print("这里输出的是第{}文本的词语tfidf权重".format(i))
for j in range(len(word)):
# 经过tfidf后,找出每篇文档相关的词,这些词就是精心挑选出来的。然后根据这些词到文档中去找到tfidf值
print(word[j], weight[i][j]) if __name__ == '__main__':
use_tfidf()
输出:
有哪些词:
['他乡', '地方', '旅行', '没有', '流浪'] 词汇表以及他们的位置索引:
他乡 0
旅行 2
流浪 4
地方 1
没有 3 词频矩阵:
[[0.6316672 0.6316672 0. 0.44943642 0. ]
[0. 0. 0.6316672 0.44943642 0.6316672 ]]
2
这里输出的是第0文本的词语tfidf权重
他乡 0.6316672017376245
地方 0.6316672017376245
旅行 0.0
没有 0.4494364165239821
流浪 0.0
这里输出的是第1文本的词语tfidf权重
他乡 0.0
地方 0.0
旅行 0.6316672017376245
没有 0.4494364165239821
流浪 0.6316672017376245
本文参考:https://blog.csdn.net/the_lastest/article/details/79093407
TFIDF练习的更多相关文章
- TF-IDF算法学习报告
TF-IDF是一种统计方法,这个算法在我们项目提取关键词的模块需要被用到,TF-IDF算法是用来估计 一个词汇对于一个文件集中一份文件的重要程度.从算法的定义中就可以看到,这个算法的有效实现是依靠 一 ...
- tf-idf知多少?
1.最完整的解释 TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度.字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反 ...
- TF-IDF提取行业关键词
1. TF-IDF简介 TF-IDF(Term Frequency/Inverse Document Frequency)是信息检索领域非常重要的搜索词重要性度量:用以衡量一个关键词\(w\)对于查询 ...
- Lucene TF-IDF 相关性算分公式(转)
Lucene在进行关键词查询的时候,默认用TF-IDF算法来计算关键词和文档的相关性,用这个数据排序 TF:词频,IDF:逆向文档频率,TF-IDF是一种统计方法,或者被称为向量空间模型,名字听起来很 ...
- TF-IDF
TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与文本挖掘的常用加权技术.TF-IDF是一种统计方法,用以评估一字词对于一个文件集或 ...
- TF-IDF 加权及其应用
TF-IDF 加权及其应用 TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索的常用加权技术.TF-IDF是一种统计方法,用以评估某个 ...
- TF-IDF算法
转自:http://www.cnblogs.com/eyeszjwang/articles/2330094.html TF-IDF(term frequency–inverse document fr ...
- TF-IDF 文本相似度分析
前阵子做了一些IT opreation analysis的research,从产线上取了一些J2EE server运行状态的数据(CPU,Menory...),打算通过训练JVM的数据来建立分类模型, ...
- 基于TF-IDF值的汉语语义消歧算法
RT,学校课题需要233,没了 话说,窝直接做个链接的集合好了,方便以后查找 特征值提取之 -- TF-IDF值的简单介绍 汉语语义消歧之 -- 句子相似度 汉语语义消歧之 -- 词义消歧简介 c++ ...
- Mahout源码分析之 -- 文档向量化TF-IDF
fesh个人实践,欢迎经验交流!Blog地址:http://www.cnblogs.com/fesh/p/3775429.html Mahout之SparseVectorsFromSequenceFi ...
随机推荐
- MVC上传(单文件)
后台代码: public ActionResult upload() { //获取文件对象 var file = Request.Files[0]; string suffix/*文件格式*/ = S ...
- tarcert
前言:今天在阅读“Web性能权威指南”这本书的时候,发现 tracert 这个命令挺有意思的,在分析网络性能瓶颈的时候也能使用的到,在此就小记一笔以备后用. 1:作用 tracert 是一个简单的网 ...
- c++ c++ 与 Java
1.c++ c++ 如果1个类的定义中包含另一个类,那么在stdafx.h中 被包含的类必须放在包含类的前面,不然编译器找不到被包含类,c++没有包的概念,所以包含头文件时要注意顺序,而java不存在 ...
- 【R】shiny界面
http://www.rstudio.com/shiny http://yanping.me/shiny-tutorial/#welcome
- SqlBulkCopy类进行大数据(10000万条以上)插入测试
好多天没写博客了,刚刚毕业一个多月,在IT的路上真是迷茫啊! 关于上一篇博客中提到的,在进行批量数据插入数据库的时候可以通过给存储过程传递一个类型为Table的参数进行相关操作,在这个过程中本人没有进 ...
- YARN应用程序开发和设计流程
从业务的角度看,一个应用需要分两部分进行开发,一个是接入YARN平台,实现3个协议,通过YARN实现对集群资源的访问和利用:另一个是业务功能的实现,这个与YARN本身没有太大关系.下面主要阐述如何将一 ...
- HTTP 请求过程
如下,我们在浏览器输入一个域名,按回车之后,便向该域名对应的服务器发送了一个请求:服务器接收到这个请求后进行处理和解析,然后返回响应的内容给浏览器,浏览器再对其进行解析然后呈现网页 我们可以通过 Ch ...
- 在联网时,两台linux服务器传输文件方法
登陆服务器root用户命令:su - root 传输文件命令:scp +需要传输linux系统文件+空格+目标linux服务器的用户名@服务器ip地址:+传输的文件路径:例:scp /mnt/work ...
- imx6ul开发板
Feescale飞思卡尔于发布全新的基于ARM Cortex-A7核心的低功耗处理器i.MX6UL,主要面向车载信息处理.家庭能源管理系统.工控领域.物联网网关等应用.具有可扩展性.高性能和低功耗特性 ...
- 《C++ Primer Plus》第12章 类和动态内存分配 学习笔记
本章介绍了定义和使用类的许多重要方面.其中的一些方面是非常微妙甚至很难理解的概念.如果其中的某些概念对于您来说过于复杂,也不用害怕——这些问题对于大多数C++的初学者来说都是很难的.通常,对于诸如复制 ...