问题标签 [perplexity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
321 浏览

text - 执行困惑函数评估 LDA 模型时出错

我正在尝试评估主题建模(LDA)。执行困惑函数时出现错误:(函数(类,fdef,mtable)中的错误:无法为签名“LDA_Gibbs”,“numeric”的函数“困惑”找到继承的方法有人请帮助解决这个问题。

0 投票
0 回答
557 浏览

python - nltk calc perplexity of bigram/trigram

我训练 bgram,trigram:

并想计算困惑度:

但是得到一个错误:

AttributeError:“生成器”对象没有属性“困惑”

应该如何计算困惑度?

0 投票
1 回答
1535 浏览

keras - 检查语言模型的困惑度

我用 Keras LSTM 创建了一个语言模型,现在我想评估它是否好,所以我想计算困惑度。

在 Python 中计算模型的困惑度的最佳方法是什么?

0 投票
2 回答
92 浏览

python - Python: handling large numbers

I need to count perplexity and I try to do it with

And after some steps my perplexity is equal to infinity. I need to get number and as last step to do pow(perplexity, 1/float(n))

Is any to multiply numbers like and get result?

0 投票
1 回答
262 浏览

tensorflow - 在 Keras/Tensorflow 中计算困惑度和内存问题

我想在每个训练时期后用 Perplexity 评估我的模型。我正在使用带有 Tensorflow 后端的 Keras。问题是,在每次评估之后,越来越多的内存被使用但从未释放。所以在几个时代之后,我的系统崩溃了。如果我不使用 keras 和 tensorflow 函数,它可以在没有内存问题的情况下工作。但是那样会太慢了。这是代码:

0 投票
2 回答
3137 浏览

python - 使用 Mallet Perplexity 的 Gensim 主题建模

我是哈佛图书馆书名和主题的主题建模。

我使用 Gensim Mallet Wrapper 与 Mallet 的 LDA 进行建模。当我尝试获取 Coherence 和 Perplexity 值以查看模型有多好时,perplexity 无法计算,但出现以下异常。如果我使用 Gensim 的内置 LDA 模型而不是 Mallet,我不会得到同样的错误。我的语料库包含 7M+ 文档,长度不超过 50 个单词,平均 20 个单词。所以文档很短。

以下是我的代码的相关部分:

困惑:-47.91929228302663

连贯性分数:0.28852857563541856

LDA 给出的分数没有问题。现在我用 MALLET 模拟同一个词袋

连贯性分数:0.5994123896865993

然后我询问 Perplexity 值并获得低于警告和 NaN 值。

/app/app-py3/lib/python3.5/site-packages/gensim/models/ldamodel.py:1108:RuntimeWarning:在乘法得分中遇到无效值+ = np.sum((self.eta - _lambda)* Elogbeta )

困惑:南

/app/app-py3/lib/python3.5/site-packages/gensim/models/ldamodel.py:1109:RuntimeWarning:减分中遇到无效值+ = np.sum(gammaln(_lambda)-gammaln(self。埃塔))

我意识到这是一个非常 Gensim 特定的问题,需要对这个函数有更深入的了解:gensim.models.wrappers.ldamallet.malletmodel2ldamodel(ldamallet)

因此,我将不胜感激对警告和 Gensim 域的任何评论。

0 投票
2 回答
142 浏览

python - 如何在开发数据上测试 word2vec?

在计算机作业中,要求实现 word2vec 算法以使用神经网络为某些单词生成密集向量。我实现了神经网络并通过训练数据对其进行了训练。首先,如何通过测试数据对其进行测试?该问题要求绘制一个图表,显示训练(时期)期间训练和测试数据的困惑度。我可以为损失做到这一点,就像这样:

我通过以下代码获得:

但是,我不知道如何找到每个 epoch 中训练和开发数据的困惑。基于这个问题,据说困惑是2**loss。然而,当我尝试这个公式时,我获得了INF. 你能指导我如何计算困惑度吗?我可以在当前代码中执行此操作,还是应该对整个开发数据应用一个函数?

0 投票
1 回答
453 浏览

nlp - 如何计算文本分类中的困惑度?

我正在使用 scikit learn、naive bayes 和 countvectorizer 进行方言文本分类。到目前为止,我只做 3 种方言文本分类。我将添加一种新的方言(或者实际上,这些方言的正式语言)。问题是,我要添加的新文本与其他 3 种方言有很多相同的词。所以我在一份研究文件中阅读了以下内容:

我们从收集的数据中为每种方言训练一个 n-gram 模型。为了训练 MSA 模型,我们从阿拉伯联合国语料库和新闻集中选择句子。所有方言和 MSA 模型共享相同的词汇表,因此可以正确比较困惑度。在分类时,给定一个输入句子,分类器计算每种方言类型的困惑度,并选择困惑度最小的一个作为标签。

他们的意思是 MSA(现代标准阿拉伯语),这是这些方言的正式语言。他们如何计算困惑度?他们只是使用朴素贝叶斯还是更多?

0 投票
0 回答
994 浏览

python - 困惑度随着主题数量的增加而增加

关于这个特定问题有很多帖子,但我无法解决这个问题。我一直在用 Sklearn 和 Gensim 实现在 20newgroup 语料库上试验 LDA。文献中描述了困惑通常会随着主题数量的增加而减少,但我得到了不同的结果。

我已经尝试过不同的参数,但总的来说,当增加主题数量时,测试集的困惑度会增加,而训练集的困惑度会降低。这可能表明该模型在训练集上过度拟合。但是在使用其他文本数据集时会出现类似的模式。此外,专门使用该数据集的研究的困惑度有所降低。(例如ng20 困惑

我已经对 SkLearn、Gensim 和 Gensim Mallet 包装器进行了实验,所有包都显示了不同的困惑度值(这是可以预料的,因为 LDA 是随机初始化的 + 不同的推理算法),但常见的模式是每个包的困惑度确实增加,这与文献中的许多论文相矛盾。

小示例代码

我希望所有的困惑都会减少,但我得到以下输出:

k = 5,训练困惑度:5531.15,测试困惑度:7740.95

k = 10,训练困惑度:5202.80,测试困惑度:8805.57

k = 15,训练困惑度:5095.42,测试困惑度:10193.42

编辑:运行 5 折交叉验证(从 10-150,步长:10)并平均每折的困惑度后,创建以下图。似乎训练集的困惑度仅在 1-15 个主题之间降低,然后在进入更高主题数时略有增加。测试集的困惑度不断增加,几乎是线性的。sklearn/gensim 实现和研究发表的困惑度降低之间的困惑度计算是否存在差异。

训练和测试困惑度

0 投票
1 回答
521 浏览

r - R曲线中的肘部/膝盖

我有这个数据处理:

我知道有很多这样的问题,但我一直无法准确找到我的情况的答案。在上图中,您可以看到潜在狄利克雷分配模型从 3 到 25 个主题编号的困惑度计算。我想获得其中最充分的值,这意味着我想找到肘部或膝盖,对于那些可能只被视为简单数字向量的值,其结果如下所示:

这就是情节的样子

我会说肘部是 13 或 16,但我不完全确定,我想要确切的数字作为结果。我在这篇论文中看到 f''(x) / (1+f'(x)^2)^1.5 是膝盖公式,我这样尝试并说它是 18:

我无法完全弄清楚这件事。有人想分享我如何根据困惑作为结果获得确切的理想主题编号吗?