问题标签 [language-model]
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.
nlp - KenLM 困惑怪异
我有 96 个文件,每个文件包含约 10K 行英文文本(标记化,小写)。如果我遍历文件(本质上是使用 k=#files 进行 k 折交叉验证)并为 95 构建一个 LM(使用 bin/lmplz)并对保留的文件运行 bin/query,我会看到一个 PPL (包括OOV)每次为1.0。但是,如果我针对使用所有 96 个文件构建的 LM 运行一个文件(因此测试文档包含在构建 LM 中),我得到的 PPL 为 27.8。
我在 SRILM 方面的经验比 KenLM 多,但我从未见过 1 的困惑分数。对此感觉有些不对劲。即使我接受了这一点并将其归因于测试文档中出现在其他训练数据中的句子,它也无法解释为什么当我确保测试数据包含在训练数据中时我会得到更高的分数。这是怎么回事?
==============================
这似乎也很奇怪:
nlp - ARPA 文件中的 n-gram 概率计数
我开始研究与语言建模相关的问题,但我不清楚一些计算。例如,考虑以下简单文本:
我使用 berkelylm 创建了 n-gram 概率计数和 ARPA 文件。这是生成的 ARPA 文件:
我很清楚 1-gram 的概率计数,但我不清楚 2-gram 和 3-gram 数据是如何创建的。那里总共有 13 个二元组,二元组“我是”出现了两次所以,“我是”的 2 克概率计数应该是 log(2/13) 或 -0.81291,以对数尺度,但它是 - 0.37 在生成的文件中)。
由于缺乏经验,我可能会遗漏一些东西,但我希望能举个例子来解释计算。
谢谢。
nlp - 如何处理和计算unigram LM?
我是 NLP 的初学者,我很困惑如何处理<s>
和</s>
符号来计算一元模型的计数?我应该计算它们还是忽略它们?
nlp - 如何使用庞大的语言模型调整机器翻译模型?
Moses
是一个建立机器翻译模型的软件。并且KenLM
是 moses 使用的事实上的语言模型软件。
我有一个包含 16GB 文本的文本文件,我用它来构建这样的语言模型:
生成的文件 ( text.arpa
) 为 38GB。然后我将语言模型二值化为:
二值化语言模型 ( text.binary
) 增长到 71GB。
中,在训练翻译模型后,您应该使用算法moses
调整模型的权重。MERT
这可以通过https://github.com/moses-smt/mosesdecoder/blob/master/scripts/training/mert-moses.pl轻松完成。
MERT 适用于小语言模型,但对于大语言模型,需要相当长的时间才能完成。
我进行了谷歌搜索,发现了 KenLM 的过滤器,它承诺将语言模型过滤到更小的尺寸:https ://kheafield.com/code/kenlm/filter/
但我对如何使它工作一无所知。命令帮助给出:
但是当我尝试以下操作时,它会卡住并且什么也不做:
二值化后的语言模型应该怎么做?是否有任何其他步骤来操作大型语言模型以减少调整时的计算负载?
调整大型 LM 文件的常用方法是什么?
如何使用 KenLM 的过滤器?
(有关https://www.mail-archive.com/moses-support@mit.edu/msg12089.html的更多详细信息)
nlp - 在 NLP 应用程序中存储语言模型的最有效方法是什么?
他们通常如何存储和更新语言模型(例如 N-gram 模型)?将这些模型存储在数据库中的最有效方式是哪种结构?
machine-learning - 是在整个训练集还是单个示例上计算似然度?
假设我有一个(x, y)
成对的训练集,其中x
是输入示例,y
是相应的目标,y
是一个值(1 ... k)
(k
是类数)。
在计算训练集的似然度时,是否应该针对整个训练集(所有的例子)进行计算,即:
或者是针对特定训练示例计算的可能性(x, y)
?
我之所以问,是因为我看到了这些讲义(第 2 页),他似乎在其中计算 L_i,这是每个训练示例分别进行的可能性。
nlp - word2vec 中的命令行参数
我想使用 word2vec 来创建我自己的带有当前版本的英语维基百科的词向量语料库,但我找不到使用该程序的命令行参数的解释。在 demp 脚本中,您可以找到以下内容:
(text8 是 2006 年的旧维基百科语料库)
命令行参数是什么意思:
vectors.bin -cbow 1 -size 200 -window 8 -negative 25 -hs 0 -sample 1e-4 -threads 20 -binary 1 -iter 15
当我有大约 20GB(.txt 文件)的维基百科文本语料库时,最合适的值是什么?我读到对于更大的语料库,300 或 500 的向量大小会更好。
eclipse - 为什么我的 Sphinx4 识别不佳?
我正在学习如何使用 Eclipse 的 Maven 插件来使用 Sphinx4。
我使用了 GitHub 上的转录演示,并对其进行了修改以处理我自己的文件。音频文件为 16 位、单声道、16khz。大约 13 秒长。我注意到它听起来像是在慢动作。
文件中所说的话是,“还要确保您可以轻松访问录音文件,以便在被要求时上传”。
我正在尝试转录文件,但结果非常糟糕。我试图寻找能够彻底解释如何改进结果的论坛帖子或链接,或者我没有正确地做的事情让我无处可去。
我希望提高转录的准确性,但希望避免由于我当前项目必须处理的数据类型的差异而不得不自己训练模型。这是不可能的,我正在使用的代码是否关闭?
代码
(注意:音频文件可在https://instaud.io/8qv获得)
这是输出(我拍的相册):http: //imgur.com/a/Ou9oH
java - 在 Lucene 4 中访问术语统计信息
我有一个 Lucene 索引,我需要访问一些统计信息,例如术语收集频率。BasicStats
类有这个信息,但是,我不明白这个类是否可以访问。
BasicStats
是否可以在 Lucene 4中访问类?
speech-recognition - 将 ngrams 计数文件转换为 ARPA 格式
我想将我所有的 n-gram 文件转换为一个ARPA文件。它将用作语音识别的语言模型。
我有不同的 n-gram 文件,2-gram、3-gram 和 4-gram。以 2-gram 文件为例
two grams -- frequency similar degree 32 Writing writes 1 towars their 3 country feature 1 like gold 446 like golf 64
我怎样才能做到这一点?