Dear Ihab.
There is a python script that was there in the google drive folder in the first mail I sent you.
Please replace the existing file with my copy.

It has to work.

Regards.


Sent from Samsung Mobile



-------- Original message --------
From: Ihab Ramadan <[email protected]>
Date: 05/11/2014 00:54 (GMT+09:00)
To: 'Raj Dabre' <[email protected]>
Cc: [email protected]
Subject: RE: [Moses-support] Incremental training


Dear Raj,

Your point is clear and I try to follow the steps you mentioned but I stuck now in the align_new.sh script which gives me this error

reading vocabulary files

Reading vocabulary file from:new_corpus/TraningTarget.txt.vcb

ERROR: TOKEN ID must be unique for each token, in line :

29107 q-1 4

Do you have any idea what this error means?

 

From: Raj Dabre [mailto:[email protected]]
Sent: Tuesday, November 4, 2014 12:06 PM
To: [email protected]
Cc: [email protected]
Subject: Re: [Moses-support] Incremental training

 

Dear Ihab,

Perhaps I should have mentioned much more clearly what my script does. Sorry for that.

Let me start with this: There is no direct/easy way to generate the moses.ini file as you need.

1. Suppose you have 2 million lines of parallel corpora and you trained a SMT system for it. This naturally gives the phrase table, reordering table and moses.ini.

2. Suppose you got 500 k more lines of parallel corpora.... there are 2 ways:

    a. Retrain 2.5 million lines from scratch (will take lots of time: ~ 2-3 days on a regular machines)

    b. Train on only the 500k new lines using the alignment information of the original training data. (Faster: ~ 6-7 hours).

 

What my scripts do: THEY ONLY GENERATE ALIGNMENTS and NOT PHRASE TABLES.

1. full_train.sh -------------- This trains on the original corpus of 2 million lines. (Generate alignment files only for the original corpus)

2. align_new.sh -------------- This trains on the new corpus of 500 k lines. (Generate alignment files only for the new corpus using the alignments for 1)

 

Why this split ???? Because the basic training step of Moses does not preserve the alignment probability information. Only the alignments are saved. To continue training we need the probability information.

You can pass flags to moses to preserve this information ( this flag is --giza-option . If you do this then you will not need full_train.sh. But you will have to change the config files before using align_new.sh)

HOW TO GET UPDATED PHRASE TABLE:

1. Append the forward alignments (fwd) generated by align_new.sh to the forward (fwd) alignments generated by full_train.sh.
2. Append the inverse alignments (inv) generated by align_new.sh to the inverse (inv) alignments generated by full_train.sh.

3. Run the moses training script with additional flags:

  • --first-step -- first step in the training process (default 1)--------------- This will be 4
  • --last-step -- last step in the training process (default 7)------------ This will remain 7
  • --giza-f2e -- <path to folder>/new_giza.fwd
  • --giza-e2f -- <path to folder>/new_giza.inv

For example:

~/mosesdecoder/scripts/training/train-model.perl -root-dir <your training directory> \
 -corpus <your new corpus name>                             \
 -f <src> -e <tgt> -alignment grow-diag-final-and -reordering msd-bidirectional-fe \ 
 -lm 0:3:<path to LM>:8                          \
--first-step 4  --last-step 7 --giza-f2e -- <path to folder>/new_giza.fwd --giza-e2f -- <path to folder>/new_giza.inv \
 -external-bin-dir <path to giza++ binaries>

For more details on the training step read this: http://www.statmt.org/moses/?n=FactoredTraining.TrainingParameters

What this does is assumes that you have alignments and continue the phrase extraction, reordering and generate the new moses.ini file.

WARNING: Specify the filenames and paths properly OR IT WILL FAIL.

 

If you are still unclear then please ask and I will try to help you as much as I can.

Regards.

 

 

 

On Tue, Nov 4, 2014 at 6:09 PM, Ihab Ramadan <[email protected]> wrote:

Dear Raj,

That’s a great work my friend,

This files make the script work but it takes long time to finish also it did not generate the model folder which contain the moses.ini file

Is this normal?

And I now try to run it again as I suspect that the server was shut down before the training was completed but i notice that it starts form the beginning and did not use the existing files generated

Thanks Raj it still a great work

 

 

From: Raj Dabre [mailto:[email protected]]
Sent: Thursday, October 30, 2014 4:54 PM


To: [email protected]
Cc: [email protected]
Subject: Re: [Moses-support] Incremental training

 

Ahh.... i totally forgot that part.

Sorry.

PFA.

Just place them in the folder where the shell scripts full_train.sh and align_new.sh are.

Hopefully it should run now.

Please let me know if you succeed.

 

On Thu, Oct 30, 2014 at 11:44 PM, Ihab Ramadan <[email protected]> wrote:

Dear Raj,

It is a great solution

I installed MGIZA++ successfully and I am using your scripts to run training

And I followed the steps you mentioned but I faces this error when I was running the full_train.sh script

 

bla bla  bla

.

.

.

.

 

Starting MGIZA

Initializing Global Paras

DEBUG: EnterDEBUG: PrefixDEBUG: LogParsing Arguments

ERROR:  Cannot open configuration file configgiza.fwd!

Starting MGIZA

Initializing Global Paras

DEBUG: EnterDEBUG: PrefixDEBUG: LogParsing Arguments

ERROR:  Cannot open configuration file configgiza.rev!

 

 

This two files does not exists

should they be generated from the installation?

How to get them?

 

From: Raj Dabre [mailto:[email protected]]
Sent: Sunday, October 26, 2014 6:21 PM
To: [email protected]
Cc: [email protected]
Subject: Re: [Moses-support] Incremental training

 

Hello Ihab,

It is very easy to use.

I also wrote some scripts to make it easy for training.
Visit the link below for my scripts.
https://drive.google.com/folderview?id=0B2gN8qfxTTUoSU43OFBhZXpPZ3M&usp=sharing

Usage:

To train basic IBM models:
bash full_train.sh <src_corpus_file_name> <tgt_corpus_file_name> <model_folder_base> <corpus_folder_base> <path_to_mgizapp_installation>

To align 2 new files using previously trained models (aka continue training).

bash align_new.sh <new_src_corpus_file_name> <new_tgt_corpus_file_name> <old_src_corpus_file_name> <old_tgt_corpus_file_name> <model_folder_base> <corpus_folder_base> <path_to_mgizapp_installation>

There is also a python script which you had better replace in the scripts folder of mgiza++. I have modified it to work with my scripts.

Hope this helps.

 

 

On Sun, Oct 26, 2014 at 11:05 PM, Ihab Ramadan <[email protected]> wrote:

Dear All,

I just need a clear steps on how to do incremental training in moses, as the illustration in the manual is not cleared enough

Thanks

 

Best Regards

Ihab Ramadan| Senior Developer| Saudisoft - Egypt | Tel  +2 02 330 320 37  Ext- 0 | Mob+201007570826 | Fax+20233032036 | Follow us on linked | ZA102637861 | ZA102637858

 


_______________________________________________
Moses-support mailing list
[email protected]
http://mailman.mit.edu/mailman/listinfo/moses-support




--

Raj Dabre.
Research Student,

Graduate School of Informatics,
Kyoto University.

CSE MTech, IITB., 2011-2014




--

Raj Dabre.
Research Student,

Graduate School of Informatics,
Kyoto University.

CSE MTech, IITB., 2011-2014




--

Raj Dabre.
Research Student,

Graduate School of Informatics,
Kyoto University.

CSE MTech, IITB., 2011-2014

_______________________________________________
Moses-support mailing list
[email protected]
http://mailman.mit.edu/mailman/listinfo/moses-support

Reply via email to