tf-idf相关内容

如何使TF-IDF矩阵密集?

我正在使用 TfidfVectorizer 将原始文档的集合转换为TF-IDF功能矩阵,然后我计划将其输入到k-means算法(我将实现)中.在该算法中,我将必须计算质心(商品类别)和数据点(商品)之间的距离.我将使用欧几里得距离,因此在我的情况下,我需要这两个实体具有相同的维数max_features.这是我所拥有的: tfidf = TfidfVectorizer(max_feature ..
发布时间:2020-08-06 02:07:42 Python

余弦相似度和tf-idf

我对以下有关 TF-IDF 和余弦相似度的评论感到困惑. 我在余弦相似度上同时阅读了两者,然后在Wiki上阅读,我发现这句话:“在信息检索的情况下,两个文档的余弦相似度范围从0到1,因为术语频率(tf-idf权重) )不能为负.两个项频率向量之间的夹角不能大于90." 现在我想知道....他们不是2件不同的东西吗? tf-idf是否已经在余弦相似度内?如果是,那到底是什么-我只能 ..
发布时间:2020-07-31 18:48:47 其他开发

将自定义词汇用于TfidfVectorizer scikit-learn的问题

我正在尝试使用scikit-learn中的自定义词汇表来执行某些聚类任务,并且得到的结果很奇怪. 当不使用自定义词汇表时,程序运行正常,我对集群的创建感到满意.但是,我已经确定了一组要用作自定义词汇的单词(大约24,000个). 这些单词存储在SQL Server表中.到目前为止,我已经尝试了2种方法,但最终得到的结果是相同的.第一个是创建列表,第二个是创建字典.创建字典的代码如下: ..
发布时间:2020-07-14 00:41:15 Python

TypeError:必须为str,而不是list

问题是输出结果未保存在csv文件中. 我正在使用此代码对正负两个单词进行加权处理.我想保存在csv文件中.首先,读取csv文件,应用tf-idf并在shell上输出显示,但是将结果写入csv时错误显示文件. for i, blob in enumerate(bloblist): print("Top words in document {}".format(i + 1)) s ..
发布时间:2020-07-11 20:45:59 Python

如何在给定语料的情况下构建TFIDF Vectorizer,并使用Sklearn比较其结果?

Sklearn在其TFIDF矢量化器版本的实现中做了一些调整,因此要复制确切的结果,您需要在自定义的tfidf矢量化器实现中添加以下内容: Sklearn的词汇表是根据idf按字母顺序排列的 idf的Sklearn公式与标准教科书公式不同.在这里,常数"1"被添加到idf的分子和分母,就好像看到一个额外的文档中,集合中的每个术语恰好包含一次一样,这防止了零除. IDF(t)=1+(loge( ..
发布时间:2020-07-11 00:39:06 Python

如何从SKLearn的TfidfVectorizer手动计算TF-IDF分数

我一直在运行SKLearn的TF-IDF Vectorizer,但无法手动重新创建值(以帮助了解正在发生的事情). 要添加一些上下文,我有一些文档列表,这些文档是我从中提取命名实体的(在我的实际数据中,这些文档的大小为5克,但在此我将其限制为双字母组).我只想知道这些值的TF-IDF分数,并认为通过vocabulary参数传递这些术语会做到这一点. 以下是一些虚拟数据,类似于我正在使用 ..
发布时间:2020-07-11 00:39:01 Python

为什么TF-IDF的值与IDF_不同?

为什么矢量化语料库的值与通过idf_属性获得的值不同? idf_属性是否不应该以与矢量化语料库中出现的相同方式返回文档反向频率(IDF)? from sklearn.feature_extraction.text import TfidfVectorizer corpus = ["This is very strange", "This is very nice"] ve ..
发布时间:2020-07-11 00:34:35 Python

长度不同的tf-idf文件

我在网上搜索过有关在文档长度差异很大的情况下标准化tf等级的信息 (例如,文档长度从500字到2500字不等) 我发现的唯一规范化方法是将术语“频率"除以文档的长度,从而导致文档的长度没有任何意义. 这种方法对于标准化tf确实是一个非常糟糕的方法.如果有的话,这会导致每个文档的tf等级有很大的偏差(除非所有文档都是由几乎相同的字典构成的,而使用tf-idf则不是这种情况) 例如,让 ..
发布时间:2020-07-11 00:05:03 Python

N-Gram,tf-idf和余弦相似度在Python中的简单实现

我需要比较存储在数据库中的文档,并得出0到1之间的相似度分数. 我需要使用的方法必须非常简单.实现n-gram的原始版本(可以定义要使用的克数)以及tf-idf和余弦相似度的简单实现. 是否有任何程序可以做到这一点?还是应该从头开始编写? 解决方案 签出NLTK软件包: http://www.nltk .org 它具有您所需的一切 对于余弦相似度: def cos ..
发布时间:2020-06-12 19:00:46 Python

如何使用朴素贝叶斯实现TF_IDF功能加权

我正在尝试实施朴素的贝叶斯分类器进行情感分析.我计划使用TF-IDF加权度量.我现在有点卡住了. NB通常使用单词(特征)频率来找到最大似然.那么如何在朴素贝叶斯中引入TF-IDF加权度量? 解决方案 您将TF-IDF权重用作统计模型中的特征/预测变量.我建议使用gensim [1]或scikit-learn [2]来计算权重,然后将其传递给您的朴素贝叶斯拟合过程. 可能还会对sci ..

PostgreSQL:查找最接近给定句子的句子

我有一张带有句子标题的图像表。给定一个新句子,我想根据新句子与存储的旧句子的接近程度来找到最匹配它的图像。 我知道我可以使用 @@ 运算符,带有 to_tsquery ,但 tsquery 接受特定单词 一个问题是我不知道如何将给定的句子转换为有意义的查询。句子中可能带有标点符号和数字。 但是,我也觉得我需要某种余弦相似性,但我不知道该如何得出。的PostgresQL。我正在使用 ..
发布时间:2020-05-30 00:10:10 其他开发

使用sklearn为两个不同的列计算单独的tfidf分数

我正在尝试计算一组查询与一组每个查询的结果之间的相似度.我想使用tfidf分数和余弦相似度进行此操作.我遇到的问题是我无法弄清楚如何使用两列(在pandas数据框中)生成tfidf矩阵.我已经将两列连接起来,并且工作正常,但是使用起来很尴尬,因为它需要跟踪哪个查询属于哪个结果.我要如何一次计算两列的tfidf矩阵?我正在使用熊猫和sklearn. 以下是相关代码: tf = Tfidf ..
发布时间:2020-05-24 01:52:32 Python

Python:计算Pandas中两列之间的tf-idf余弦相似度时出现MemoryError

我正在尝试计算Pandas数据帧中两列之间的tf-idf向量余弦相似度.一列包含搜索查询,另一列包含产品标题.余弦相似度值旨在成为搜索引擎/排名机器学习算法的“功能". 我正在iPython笔记本中进行此操作,很不幸遇到了MemoryErrors,并且不确定为什么要经过几个小时的挖掘. 我的设置: 联想E560笔记本电脑 Core i7-6500U @ 2.50 GHz 16 ..
发布时间:2020-05-24 01:49:57 Python

处理大量独特的文字以进行文本处理/tf-idf等

我正在使用scikit进行一些文本处理,例如tfidf.文件名数量可以正常处理(约40k).但是就唯一单词的数量而言,我无法处理数组/矩阵,无论是要获取打印的唯一单词数量的大小,还是将numpy数组转储到文件中(使用savetxt) .下面是回溯.如果我可以获得tfidf的最高值,因为我不需要每个文档的每个单词.或者,我可以从计算中排除其他单词(不是停用词,而是可以添加的文本文件中单独的一组单词将 ..
发布时间:2020-05-18 23:14:22 Python