当前位置:   article > 正文

python gensim 中 TF-IDF 的计算方法_tfidf.model计算方法

tfidf.model计算方法

step 1.  去掉所有文本中都会出现的词

eg. original_texts = 

[['这是', '一个', '文本'], ['这是', '第二个', '文本'], ['这是', '又一个', '文本'], ['这是', '最后', '一个', '文本']]

去掉所有文本中均出现的词后的文本:

texts_filter = [[ '一个'], ['第二个'], [ '又一个'], [ '最后', '一个']]

 

step 2. 计算文本中剩余单词的tf-idf值,默认得计算公式:

tf_idf = word_freq * log(全部文本数 / 包含该词的文本数)

这里不需要做平滑化的处理, 因为已经把全部文本中都会出现的词拿掉了

  1. from gensim.models.tfidfmodel import TfidfModel
  2. from gensim import corpora
  3. texts = [['这是', '一个', '文本'], ['这是', '第二个', '文本'], ['这是', '又一个', '文本'], ['这是', '最后', '一个', '文本']]
  4. dictionary = corpora.Dictionary(texts)
  5. corpus = [dictionary.doc2bow(text) for text in texts]
  6. tf_idf_model = TfidfModel(corpus, normalize=False)
  7. word_tf_tdf = list(tf_idf_model[corpus])
  8. print('词典:', dictionary.token2id)
  9. print('词频:', corpus)
  10. print('词的tf-idf值:', word_tf_tdf)
  11. # result
  12. 词典: {'一个': 0, '文本': 1, '这是': 2, '第二个': 3, '又一个': 4, '最后': 5}
  13. 词频: [[(0, 1), (1, 1), (2, 1)], [(1, 1), (2, 1), (3, 1)], [(1, 1), (2, 1), (4, 1)], [(0, 1), (1, 1), (2, 1), (5, 1)]]
  14. 词的tf-idf值: [[(0, 1.0)], [(3, 2.0)], [(4, 2.0)], [(0, 1.0), (5, 2.0)]]

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/354426
推荐阅读
相关标签
  

闽ICP备14008679号