语言模型评价指标Perplexity

语言模型(Language Model,LM),给出一句话的前k个词,希望它可以预测第k+1个词是什么,即给出一个第k+1个词可能出现的概率的分布p(xk+1|x1,x2,...,xk)。

在报告里听到用PPL衡量语言模型收敛情况,于是从公式角度来理解一下该指标的意义。

Perplexity定义

PPL是用在自然语言处理领域(NLP)中,衡量语言模型好坏的指标。它主要是根据每个词来估计一句话出现的概率,并用句子长度作normalize,公式为


S代表sentence,N是句子长度,p(wi)是第i个词的概率。第一个词就是 p(w1|w0),而w0是START,表示句子的起始,是个占位符。

这个式子可以这样理解,PPL越小,p(wi)则越大,一句我们期望的sentence出现的概率就越高。

还有人说,Perplexity可以认为是average branch factor(平均分支系数),即预测下一个词时可以有多少种选择。别人在作报告时说模型的PPL下降到90,可以直观地理解为,在模型生成一句话时下一个词有90个合理选择,可选词数越少,我们大致认为模型越准确。这样也能解释,为什么PPL越小,模型越好。


Perplexity另一种表达


好像在讲到unigram时,常常用到PPL的这种形式,从表达式上看和前面的意义是一样的,只不过wi不再是单个词,它表示第i个bigram或其他单位量。


Perplexity的影响因素

这些是听报告了解的:

1. 训练数据集越大,PPL会下降得更低,1billion dataset和10万dataset训练效果是很不一样的;

2. 数据中的标点会对模型的PPL产生很大影响,一个句号能让PPL波动几十,标点的预测总是不稳定;

3. 预测语句中的“的,了”等词也对PPL有很大影响,可能“我借你的书”比“我借你书”的指标值小几十,但从语义上分析有没有这些停用词并不能完全代表句子生成的好坏。


所以,语言模型评估时我们可以用perplexity大致估计训练效果,作出判断和分析,但它不是完全意义上的标准,具体问题还是要具体分析。

  • 43
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Python中常用的LDA模型评价指标有主题困惑度(Perplexity)和一致性(Coherence)指标,其中一致性指标可以用来评价LDA模型的主题质量和可解释性。 一致性指标是通过计算每个主题中词语之间的相似度来评价主题的连贯性和一致性,常用的一致性指标有C_v、C_npmi和C_uci等。其中C_v是基于词汇共现的一致性指标,C_npmi是基于点互信息的一致性指标,而C_uci则是基于余弦相似度的一致性指标。这些指标越高,表示主题之间的词语相似度越高,主题也就越连贯和一致。 在Python中,可以使用gensim库中的CoherenceModel类来计算LDA模型的一致性指标,具体方法如下: ```python from gensim.models.coherencemodel import CoherenceModel # 计算C_v一致性指标 cv = CoherenceModel(model=lda_model, corpus=corpus, texts=texts, coherence='c_v') coherence_cv = cv.get_coherence() print(f'C_v coherence score: {coherence_cv}') # 计算C_npmi一致性指标 npmi = CoherenceModel(model=lda_model, corpus=corpus, texts=texts, coherence='c_npmi') coherence_npmi = npmi.get_coherence() print(f'C_npmi coherence score: {coherence_npmi}') # 计算C_uci一致性指标 uci = CoherenceModel(model=lda_model, corpus=corpus, texts=texts, coherence='c_uci') coherence_uci = uci.get_coherence() print(f'C_uci coherence score: {coherence_uci}') ``` 其中,`lda_model`是训练好的LDA模型,`corpus`是语料库,`texts`是文本列表。计算完毕后,可以得到相应的一致性指标得分。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值