我试图使用Textacy来计算标准语料库中单个单词的TF-IDF分数,但是我对得到的结果有点不清楚。在
我希望有一个单独的浮点数来表示这个词在语料库中的出现频率。为什么我会收到一份名单共7个结果?在
“accler”实际上是一个法语单词,所以我们期望从英语语料库中得到0。在
word = 'acculer'
vectorizer = textacy.Vectorizer(tf_type='linear', apply_idf=True, idf_type='smooth')
tf_idf = vectorizer.fit_transform(word)
logger.info("tf_idf:")
logger.info(tfidf)
输出
^{pr2}$问题的第二部分是如何为文本学中的TF-IDF功能提供自己的语料库,特别是在另一种语言中的功能?在
编辑
如@Vishal所述,我使用以下行记录输出:
logger.info(vectorizer.vocabulary_terms)
提供的单词acculer
似乎已被拆分为字符。在
{'a': 0, 'c': 1, 'u': 5, 'l': 3, 'e': 2, 'r': 4}
(1)如何根据语料库(而不是每个字符)获取该单词的TF-IDF?在
(2)如何提供自己的语料库并将其作为param指向?在
(3)TF-IDF能否用于句子层面?这个句子中的术语相对于语料库的相对频率是多少。在
你可以用TF-IDF来查语料库。在
Output:包含每个单词的idf,并在输出中为其分配一个唯一的索引
^{pr2}$输出:打印每个词汇表单词的idf值
现在根据你的问题,假设你想找tf-idf,那么你可以得到:
参考文献: 1prepare-text
现在对文本进行同样的操作
输出
参考号:link
基本原理
在研究实际问题之前,让我们先弄清楚定义。在
假设我们的语料库包含3个文档(分别是d1、d2和d3):
术语频率(tf)
tf(单词的)定义为单词在文档中出现的次数。在
^{pr2}$tf是在文档级别为单词定义的。在
使用原始计数有一个问题:与较短的文档相比,较长文档中单词的
tf
值具有较高的值。这个问题可以通过将原始计数值除以文档长度(相应文档中的字数)来规范化来解决。这称为l1
规范化。文档d1
现在可以用tf vector
来表示,其中包含语料库中所有单词的所有tf
值。还有一种称为l2
的规范化方法,它使文档的tf向量的l2
范数等于1。在代码:tf
输出:
tf
矩阵中的行对应于文档(因此我们的语料库有3行),列对应于词汇表中的每个单词(词汇词典中显示的单词索引)反向文件频率(idf)
有些词传达的信息比其他词少。例如像,a,an,this这样的词是非常常见的,它们传达的信息非常少。国防军是衡量这个词重要性的尺度。我们认为出现在许多文档中的单词比出现在少数文档中的单词信息量少。在
对于我们的语料库来说
idf(apple, corpus) < idf(cat,corpus)
代码:idf
输出:
术语频率-反向文档频率(tf-idf):tf-idf是一个衡量词在语料库中文档中的重要性的指标。单词的tf和它的id加权得到单词的tf-idf度量。在
代码:tf idf
输出:
现在来回答问题:
如上所述,没有独立定义的
tf-idf
,单词的tf-idf
与语料库中的文档有关。在如上述样品所示。在
tf (raw counts): apply_idf=False, norm=None
tf (l1 normalized): apply_idf=False, norm='l1'
tf (l2 normalized): apply_idf=False, norm='l2'
tf-idf (standard): apply_idf=True, idf_type='standard'
是的,你可以,如果而且只有当你把每句话都当作一个单独的文件。在这种情况下,对应文档的
tf-idf
向量(整行)可以被视为文档的向量表示(在您的例子中是一个句子)。在对于我们的语料库(事实上每个文档包含一个句子),d1和d2的向量表示应该与向量d1和d3更接近。让我们检查余弦相似度,看看:
输出
如你所见,余弦相似性(d1,d2)=0.53,余弦相似性(d1,d3)=0.35,因此d1和d2确实比d1和d3更相似(1表示完全相似,0表示不相似-正交向量)。在
一旦你训练了你的
Vectorizer
,你就可以把训练过的对象保存到磁盘上以备以后使用。在结论
单词的}相对于语料库位于文档级别。它们非常适合于文档(或者当文档由一句话)。如果您对单词的向量表示感兴趣,那么可以探索单词嵌入,比如(word2vec、fasttext、glow等)。在
tf
位于文档级别,idf
位于语料库级别,单词的{相关问题 更多 >
编程相关推荐