问题标签 [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.
theano - 错误的维数:预期为 0,得到 1,形状为 (1,)
我正在使用 vanilla rnn 进行单词级语言建模,我能够训练模型,但由于一些奇怪的原因,我无法从模型中获得任何样本/预测;这是代码的相关部分:
我收到错误:“TypeError:('在索引 0(基于 0)处名称为“train.py:94”的 theano 函数的错误输入参数','错误的维数:预期为 0,形状为 1(1 ,).')”
现在这对应于以下行(在 predict_model 中):
即使花了几个小时,我也无法理解在以下情况下怎么可能出现尺寸不匹配:
当我做 train_set_x[index] 时,我得到(4, 109) fmatrix 类型的“ x ”张量可以保持(这是在train_model中发生的情况)但是当我做 voc[index] 时,我得到(1, 109),这也是一个矩阵,但' x '不能容纳这个,为什么?!
任何帮助都感激不尽。
谢谢 !
theano - 测试准确率始终超过 99%
我正在尝试在 theano/keras 中使用 LSTM 实现语言模型。我的网络运行良好,我也看到训练损失减少了,但测试准确率始终高于 99%,即使我没有长时间训练我的网络。我使用了 word2vec 向量并将权重嵌入到嵌入层中。我的网络看起来像:
我的训练和测试数组形状是: X_train 形状:(100000, 18) X_test 形状:(10000, 18) y_train 形状:(100000, 998) y_test 形状:(10000, 998)
其中有 100000 个训练句子和 10000 个测试句子,每个句子包含 18 个单词。输出的类数为 998。
谁能建议为什么我可能没有得到真正的测试错误?
java - 使用 lingpipe 进行增量语言模型训练
我正在尝试DynamicLMClassifier.createNGramProcess(categories,nGram)
在大于 20GB 的大数据集上训练 a。我目前正在将整个培训文件作为字符串提供给培训方法,出于显而易见的原因,我得到了一个java.lang.OutOfMemoryError: Java heap space
尽管可能增加 JVM 堆大小以支持此类训练,但我有兴趣找到一种增量方法。
训练代码如下所示:
理想的解决方案是在训练集的 N 个子集的循环中提供分类器.handle()。从理论上讲,我认为这应该是可能的,因为模型只需要记住具有各自计数的 ngram 元组来计算 MLE。
nlp - 使用 SRILM 的语言模型
我正在尝试使用 SRILM 构建语言模型。我有一个短语列表,我使用以下方法创建模型:
在此之后,我尝试制作一些示例来查看不同短语的概率,结果发现对数概率为-0.9。
问题是训练中有一些词的对数概率较低。例如,有 5 个“abatanuono”,其对数概率为-4.8。
我认为这很奇怪,因为一个短语<s> <unk> </s>
比<s> abatantuono </s>
在训练集中更有可能出现 3-gram <s> abatantuono </s>
!
这可以在这里看到:
你认为问题可能是什么?
谢谢
cmusphinx - 如何从词汇创建字典文件?
如何为我们的特定领域语言模型创建字典(.dict)文件。我正在使用 CMU 工具包创建 ARPA 格式的语言模型,但是没有创建 .dict 文件的选项。提前致谢。
python - 如何计算使用 keras 训练的语言模型的困惑度?
在 Windows 10 上使用 Python 2.7 Anaconda
我已经训练了一个 GRU 神经网络来使用 keras 构建语言模型:
如何计算这种语言模型的困惑度?例如,NLTK 为其模型提供了困惑度计算功能。
tensorflow - TensorFlow 嵌入查找
我正在尝试学习如何使用 TensorFlow 构建用于语音识别的 RNN。作为开始,我想尝试一些示例模型放在 TensorFlow 页面TF-RNN
根据建议,我花了一些时间通过处理 word2vec 模型代码的基本版本来了解如何将单词 ID 嵌入到密集表示(向量表示)中。我对实际操作有所了解,直到我在TF-RNNtf.nn.embedding_lookup
中实际遇到与二维数组一起使用的相同函数,但它不再有意义。 ptb_word_lm.py
我虽然tf.nn.embedding_lookup
做了:
给定一个 2-d arrayparams
和一个 1-d array ids
,函数tf.nn.embedding_lookup
从参数中获取行,对应于 给出的索引ids
,它与它返回的输出的维度保持一致。
我感到困惑的是:
当尝试使用相同的参数和 2-d arrayids
时,tf.nn.embedding_lookup
返回 3-d array,而不是 2-d,我不明白为什么。
我查阅了Embedding Lookup的手册,但我仍然很难理解分区的工作原理以及返回的结果。我最近尝试了一些简单的例子,tf.nn.embedding_lookup
它似乎每次都返回不同的值。这种行为是由于分区中涉及的随机性造成的吗?
请帮助我了解如何tf.nn.embedding_lookup
工作,为什么在两者中都使用它们word2vec_basic.py
,ptb_word_lm.py
即,甚至使用它们的目的是什么?
tensorflow - 在 TensorFlow CTC(语言模型)中使用自定义光束评分器
是否可以从 Python 端自定义 TensorFlow CTC 实现中的光束评分器?我在 CTCBeamSearchDecoder C++ 类构造函数的评论中看到了这种可能性,但想知道如何为 Python 用户提供此功能?
我们遇到的具体问题是将语言模型插入基于 CTC 的语音解码器中。语言模型可能是一个预训练的 TensorFlow 子图,能够输出用于光束分数调整的概率。但我们需要一种方法将其注入光束计分器。
python - 如何将 Keras 文本生成示例从字符级别更改为单词级别?
上面的代码或多或少是 Keras 文档作为语言模型提供给我们的。问题是这种语言模型预测的是字符,而不是单词。严格来说,语言模型应该预测完整的单词。
我的问题是,如何更改它以预测完整的单词?
到目前为止,我的数据预处理想法是:
这一步没有成功:
而且我不知道我应该使用什么输入形状: