困惑度、主题一致性,lda模型找出主题相关词

这篇具有很好参考价值的文章主要介绍了困惑度、主题一致性,lda模型找出主题相关词。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

困惑度perplexity:句子的概率的倒数。如果句子的概率越大,说明这句话越符合人话的规律,即p(句子),pp困惑度越小。模型对该句子就越不困惑。
困惑度和一致性,python,自然语言处理,数据挖掘,python,开发语言
困惑度和一致性,python,自然语言处理,数据挖掘,python,开发语言
通俗一点解释下就是,困惑度表示的对于一篇文章来说,我们有多不确定它是属于某个主题的。即主题的个数越多,模型的困惑度就越低,但是注意一点,当主题数很多的时候,生成的模型往往会过拟合,所以不能单纯依靠困惑度来判断一个模型的好坏。这时候我们的另一个判断标准就有作用了。biubiu~一致性!
困惑度可视化:

def perplexity_visible_model(self, topic_num, data_num):
        '''
        @description: 绘制困惑度-主题数目曲线
        @param {type} 
        @return: 
        '''
        # texts = self.fenci_data()
        _, corpus = self.weibo_lda()
        x_list = []
        y_list = []
        for i in range(1,topic_num):
            model_name = './lda_{}_{}.model'.format(i, data_num)
            try:
                lda = models.ldamodel.LdaModel.load(model_name)-
                perplexity = lda.log_perplexity(corpus)
                print(perplexity)
                x_list.append(i)
                y_list.append(perplexity)
            except Exception as e:
                print(e)
        plt.xlabel('num topics')
        plt.ylabel('perplexity score')
        plt.legend(('perplexity_values'), loc='best')
        plt.show()

困惑度和一致性,python,自然语言处理,数据挖掘,python,开发语言

主题一致性:coherence。更高的一致性分数表示更好的aspect可解释性,意味着更有意义,还有语义上更连贯。

def visible_model(self, topic_num, data_num):
        '''
        @description: 可视化模型
        @param :topic_num:主题的数量
        @param :data_num:数据的量
        @return: 可视化lda模型
        '''
        dictionary, _ = self.weibo_lda()
        texts = self.fenci_data()
        x_list = []
        y_list = []
        for i in range(1,topic_num):
            model_name = './lda_{}_{}.model'.format(i, data_num)
            try:
                lda = models.ldamodel.LdaModel.load(model_name)
                cv_tmp = CoherenceModel(model=lda, texts=texts, dictionary=dictionary, coherence='c_v')
                x_list.append(i)
                y_list.append(cv_tmp.get_coherence())
            except:
                print('没有这个模型:{}'.format(model_name))
        plt.plot(x_list, y_list)
        plt.xlabel('num topics')
        plt.ylabel('coherence score')
        plt.legend(('coherence_values'), loc='best')
        plt.show()

困惑度和一致性,python,自然语言处理,数据挖掘,python,开发语言
可借鉴网址:
https://zhuanlan.zhihu.com/p/106982034
实战:

#找到最佳k通过主题一致性得分去找 
import tomotopy as tp
tp.isa
def find_k(docs,min_k=1,max_k=20,min_df=2):
    #min_df 词语最少出现在两个文档中
    import matplotlib.pyplot as plt
    scores = []
    for k in range(min_k,max_k):
        mdl = tp.LDAModel(min_df = min_df,k = k,seed = 555)
        #print("mdl",mdl)
        for words in docs:
            if words:
                mdl.add_doc(words)
        mdl.train(20)
        coh = tp.coherence.Coherence(mdl)
        scores.append(coh.get_score())
    plt.plot(range(min_k,max_k),scores)
    plt.xlabel("number of topics")
    plt.ylabel("coherence")
    plt.show()
find_k(docs =df['words'],min_k=1,max_k=40,min_df=2)
                

困惑度和一致性,python,自然语言处理,数据挖掘,python,开发语言
通过图形,我暂时将主题定为10个。其中的tomotopy可见网址:tomotopy | 速度最快的LDA主题模型文章来源地址https://www.toymoban.com/news/detail-532186.html

到了这里,关于困惑度、主题一致性,lda模型找出主题相关词的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一文读懂从 CPU 多级缓存 & 缓存一致性协议(MESI)到 Java 内存模型

    参考:Java Memory Model 多级缓存的出现解决了CPU处理速度和内存读取速度不一致的问题,但是同时也带来缓存不一致的问题,为了解决这个问题,我们引入了缓存一致性协议,常见的缓存一致性协议有MSI,MESI,MOSI,Synapse,Firefly及DragonProtocol等等,下文以MESI协议进行讲述。 缓

    2024年02月05日
    浏览(43)
  • AtomoVideo:阿里推出高保真图像到视频生成开源模型,具有更好的运动强度和一致性

    AtomoVideo是一种新型的高保真图像到视频(I2V)生成框架,可以从输入图像生成高保真视频,实现比现有工作更好的运动强度和一致性,并且兼容各种个性化的T2I模型,无需特定调整。 项目:atomo-video.github.io 论文:arxiv.org/abs/2403.01800 高保真图像到视频生成 近年来,基于先进的文

    2024年03月22日
    浏览(42)
  • 【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(六)- 向量内存一致性模型

    以下是《riscv-v-spec-1.0.pdf》文档的关键内容: 这是一份关于向量扩展的详细技术文档,内容覆盖了向量指令集的多个关键方面,如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量算术指令格式、向量整数和浮点算术

    2024年04月09日
    浏览(31)
  • 什么是一致性哈希?一致性哈希是如何工作的?如何设计一致性哈希?

    如果你有 n 个缓存服务器,一个常见的负载均衡方式是使用以下的哈希方法: 服务器索引 = 哈希(键) % N ,其中 N 是服务器池的大小。 让我们通过一个例子来说明这是如何工作的。如表5-1所示,我们有4台服务器和8个字符串键及其哈希值。 为了获取存储某个键的服务器,我们

    2024年02月06日
    浏览(38)
  • 从kafka如何保证数据一致性看通常数据一致性设计

    在数据库系统中有个概念叫事务,事务的作用是为了保证数据的一致性,意思是要么数据成功,要么数据失败,不存在数据操作了一半的情况,这就是数据的一致性。在很多系统或者组件中,很多场景都需要保证数据的一致性,有的是高度的一致性。特别是在交易系统等这样

    2024年02月19日
    浏览(36)
  • 分布式系统的一致性级别划分及Zookeeper一致性级别分析

    在谈到Zookeeper的一致性是哪种级别的一致性问题,以及CAP原则中的C是哪一种一致性级别时有些疑惑。 下面是大多数文章中提到的一致性级别 一致性(Consistency)是指多副本(Replications)问题中的数据一致性。可以分为强一致性、顺序一致性与弱一致性。 1.1 强一致性(Stric

    2024年04月12日
    浏览(41)
  • 深入理解高并发下的MySQL与Redis缓存一致性问题(增删改查数据缓存的一致性、Canal、分布式系统CAP定理、BASE理论、强、弱一致性、顺序、线性、因果、最终一致性)

    一些小型项目,或极少有并发的项目,这些策略在无并发情况下,不会有什么问题。 读数据策略:有缓存则读缓存,然后接口返回。没有缓存,查询出数据,载入缓存,然后接口返回。 写数据策略:数据发生了变动,先删除缓存,再更新数据,等下次读取的时候载入缓存,

    2024年03月20日
    浏览(38)
  • Redis 原理缓存过期、一致性hash、雪崩、穿透、并发、布隆、缓存更新策略、缓存数据库一致性

    redis的过期策略可以通过配置文件进行配置 redis会把设置了过期时间的key放在单独的字典中,定时遍历来删除到期的key。 1).每100ms从过期字典中 随机挑选20个,把其中过期的key删除; 2).如果过期的key占比超过1/4,重复步骤1 为了保证不会循环过度,导致卡顿,扫描时间上限

    2024年02月08日
    浏览(41)
  • 缓存数据一致性探究

    缓存是一种较低成本提升系统性能的方式,自它面世第一天起就备受广大开发者的喜爱。然而正如《人月神话》中的那句经典的“没有银弹”中所说,软件工程的设计没有银弹。 就像每一次发布上线修复问题的同时,也极易引入新的问题,自缓存诞生的第一天起, 缓存与数

    2024年02月16日
    浏览(27)
  • 谈谈一致性哈希算法

    一致性哈希算法是1997年由麻省理工的几位学者提出的用于解决分布式缓存中的热点问题。大家有没有发现,我们之前介绍的例如快排之类的算法是更早的六七十年代,此时分布式还没有发展起来, 大家往往还在提高单机性能。但是九十年代开始,逐渐需要用分布式集群来解

    2024年02月07日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包