1. 程式人生 > >概率語言模型 Probabilistic Language Modeling (三) --- 訓練工具彙總

概率語言模型 Probabilistic Language Modeling (三) --- 訓練工具彙總

傳統演算法

1) BerkeleyLM 是用java寫的,號稱跟KenLM差不多,記憶體比srilm小

https://github.com/adampauls/berkeleylm

2)MITLM (The MIT Language Modeling toolkit) 引數優化做的比較好

https://code.google.com/p/mitlm/ or https://github.com/mitlm/mitlm

3)SRILM(The SRI language modeling toolkit) 老牌語言模型工具,SRI(Stanford Research Institute)開發,使用比較廣泛,c++版本

http://www.speech.sri.com/projects/srilm/

另外Maximum entropy (MaxEnt) language models is蘇pported in the SRILM toolkit

https://phon.ioc.ee/dokuwiki/doku.php?id=people:tanel:srilm-me.en

4)IRSTLM (IRST language modeling toolkit義大利TrentoFBK-IRST實驗室開發處理較大規模的訓練資料integrated into Moses (a popular open source Statistical Machine Translation decoder)

。IRSTLM在訓練語言模型時採用了劃分詞典分塊訓練快速合併的方式,從而在訓練大規模語料時取得了優異的效能。IRSTLM 訓練語言模型時分以下 5 步: a)在訓練語料上統計帶詞頻詞彙表;b)按照詞頻均衡的原則將詞彙表劃分為若干個子詞彙表;c)對各個子詞彙表統計 n-gram,這些 n-gram 必須以詞彙表中的詞彙開頭;d)根據第四步的統計結果,建立多個子語言模型;e)把所有的子語言模型融合成最終語言模型

http://hlt-mt.fbk.eu/technologies/irstlm or https://github.com/irstlm-team/irstlm

5)KenLM (Kenneth Heafield's language model toolkit) 最大特點是速度快、佔用記憶體少。號稱比SRILM要好一些,支援單機大資料的訓練,包括c++和python兩個介面

http://kheafield.com/code/kenlm/ or https://github.com/kpu/kenlm

6)Bigfatlm Provides Hadoop training of Kneser-ney language models, written in Java

https://github.com/jhclark/bigfatlm

7)Kylm (Kyoto Language Modeling Toolkit)  written in Java,Output in WFST format for use with WFST decoders

http://www.phontron.com/kylm/  or  https://github.com/neubig/kylm

8) OpenGrm Language modelling toolkit for use with OpenFst, makes and modifies n-gram language models encoded as weighted finite-state transducers (FSTs)

http://opengrm.org/

深度學習

1)RNNLM(Recurrent neural network language model toolkit)

http://rnnlm.org/ or http://www.fit.vutbr.cz/~imikolov/rnnlm/

2)BRNNLM (Bayesian recurrent neural network for language model)

http://chien.cm.nctu.edu.tw/bayesian-recurrent-neural-network-for-language-modeling

3)RWTHLM (RWTH Aachen University Neural Network Language Modeling Toolkit, includes feedforward, recurrent, and long short-term memory neural networks)

http://www-i6.informatik.rwth-aachen.de/web/Software/rwthlm.php

4)Character-Aware Neural Language Models,employs a convolutional neural network (CNN)over characters to use as inputs into an long short-term memory (LSTM)recurrent neural network language model (RNN-LM)

https://github.com/yoonkim/lstm-char-cnn


相關推薦

概率語言模型 Probabilistic Language Modeling () --- 訓練工具彙總

傳統演算法 1) BerkeleyLM 是用java寫的,號稱跟KenLM差不多,記憶體比srilm小 https://github.com/adampauls/berkeleylm 2)MITLM (The MIT Language Modeling toolkit) 引

概率語言模型 Probabilistic Language Modeling (二) --- 模型估計演算法介紹

1. 緣由–資料稀疏問題 假設k泛指某一事件,N(k)表示事件k觀察到的頻數,極大似然法使用相對頻數作為對事件k的概率估計為p(k)=N(k)N,在語言模型中,訓練語料中大量的事件N(k)=0,這顯然沒有反映真實情況,這種零值的概率估計會導致語言模型演算法的失

斯坦福大學自然語言處理第四課 語言模型Language Modeling)筆記

一、課程介紹 斯坦福大學於2012年3月在Coursera啟動了線上自然語言處理課程,由NLP領域大牛Dan Jurafsky 和 Chirs Manning教授授課:https://class.coursera.org/nlp/ 以下是本課程的學習筆記,以課程PPT/

stanford nlp第四課“語言模型Language Modeling)”

一、課程介紹 斯坦福大學於2012年3月在Coursera啟動了線上自然語言處理課程,由NLP領域大牛Dan Jurafsky 和 Chirs Manning教授授課:https://class.coursera.org/nlp/ 以下是本課程的學習筆記,以課程PPT

神經概率語言模型

統計語言建模的目標是學習語言中單詞序列的聯合概率函式。由於 the curse of dimensionality,這本質上是困難的:測試模型的單詞序列可能與訓練期間看到的所有單詞序列不同。一種基於n-gram的傳統的但非常成功的方法是,通過連線訓練集中看到的非常短的重疊序列來獲得泛化。我們建議通過學習詞的分

語言模型1-word2vec為什麼能訓練出相似向量

導語 由於接到一點語言模型的任務,自然也就看到了word2vec這個比較火的課題。網上的課程和材料相對都比較多,一般一開始都會說word2vec的優點能描述出單詞的相似關係,然後就是理論或者程式碼。但是都沒有解釋或者沒有清楚地解釋為什麼word2vec能為功能性差不多的單詞

概率語言模型分詞方法

4.6  概率語言模型的分詞方法 從統計思想的角度來看,分詞問題的輸入是一個字串C=C1,C2,……,Cn,輸出是一個詞串S=W1,W2,……,Wm,其中m<=n。對於一個特定的字串C,會有多個切分方案S對應,分詞的任務就是在這些S中找出概率最大的一個切分方案,也就是

MIT自然語言處理第三講:概率語言模型(第四、五、六部分)

MIT自然語言處理第三講:概率語言模型(第四部分) 自然語言處理:概率語言模型 Natural Language Processing: Probabilistic Language Modeling 作者:Regina Barzilay(MIT,EECS Dep

概率語言模型及其變形系列(2)-LDA及Gibbs Sampling

本系列博文介紹常見概率語言模型及其變形模型,主要總結PLSA、LDA及LDA的變形模型及引數Inference方法。初步計劃內容如下第三篇:LDA變形模型-Twitter LDA,TimeUserLDA,ATM,Labeled-LDA,MaxEnt-LDA等第四篇:基於變形L

Coursera概率模型Probabilistic Graphical Models)第週程式設計作業分析

Markov Networks for OCR 光學字元識別的馬爾科夫網路   說到光學字元識別(OCR),此前筆者首先想到的會是卷積神經網路,而單詞識別則會考慮使用遞迴神經網路。而本週的作業則基於馬爾科夫網路構建了一個較為基礎OCR系統,目的也主要是讓我們對馬爾科夫網路有個感

Language model】使用RNN LSTM訓練語言模型 寫出45°角仰望星空的文章

開篇 這篇文章主要是實戰內容,不涉及一些原理介紹,原理介紹為大家提供一些比較好的連結:   1. Understanding LSTM Networks : RNN與LSTM最為著名的文章,貼圖和內容都恰到好處,為研究人員提供很好的參考價值。 中文漢化版:(譯

深度學習語言模型的通俗講解(Deep Learning for Language Modeling

感想 這是臺灣大學Speech Processing and Machine Learning Laboratory的李巨集毅 (Hung-yi Lee)的次課的內容,他的課有大量生動的例子,把原理也剖析得很清楚,感興趣的同學可以去看看,這裡是我對它的一次課的筆記,我覺得

讀《數學之美》第章 統計語言模型

其它 bigram 利用 理解 googl track 推斷 art google 自然語言從產生開始。逐漸演變為一種基於上下文相關的信息表達和傳遞方式,在計算機處理自然語言時,一個最主要的問題就是為自然語言上下文相關的特性建立數學模型,叫做統計語言模型(Statist

NLP()_統計語言模型

完全 概念 精度 馬爾科夫 編輯距離 一定的 角度 等於 nsh 概念 統計語言模型:是描述自然語言內在的規律的數學模型。廣泛應用於各種自然語言處理問題,如語音識別、機器翻譯、分詞、詞性標註,等等。簡單地說,語言模型就是用來計算一個句子的概率的模型 即P(W1,W2,W3.

word2vec 中的數學原理 背景知識 語言模型

tps 詳解 art 技術 nbsp log 分享圖片 word2vec 自己 主要參考: word2vec 中的數學原理詳解 自己動手寫 word2vec word2vec 中的數學原理三 背景知識 語言模型

Coursera概率模型Probabilistic Graphical Models)第一周編程作業分析

期望 and find 不同的 列表 mali 一周 模型 course Computing probability queries in a Bayesian network 計算貝葉斯網絡中的概率查詢 1.基礎因子操作 作業中因子的結構 phi =

Coursera概率模型Probabilistic Graphical Models)第四周編程作業分析

map tel ica join 正常 最大化 expected 聯合 else Decision Making 作決策 這一周的內容在老版本的CS228課程中,是作為第六周的一個小節講的(老版本的CS229只有9周的課程),而在概率圖模型的教材裏邊對應的是第22章

自然語言處理中的語言模型訓練方法

16px 預測 網絡語言 緩解 lang 大數 一中 標準 小數 自然語言處理中的語言模型預訓練方法 最近,在自然語言處理(NLP)領域中,使用語言模型預訓練方法在多項NLP任務上都獲得了不錯的提升,廣泛受到了各界的關註。就此,我將最近看的一些相關論文進行總結,選取了幾

語音識別系統語言模型訓練和聲學模型的改進

10個 ext 個數 靜音 介紹 準備 上下 詞匯表 數據 一、訓練語言模型 詞與詞之間存在著合乎句法與否的約束,語言模型就是用來表示這些約束的,它可以提供字與字之間的上下文信息和語義信息。N-gram模型,即對訓練音頻文件所對應的文本文件進行統計,提取不同字

為什麼使用神經網路訓練得到的語言模型不需要做資料平滑

我們都知道,在自然語言處理的語言模型裡面,最核心的就是計算得到一個句子的概率,為了得到這個概率,我們需要計算得到一系列的條件概率。這些條件概率就是整個語言模型的引數。 為了得到條件概率,我們可以有兩種不同的方法。 第一種就是使用統計概率方法,通過統計的方法得到不同的詞對的條件概率。這種方