标签: tf-idf

将文档添加到已评分的 TF-IDF 集合中?

我有大量已经计算了 TF-IDF 的文档。我正准备向集合中添加更多文档,我想知道是否有一种方法可以在不重新处理整个数据库的情况下将 TF-IDF 分数添加到新文档中?

nlp machine-learning similarity tf-idf

1
推荐指数
1
解决办法
1038
查看次数

以下几个文件的IDF如何不同?

我正在使用LETOR来建立一个信息检索系统.他们使用TF和IDF.我确信TF依赖于查询.但以色列国防军应该这样做,但是:

"请注意,IDF与文档无关,因此查询下的所有文档都具有相同的IDF值."

但这没有意义,因为IDF是功能列表的一部分.如何计算每份文件的IDF?

information-retrieval tf-idf

1
推荐指数
1
解决办法
572
查看次数

优势页面排名超过TF-IDF

任何人都可以指导我阅读有关PageRank和Term Frequency - Inverse Document Frequency的比较的任何学术论文.我一直在寻找,我只是找到两者结合的论文.

我需要找到Page Rank相对于TF-IDF的优势

pagerank tf-idf

1
推荐指数
1
解决办法
1473
查看次数

如何提高朴素贝叶斯分类器的准确性?

我正在使用朴素贝叶斯分类器.遵循本教程.对于训练好的数据,我使用308个问题并将它们分类为26个手动标记的类别.在发送数据之前,我正在执行NLP.在NLP我正在执行(标点符号删除,标记化,删除词和词干)这个过滤后的数据,用作mahout的输入.使用mahout NBC我训练这些数据并获得模型文件.现在,当我跑

mahout testnb 
Run Code Online (Sandbox Code Playgroud)

命令我得到正确的分类实例为96%.

现在,对于我的测试数据,我使用了100个问题,我手动标记了这些问题.当我使用经过训练的模型和测试数据时,我得到的正确分类实例为1%.这让我感到沮丧.

任何人都可以告诉我我做错了什么或建议我一些方法来提高NBC的表现.

另外,理想情况下,我应该使用多少问题数据来训练和测试?

performance hadoop tf-idf mahout

1
推荐指数
1
解决办法
1717
查看次数

使用sklearn查找文档中特定单词的tf-idf分数

我有一些代码在文档集合上运行基本的TF-IDF矢量化器,返回DXF的稀疏矩阵,其中D是文档数,F是术语数.没问题.

但是如何在文档中找到特定术语的TF-IDF分数?即在术语(在他们的文本表示中)和它们在结果稀疏矩阵中的位置之间是否存在某种字典?

python tf-idf scikit-learn

1
推荐指数
2
解决办法
6594
查看次数

TfidfVectorizer stop_words参数不起作用?

我有一段简单的代码,我正在尝试将其用作训练模型的基础.我试图从矢量化器中删除一个停用词列表,但似乎它不起作用.

或者也许是我,我并没有把它传递给它.

下面是我的代码,如果你安装了sklearn,你可以直接复制粘贴并运行它.

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import GaussianNB

l_stop_words = ['is', 'me', 'i']
print type(l_stop_words)

tfvect = TfidfVectorizer(analyzer='word', token_pattern='[a-zA-Z.0-9+#-/]+[^.]', stop_words=l_stop_words)
tfvect2 = TfidfVectorizer(analyzer='word', token_pattern='[a-zA-Z.0-9+#-/]+[^.]')

corpus = [
     'I know SQL and Java.',
     'I like C# and NoSQL. SQL is fun also.',
     'Teach me ASP.NET and Javascript.',
     'C++ sounds cool and PL/SQL is amazing.']

X = tfvect.fit_transform(corpus)
Y = ['java developer', 'C# developer', 'web developer', 'C++ developer']

X2 = tfvect2.fit_transform(corpus)

print len(tfvect.get_feature_names()), tfvect.get_feature_names()
print len(tfvect2.get_feature_names()), tfvect2.get_feature_names()
Run Code Online (Sandbox Code Playgroud)

当两个特征向量相同时(下面是我的输出),您将看到.

<type …
Run Code Online (Sandbox Code Playgroud)

python tf-idf scikit-learn

1
推荐指数
1
解决办法
1568
查看次数

TfidfVectorizer:ValueError:不是内置的停止列表:俄语

我试着用俄​​语停止词来应用TfidfVectorizer

Tfidf = sklearn.feature_extraction.text.TfidfVectorizer(stop_words='russian' )
Z = Tfidf.fit_transform(X)
Run Code Online (Sandbox Code Playgroud)

我明白了

ValueError: not a built-in stop list: russian
Run Code Online (Sandbox Code Playgroud)

当我使用英语停止词是正确的

Tfidf = sklearn.feature_extraction.text.TfidfVectorizer(stop_words='english' )
Z = Tfidf.fit_transform(X)
Run Code Online (Sandbox Code Playgroud)

怎么改进呢?完全追溯

<ipython-input-118-e787bf15d612> in <module>()
      1 Tfidf = sklearn.feature_extraction.text.TfidfVectorizer(stop_words='russian' )
----> 2 Z = Tfidf.fit_transform(X)

C:\Program Files\Anaconda3\lib\site-packages\sklearn\feature_extraction\text.py in fit_transform(self, raw_documents, y)
   1303             Tf-idf-weighted document-term matrix.
   1304         """
-> 1305         X = super(TfidfVectorizer, self).fit_transform(raw_documents)
   1306         self._tfidf.fit(X)
   1307         # X is already a transformed view of raw_documents so

C:\Program Files\Anaconda3\lib\site-packages\sklearn\feature_extraction\text.py in fit_transform(self, raw_documents, y)
    815 
    816         vocabulary, X = …
Run Code Online (Sandbox Code Playgroud)

python tf-idf

1
推荐指数
1
解决办法
3043
查看次数

使用Apache Spark在TFIDF上的余弦相似度

我正在尝试使用Apache Spark在TFIDF上计算余弦相似度矩阵。这是我的代码:

def cosSim(input: RDD[Seq[String]]) = {
  val hashingTF = new HashingTF()
  val tf = hashingTF.transform(input)
  tf.cache()
  val idf = new IDF().fit(tf)
  val tfidf = idf.transform(tf)
  val mat = new RowMatrix(tfidf)
  val sim = mat.columnSimilarities
  sim
}
Run Code Online (Sandbox Code Playgroud)

我在输入中大约有3000行,但是如果我执行sim.numRows()或sim.numCols(),我会看到1048576而不是3K,据我了解,这是因为val tfidf和val mat的大小均为3K * 1048576其中1048576是tf功能的数量。也许要解决这个问题,我必须移调垫子,但是我不知道该怎么做。

scala tf-idf cosine-similarity apache-spark apache-spark-mllib

1
推荐指数
1
解决办法
2633
查看次数

Python Tf IDF算法

我想在一组文档中找到最相关的词。

我想对3个文档调用Tf Idf算法,并返回包含每个单词及其频率的csv文件。

在那之后,我将只使用数量较大的那些,然后使用它们。

我发现此实现可以实现我所需的https://github.com/mccurdyc/tf-idf/

我用subprocess图书馆叫那个罐子。但是该代码存在一个巨大的问题:它在分析单词时犯了很多错误。它混入了一些单词,并且与'and -(我认为)存在问题。我正在3本书(哈利·波特)的文本上使用它,例如,我正在获取诸如此类的单词,hermiones, hermionell, riddlehermione, thinghermione而不仅仅是hermione在csv文件中。

我做错什么了吗?您能给我Tf idf算法的有效实现吗?有没有这样做的python库?

python words tf-idf word-embedding

1
推荐指数
1
解决办法
5019
查看次数

scikit-学习TfidfVectorizer忽略某些单词

我正在对来自葡萄牙历史的维基百科页面上的句子尝试TfidfVectorizer。但是我注意到该TfidfVec.fit_transform方法忽略了某些单词。这是我尝试过的句子:

sentence = "The oldest human fossil is the skull discovered in the Cave of Aroeira in Almonda."

TfidfVec = TfidfVectorizer()
tfidf = TfidfVec.fit_transform([sentence])

cols = [words[idx] for idx in tfidf.indices]
matrix = tfidf.todense()
pd.DataFrame(matrix,columns = cols,index=["Tf-Idf"])
Run Code Online (Sandbox Code Playgroud)

数据帧的输出:

在此处输入图片说明

本质上,它忽略了“ Aroeira”和“ Almonda”两个词。

但是我不想让它忽略那些话,那我该怎么办?我在文档中找不到他们谈论此内容的任何地方。

另一个问题是为什么“ the”一词会重复出现?该算法应该只考虑一个“ the”并计算其tf-idf吗?

python nlp tf-idf scikit-learn tfidfvectorizer

1
推荐指数
1
解决办法
407
查看次数