精华内容
下载资源
问答
  • python计算tfidf sklearn计算
    2020-12-23 09:41:22

    利用python 计算文档的tfidf,步骤大概如下:

    读入文档,对文档进行分词,每一段为一个字符串,分词用空格隔开,读入文档是一个长度为该文档段数的列表。

    利用vectorizer生成词频矩阵X , 再利用tfidftransformer 生成tfidf矩阵。

    代码如下:

    import jieba
    import numpy as np
    from sklearn import feature_extraction
    from sklearn.feature_extraction.text import TfidfTransformer
    from sklearn.feature_extraction.text import CountVectorizer
    
    
    text = """
    由张一山与唐艺昕主演的新版《鹿鼎记》备受争议,魔改的剧情和夸张的演技让人无法直视。作为主演的张一山承受了大部分观众的炮火,受尽无数吐槽。而在剧中扮演韦小宝老婆之一苏荃的朱珠却在采访中直面差评、硬刚网友,为张一山洗白。
    尽管大家已经做好了翻拍不如原版的准备,然而还是没有想到这一版本《鹿鼎记》会如此不尽人意,开播前有多受网友期待,开播后就让人感到有多失望。
    张一山版《鹿鼎记》在经历了剧情魔改、演员演技浮夸这一系列重创后,最终评分惨不忍睹。
    原以为有“戏骨”张一山坐镇扛剧,这部剧再差也不会差到哪里去,谁曾想整部剧最大的槽点就是张一山本人。
    过于浮夸的演技,油腻做作的肢体语言,被网友称为“猴式演技”,还有网友无情吐槽张一山“像被鞭子抽了三年的心酸小瘦猴在努力假装快乐活泼”。
    而朱珠在剧中扮演的则是韦小宝的御姐老婆苏荃,性格大气沉稳、临危不惧。朱珠所饰演的苏荃其实也并没有让人眼前一亮,演技总体来说还是有些流于表面,没有让整部剧口碑力挽狂澜。
    或许是戏份不多的原因,朱珠在这部戏中并没有被过多讨论,网友的炮火主要还是集中在主演张一山身上。不过朱珠参演的另外一部剧《大秦赋》也同样备受争议,并且戏份过多的朱珠还受到不少吐槽。
    《大秦赋》这部剧算是高开低走的典型,集结了张鲁一、段奕宏、邬君梅等演技派的历史大剧,是网友们相当期待的一部剧,朱珠在剧中扮演的是一代美人赵姬。
    作为秦始皇嬴政的生母,赵姬戏份过于拖沓,与嫪毐的情爱纠葛缠绵不断,被网友吐槽将《大秦赋》演成了《大情妇》或者是《嫪毐传》。
    赵姬这个角色若是演好了定能圈大波粉丝,不过朱珠却将其演绎成了只会傻笑的“傻白甜”,美则美矣,然而没有了灵魂。
    这边朱珠自己已经受到吐槽不断,受访时还是为旧搭档张一山发声,与给出差评的观众正面刚。
    朱珠表示张一山虽然看起来古灵精怪,其实是非常成熟并且大男人的一个人,心里也是非常有数。
    """
    
    word_list = text.split("\n")
    word_list
    new_word_list = [i for i in word_list if i != ""]
    new_word_list
    
    corpus = [" ".join(jieba.cut(w)) for w in new_word_list]
    corpus
    
    # 必须转成 英文的文本格式,就是 一段话,是一个corpus的单元,但是这一段话必须是 字符串, 用空格分开。
    
    vectorizer = CountVectorizer()
    X = vectorizer.fit_transform(corpus)
    word = vectorizer.get_feature_names()
    word
    freq = X.toarray()
    freq
    
    transformer = TfidfTransformer()
    tfidf = transformer.fit_transform(X)
    
    tfidf.toarray()

    更多相关内容
  • #Testing tfidf using nltk test.py:让我们暂时移动nltk的TF-IDF。 test2.py:尝试从合适的示例文本中计算 TF-IDF。 (好像效果不太好) #手动实现tf-idf tf-idf.py:从文件输入到TF-IDF计算的一系列流程
  • transformer=TfidfTransformer()#该类会统计每个词语的tf-idf权值 tfidf=transformer.fit_transform(vectorizer.fit_transform(corpus))#第一个fit_transform是计算tfidf,第二个是将文本转化为词频矩阵 word=...
    import jieba.analyse
    sentence='故今日之责任,不在他人,全在我少年。少年智,则国智。少年富,则国富。少年强,则国强。少年独立,则国独立。少年自由,则国自由。少年进步,则国进步。少年胜于欧洲,则国胜于欧洲。少年雄于地球,则国雄于地球。红日初升,其道大光。河出汱流,一泻汪洋。潜龙腾潜龙腾渊,鳞爪飞扬。如虎啸谷,百兽震惶。鹰隼试翼,风尘吹张。奇花初胎,矞矞皇皇。干将发硎,有作其芒。天戴其苍,地履其黄。纵有千古,横有八荒。前途似海,来日方长。美在我少年中国,与天不老。壮哉我中国少年,与国无疆!日本人之称我中国也,一则曰老大帝国,再则曰老大帝国。是语也,盖袭译欧西人之言也。呜呼!我中国其果老大矣乎?梁启超曰:恶,是何言!是何言!吾心目中有一少年中国在'
    
    #基于 TF-IDF提取关键字
    keywords=jieba.analyse.extract_tags(sentence,topK=20,withWeight=True,allowPOS=('n','nr','ns'))
    #print(type(keywords))
    for item in keywords:
        print(item[0],item[1])
    

    在这里插入图片描述

    # 基于TextRank算法的关键词抽取
    keywords1=jieba.analyse.textrank(sentence, topK=20, withWeight=True, allowPOS=('ns','n','vn','v'))
    for item in keywords1:
        print(item[0],item[1])
    

    在这里插入图片描述

    #词性标注
    import jieba.posseg as pseg
    words=pseg.cut('她是一个鬼精灵')
    for word,flag in words:
        print('%s %s'%(word,flag))
    

    在这里插入图片描述

    #利用jieba库统计三国演义中任务的出场次数
    import jieba
    txt=open('D:\\资料\\词云构建\\zihaowordcloud-master\\code\\三国演义.txt','r',encoding='utf-8').read()#使用精确模式对文本进行分词
    words=jieba.lcut(txt)#通过键值对的形式存储词语及其出现的次数
    
    
    counts={}
    for word in words:
        if len(word) == 1:#单个词不计算在内
            continue
        else:
            counts[word]=counts.get(word,0)+1#遍历所有词语,每出现一次其对应值加1
    
    items=list(counts.items())#将键值对转化为列表
    items.sort(key=lambda x:x[1],reverse=True)#根据词语出现的次数进行从大到小的排序
    
    for i in range(15):
        word,count=items[i]
        print('{0:<5}{1:<5}'.format(word,count))
    

    在这里插入图片描述

    import jieba
    import jieba.posseg as pseg
    import os
    import sys
    from sklearn.feature_extraction.text import TfidfTransformer
    from sklearn.feature_extraction.text import CountVectorizer
    
    if __name__=='__main__':
        corpus=["我 来到 北京 ",#第一类文本切词后的结果,词之间以空格隔开  
                "他 来到 了 上海",#第二类文本的切词结果  
                "他  毕业 于 北京大学",#第三类文本的切词结果  
                "我 爱 北京 天安门"]#第四类文本的切词结果
        vectorizer=CountVectorizer()#该类会将文本中的词语转化为词频矩阵,矩阵元素a[i][j]表示j词在i类文本下的词频
        transformer=TfidfTransformer()#该类会统计每个词语的tf-idf权值
        tfidf=transformer.fit_transform(vectorizer.fit_transform(corpus))#第一个fit_transform是计算tfidf,第二个是将文本转化为词频矩阵
        word=vectorizer.get_feature_names()#获取词袋模型中的所有词语
        weight=tfidf.toarray()#将tfidf矩阵抽取出来,元素a[i][j]表示j词在i类文本下的tfodf权重
        for i in range(len(weight)):#打印每类文本的tfidf词语权重,第一个for遍历所有文本,第二个遍历某一类文本下词语的权重
            print('-----这里输出第',i,u'类文本的词语tfidf权重--------')
            for j in range(len(word)):
                print(word[i],weight[i][j])
    
    

    在这里插入图片描述

    展开全文
  • Sklearn库计算TFIDF

    2021-09-16 16:48:54
    Sklearn库计算TFIDF 贴代码 from sklearn.feature_extraction.text import CountVectorizer,TfidfTransformer # 定义函数 def TF_IDF(corpus): vectorizer=CountVectorizer()#该类会将文本中的词语转换为词频矩阵...

    Sklearn库计算TFIDF

    • 贴代码
    from sklearn.feature_extraction.text import CountVectorizer,TfidfTransformer
    # 定义函数
    def TF_IDF(corpus):
        vectorizer=CountVectorizer()#该类会将文本中的词语转换为词频矩阵
        transformer=TfidfTransformer()#该类会统计每个词语的tf-idf权值
        x = vectorizer.fit_transform(corpus)
        tfidf=transformer.fit_transform(vectorizer.fit_transform(corpus))#第一个fit_transform是计算tf-idf,第二个fit_transform是将文本转为词频矩阵
        word=vectorizer.get_feature_names()#获取词袋模型中的所有词语
        word_location = vectorizer.vocabulary_  # 词的位置
        weight=tfidf.toarray()#tf-idf权重矩阵
        return weight,word_location,x.toarray()
    
    # 调用函数
    # 这里做分词,使用空格隔开
    corpus = [
                '我 来到 北京 清华大学',
                '他 来到 了 中国',
                '小明 硕士 毕业 与 中国 科学院',
                '我 爱 北京 天安门'
               ]
    weight,word_location,tf = TF_IDF(corpus)
    print(weight)
    print(word_location)
    print(tf)
    
    展开全文
  • python计算tfidf

    2020-12-20 08:13:34
    本例来自mining social webfrom math import log# XXX: Enter in a query term from the corpus variableQUERY_TERMS = ['mr.', 'green']def tf(term, doc, normalize=True):doc = doc.lower().split()if normalize:...

    本例来自mining social web

    from math import log

    # XXX: Enter in a query term from the corpus variable

    QUERY_TERMS = ['mr.', 'green']

    def tf(term, doc, normalize=True):

    doc = doc.lower().split()

    if normalize:

    return doc.count(term.lower()) / float(len(doc))

    else:

    return doc.count(term.lower()) / 1.0

    def idf(term, corpus):

    num_texts_with_term = len([True for text in corpus if term.lower()

    in text.lower().split()])

    # tf-idf calc involves multiplying against a tf value less than 0, so it's

    # necessary to return a value greater than 1 for consistent scoring.

    # (Multiplying two values less than 1 returns a value less than each of

    # them.)

    try:

    return 1.0 + log(float(len(corpus)) / num_texts_with_term)

    except ZeroDivisionError:

    return 1.0

    def tf_idf(term, doc, corpus):

    return tf(term, doc) * idf(term, corpus)

    corpus = \

    {'a': 'Mr. Green killed Colonel Mustard in the study with the candlestick. \

    Mr. Green is not a very nice fellow.',

    'b': 'Professor Plum has a green plant in his study.',

    'c': "Miss Scarlett watered Professor Plum's green plant while he was away \

    from his office last week."}

    for (k, v) in sorted(corpus.items()):

    print k, ':', v

    print

    # Score queries by calculating cumulative tf_idf score for each term in query

    query_scores = {'a': 0, 'b': 0, 'c': 0}

    for term in [t.lower() for t in QUERY_TERMS]:

    for doc in sorted(corpus):

    print 'TF(%s): %s' % (doc, term), tf(term, corpus[doc])

    print 'IDF: %s' % (term, ), idf(term, corpus.values())

    print

    for doc in sorted(corpus):

    score = tf_idf(term, corpus[doc], corpus.values())

    print 'TF-IDF(%s): %s' % (doc, term), score

    query_scores[doc] += score

    print

    print "Overall TF-IDF scores for query '%s'" % (' '.join(QUERY_TERMS), )

    for (doc, score) in sorted(query_scores.items()):

    print doc, score

    展开全文
  • java 实现 计算tfidf 使用ik分词
  • tfidf做为计算每个词在文件中的频率,可以过滤掉常见词语,保留重要词语 在编程中可以使用jieba包自带的方法进行计算 import jieba.analyse test1 ="" fencilist=[] with open(r"testtxt",'r',encoding="UTF-8") ...
  • gensim中tfidf计算方法

    2022-01-10 12:25:37
    但是计算的过程中有很多变体,下面就举例介绍一下 gensim中的计算过程。 调用方式 from gensim import corpora, models, similarities corpus = [[(0, 1.0), (1, 1.0), (2, 1.0)], [(2, 1.0), (3, 1.0), (4, 1.0),...
  • gensim包的tfidf方法计算中文文本相似度,代码可直接运行,包含中文停用词,方便。
  • NLP实战之基于TFIDF的文本相似度计算

    千次阅读 2019-11-27 20:14:01
    TFIDF算法介绍 TF-IDF(Term Frequency–InverseDocument Frequency)是一种用于资讯检索与文本挖掘的常用加权技术。TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,...
  • 矩阵元素a[i][j] 表示j词在i类文本下的词频 transformer=TfidfTransformer()#该类会统计每个词语的tf-idf权值 tfidf=transformer.fit_transform(vectorizer.fit_transform(corpus))#第一个fit_transform是计算tf-idf...
  • 在sql下计算tfidf

    2017-12-05 08:42:00
    由于工作中要直接在sql中写tfidf,对tfidf又有了新的理解,以及又让我厌恶了sql。。。因为在R或者python中写起tfidf来还是很方便的,直接调个包,或者直接写都很快,但在sql中写起来有点慢,比较冗长,也有可能我写...
  • # **最后是实际计算商品间相似度的程序三,这个用LSI模型来比对的话,2k行要跑四五十分钟,但我的数据量有50w。用tfidf模型来算直接报memory error 不给跑** ``` Python # -*- coding: utf-8 -*- import logging,...
  • Sklearn的TfidfVectorizer中tfidf值的计算

    千次阅读 2020-03-20 18:06:35
    其中TfidfTransformer实现了每个词的tfidf值的计算。 下图是官方文档中,对tfidf计算的说明: 可以看出默认的计算方法是 idf(d,t)=log⁡[(1+n)1+df(d,t)]+1 idf(d,t) = \log\bigg[ \frac{(1+n)}{...
  • new_vec_tfidf_ls = [tfidf[new_vec] for new_vec in new_vecs] # 将要比较文档转换为tfidf表示方法 print('-----------9----------') # 计算要比较的文档与语料库中每篇文档的相似度 sims = [index[new_vec_tfidf]...
  • 写在前面的话,既然是学习版本,那么就不是一个好用的工程实现版本,整套代码全部使用List进行匹配效率可想而知。 【原文转自】:... P.S:如果不是被迫需要语言统一,尽量不要使用此工程计算TF-IDF,...
  • python算法 tfidf

    2019-09-29 14:46:24
    98 tfidf = tf*idf # 计算TF-IDF 99 outdic[str(i)] = tfidf 100 orderdic = sorted(outdic.items(), key=operator.itemgetter( 101 1), reverse=True) # 给字典排序 102 return orderdic 103 104 105 def ...
  • Tfidf词频计算

    2015-05-28 00:26:09
    基于tf idf的文档集关键词提取 已经含有测试文档集 可以替换成任意需要的文档集 可以自己提供字典
  • Python TFIDF计算文本相似度

    千次阅读 2020-02-02 22:25:28
    本文主要参考https://stackoverflow.com/questions/12118720/python-tf-idf-cosine-to-find-document-similaritStackOverflow的...cosine_similarity就是计算L2归一化的向量点乘。如果x,y是行向量,它们的cosine sim...
  • 5、计算tfidf TFIDF=tF* iDF tFIDF_DF =pandas.DataFrame(TFIDF) 6、将每个文本中tfidf值排名前100的词和相应的tfidf值输出 file= [] for root ,dirs,files in os.walk(r ' H:\19113117 - 副本 ' ):...
  • 2020 中, 除了使用词向量人工构建五大类文化词典, 还使用了tfidf作为权重,计算企业每条文档五大类文化的得分情况。 情感分析 无权重。直接计算文本中正、负情感词出现的次数 有权重。tf-idf, tf是词频,idf是...
  • 基于MR实现的TFIDF相似度的计算过程,可以深刻理解mapreducer的过程同时了解TFIDF计算过程
  • 使用sklearn实现tfidf特征计算

    千次阅读 2017-08-22 15:40:24
    sklearn实现tfidf特征计算
  • 特征选择与TFIDF

    2020-08-03 17:26:54
    机器学习】特征选择(Feature Selection)方法汇总以及权重理解 ...TFIDF算法 通过TFIDF计算一个特征的权重时,该权重体现出的根本不是特征的重要程度!所以不能拿TFIDF去做特征选择 特征选择方法 ...
  • 【甘道夫】基于sklearn计算tfidf时支持char + word模式

    千次阅读 多人点赞 2018-03-28 15:28:55
    欢迎转载,请注明原文链接:https://blog.csdn.net/u010967382/article/details/79728404本文不介绍sklearn计算tfidf的过程,网上文章很多,只指出一个坑及其解决方案。做tfidf计算有几行核心代码: vectorizer = ...
  • idf权值 tfidf=transformer.fit_transform(vectorizer.fit_transform(corpus))#第一个fit_transform是计算tf-idf,第二个fit_transform是将文本转为词频矩阵 word=vectorizer.get_feature_names()#获取词袋模型中的...
  • Java实现TFIDF算法

    2021-02-26 08:51:27
    //计算tf*idf并输出 for (Map.Entryentry : tfSet) {if(entry.getKey().equals(f.getName())) { tfidf= (double) entry.getValue() *idf; System.out.println("tfidf:" +tfidf); } } } }static float log(float ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,826
精华内容 3,130
关键字:

计算tfidf