Divider
  Speech Technology and Research Laboratory
  People
  Current Research Activities
  Past Research Activities
  Publications
  Career Opportunities
  Seminars
  Technologies for License
  In the News
  Contact Us
  STAR Search
  Information and Computing Sciences Division
SpacerAbout UsDividerR and D DivisionsDividerCareersDividerNewsroomDividerContact UsDividerSRI HomeSpacer

Spacer
         
  SRI Logo

Search SRILM-USER Archives

Match: Format: Sort by:
Search:

SRILM bug-fix

From: Andreas Stolcke <stolcke at ADDRESS HIDDEN>
Date: Thu, 29 Jun 2006 18:27:32 PDT

Recent versions of SRILM have a bug in the option handling of
ngram, hidden-ngram, and lattice-tool concerning interpolated LMs
with more than 6 components.

The bug is triggered by the use of -mix-lm[789] in conjunction with the -bayes
option.  This will be fixed in the next release, but that might
take a while, so I'm including a patch below.

This bug was found by Richard Zens of RWTH Aachen.

--Andreas

*** /tmp/T005lmct Thu Jun 29 06:02:25 2006
--- lm/src/ngram.cc Thu Jun 29 05:59:48 2006
***************
*** 738,744 ****
   mixLambda6);
   }
   if (mixFile7) {
!     useLM = makeMixLM(mixFile6, *vocab, classVocab, order, useLM,
   mixLambda7,
   mixLambda + mixLambda1 + mixLambda2 +
   mixLambda3 + mixLambda4 + mixLambda5 +
--- 738,744 ----
   mixLambda6);
   }
   if (mixFile7) {
!     useLM = makeMixLM(mixFile7, *vocab, classVocab, order, useLM,
   mixLambda7,
   mixLambda + mixLambda1 + mixLambda2 +
   mixLambda3 + mixLambda4 + mixLambda5 +
***************
*** 745,751 ****
   mixLambda6 + mixLambda7);
   }
   if (mixFile8) {
!     useLM = makeMixLM(mixFile6, *vocab, classVocab, order, useLM,
   mixLambda8,
   mixLambda + mixLambda1 + mixLambda2 +
   mixLambda3 + mixLambda4 + mixLambda5 +
--- 745,751 ----
   mixLambda6 + mixLambda7);
   }
   if (mixFile8) {
!     useLM = makeMixLM(mixFile8, *vocab, classVocab, order, useLM,
   mixLambda8,
   mixLambda + mixLambda1 + mixLambda2 +
   mixLambda3 + mixLambda4 + mixLambda5 +
***************
*** 752,758 ****
   mixLambda6 + mixLambda7 + mixLambda8);
   }
   if (mixFile9) {
!     useLM = makeMixLM(mixFile6, *vocab, classVocab, order, useLM,
   mixLambda9, 1.0);
   }
      }
--- 752,758 ----
   mixLambda6 + mixLambda7 + mixLambda8);
   }
   if (mixFile9) {
!     useLM = makeMixLM(mixFile9, *vocab, classVocab, order, useLM,
   mixLambda9, 1.0);
   }
      }
*** /tmp/T005lmct Thu Jun 29 06:02:25 2006
--- lm/src/hidden-ngram.cc Thu Jun 29 06:01:12 2006
***************
*** 1178,1184 ****
   mixLambda6);
   }
   if (mixFile7) {
!     useLM = makeMixLM(mixFile6, *vocab, classVocab, order, useLM,
   mixLambda7,
   mixLambda + mixLambda1 + mixLambda2 +
   mixLambda3 + mixLambda4 + mixLambda5 +
--- 1178,1184 ----
   mixLambda6);
   }
   if (mixFile7) {
!     useLM = makeMixLM(mixFile7, *vocab, classVocab, order, useLM,
   mixLambda7,
   mixLambda + mixLambda1 + mixLambda2 +
   mixLambda3 + mixLambda4 + mixLambda5 +
***************
*** 1185,1191 ****
   mixLambda6 + mixLambda7);
   }
   if (mixFile8) {
!     useLM = makeMixLM(mixFile6, *vocab, classVocab, order, useLM,
   mixLambda8,
   mixLambda + mixLambda1 + mixLambda2 +
   mixLambda3 + mixLambda4 + mixLambda5 +
--- 1185,1191 ----
   mixLambda6 + mixLambda7);
   }
   if (mixFile8) {
!     useLM = makeMixLM(mixFile8, *vocab, classVocab, order, useLM,
   mixLambda8,
   mixLambda + mixLambda1 + mixLambda2 +
   mixLambda3 + mixLambda4 + mixLambda5 +
***************
*** 1192,1198 ****
   mixLambda6 + mixLambda7 + mixLambda8);
   }
   if (mixFile9) {
!     useLM = makeMixLM(mixFile6, *vocab, classVocab, order, useLM,
   mixLambda9, 1.0);
   }
      }
--- 1192,1198 ----
   mixLambda6 + mixLambda7 + mixLambda8);
   }
   if (mixFile9) {
!     useLM = makeMixLM(mixFile9, *vocab, classVocab, order, useLM,
   mixLambda9, 1.0);
   }
      }
*** /tmp/T005lmct Thu Jun 29 06:02:25 2006
--- lattice/src/lattice-tool.cc Thu Jun 29 06:01:53 2006
***************
*** 1128,1134 ****
   mixLambda6);
   }
   if (mixFile7) {
!     useLM = makeMixLM(mixFile6, *vocab, classVocab, order, useLM,
   mixLambda7,
   mixLambda + mixLambda1 + mixLambda2 +
   mixLambda3 + mixLambda4 + mixLambda5 +
--- 1128,1134 ----
   mixLambda6);
   }
   if (mixFile7) {
!     useLM = makeMixLM(mixFile7, *vocab, classVocab, order, useLM,
   mixLambda7,
   mixLambda + mixLambda1 + mixLambda2 +
   mixLambda3 + mixLambda4 + mixLambda5 +
***************
*** 1135,1141 ****
   mixLambda6 + mixLambda7);
   }
   if (mixFile8) {
!     useLM = makeMixLM(mixFile6, *vocab, classVocab, order, useLM,
   mixLambda8,
   mixLambda + mixLambda1 + mixLambda2 +
   mixLambda3 + mixLambda4 + mixLambda5 +
--- 1135,1141 ----
   mixLambda6 + mixLambda7);
   }
   if (mixFile8) {
!     useLM = makeMixLM(mixFile8, *vocab, classVocab, order, useLM,
   mixLambda8,
   mixLambda + mixLambda1 + mixLambda2 +
   mixLambda3 + mixLambda4 + mixLambda5 +
***************
*** 1142,1148 ****
   mixLambda6 + mixLambda7 + mixLambda8);
   }
   if (mixFile9) {
!     useLM = makeMixLM(mixFile6, *vocab, classVocab, order, useLM,
   mixLambda9, 1.0);
   }
      }
--- 1142,1148 ----
   mixLambda6 + mixLambda7 + mixLambda8);
   }
   if (mixFile9) {
!     useLM = makeMixLM(mixFile9, *vocab, classVocab, order, useLM,
   mixLambda9, 1.0);
   }
      }

Click here to go to the SRILM home page.

 

About Us  Vertical divider  R&D Divisions  Divider  Careers  Divider  Newsroom  Divider  Contact Us
©2006 SRI International, 333 Ravenswood Avenue, Menlo Park, CA 94025-3493
SRI International is an independent, nonprofit corporation. Privacy policy

Last modified Dec 02, 2008