ã¯ããã«
æè¿æ©æ¢°åŠç¿ç±ããããã®æ³¢ã«ä¹ããããªãšããããšã§ãå€§åŠæä»£ã«è¥å¹²è§ŠããŠããèªç¶èšèªåŠçã®ç¥èãçãããŠãã¿ã€ãã«ã®éãGoogle翻蚳ã®ãããªæ©æ¢°ç¿»è𳿩ãäœæããŠã¿ãŸããã
çµæãããŒãžãããã®ã¢ãã¡ãŒã·ã§ã³ã®ãããªåäœããã翻蚳æ©ãäœããŸãããã翻蚳粟床ã¯googleç¿»èš³ã«æšæã§ãããã©ãããžããæšæã ã£ãã®ãã¯æåŸã®ãŸãšãã§ã¡ãã£ãšã ãè§ŠããŸãã
çµæçã«ã¯æšæã ã£ãã®ã§ãããèªåãäœã£ãã¢ãã«ã§ç¿»èš³ã§ããç¬éã¯ãšãŠãå¬ããã£ãã®ã§ãèªåã®åäŸã®ãããªååšãçã¿åºãåã³ã誰ãã«å ±æããŠããã ãããæããæ©æ¢°ç¿»èš³æ©ãäœæããŠåŸãèªç¶èšèªåŠç(ã»ãŒç¿»èš³)ã«é¢ããç¥èŠãšãã®æ¹æ³ããŸãšããŠã¿ãŸããïŒ
èªç¶èšèªåŠçãšãããªããªãã«é£ãããžã£ã³ã«ãªã®ã§ãéäžç ãããªããããªèª¬æãæ°åŒãäžå¿ç޹ä»ããããŸããã ãã®èšäºã®ãŽãŒã«ã¯ãªãªãžãã«ãªç¿»èš³ã¢ãã«ãäœæãäžã®ã¢ãã¡ãŒã·ã§ã³ã®ããã«ã¿ãŒããã«(é»ãç»é¢ã®ãã€)äžã§ç¿»èš³ãè¡ãããšã§ãïŒ
ãªã®ã§ã説æãšãè¯ãããæ©ãèªåã§äžéãäœãããŠïŒãšããæ¹ã¯èšäºã®æåŸã®æ¹ãŸã§ã¹ã¯ããŒã«ãã¡ãã£ãŠãã ããã
â»ã¡ãªã¿ã«èšäºäžã§ç޹ä»ããŠãããªã³ã¯å
ã¯å人çã«èª¬æãåããããããšæã£ããµã€ãããããããŠããã ããŠããŸãã
â»åãããªã¥ãŒããŒãªå
容ã«ãªã£ãŠããŸã£ãã®ã§ç®æ¬¡ãèŠãŠæ°ã«ãªãéšåã ãæŸãèªã¿ããŠãã ããã
ç®æ¬¡
1.ããããæ©æ¢°ç¿»èš³ã£ãŠ
2.ã«ãŒã«ããŒã¹æ©æ¢°ç¿»èš³
3.çµ±èšçæ©æ¢°ç¿»èš³
4.ããããäœæ¥éå§
5.èªäœããã¢ãã«ãçšãã翻蚳ã®å®è¡
6.ãŸãšã
1.ããããæ©æ¢°ç¿»èš³ã£ãŠ
ã¿ãªãããæãã倧å€ãäžè©±ã«ãªã£ãŠããã§ããããgoogle翻蚳ãyahoo翻蚳ãšãã£ããäœãããã®èšèªãå ¥åãããæå®ããèšèªã®ç¿»èš³çµæãåºåããŠããããã®ãµãŒãã¹ã«çšããããŠããæè¡ã®ããšã§ãã
ããŒã¿ã€ã ã§å
¥åã«å¯Ÿããç¿»èš³çµæãåãåºããŠããããã®ãµãŒãã¹ãåœããåã§ãã人éãã¬ã¹ãã³ã¹ãè¿ããŠããã®ã§ã¯ãªããå
¥åã«å¯ŸããŠå°€ããããçããæ©æ¢°ãã¬ã¹ãã³ã¹ããŠãããŠããŸãã
ã€ãŸãæ©æ¢°ç¿»èš³ãšã¯ãã®åã®éãã人æã«ãã翻蚳ã§ã¯ç¡ããæ©æ¢°ãè¡ã£ãŠããã翻蚳ã®ããšã§ããïŒ
ãããŠãçŸåšãµãŒãã¹ãšããŠæäŸãããŠããæ©æ¢°ç¿»èš³ã®æè¡ã®ææ³ãšããŠã¯äž»ã«ãã«ãŒã«ããŒã¹ã®ç¿»è𳿿³(RBMT)ãšçµ±èšããŒã¹ã®ç¿»è𳿿³ã®2ã€ããããŸãã
2ã€ã®ç¿»è𳿹åŒã®éããšã¡ãªãããã¡ãªãããæ¬¡ã§ç°¡åã«èª¬æèŽããŸãã
2.ã«ãŒã«ããŒã¹æ©æ¢°ç¿»èš³(RBMT: Rule Base Machine Translation)
ã«ãŒã«ããŒã¹ç¿»èš³ãšã¯ãåèšèªãæ§æè§£æããŠææ³æ§é ãææ¡ããåŸãèŸæžãçšããŠæç¯åäœã§ç®çèšèªãžç¿»èš³ããæåŸã«ç®çèšèªã®ææ³ãžç¿»èš³ããæååã䞊ã³å€ããæ¹æ³ã§ãã
æåã§èª¬æãããšè¯ãåãããªãã®ã§ãããå®éã«ãã£ãŠããäœæ¥ã¯åçŽã§ä»¥äžã§èª¬æããéãã§ãïŒ
ïŒäŸïŒãç§ã¯ãµãã«ãŒãããŸãããšããå
¥åã®æ
â æç¯åäœã«æãåºåããŸãã
ãç§ã¯ / ãµãã«ãŒã / ããŸã
â¡æç¯éã®ä¿®é£Ÿé¢ä¿(ä¿ãåãæ§é )ãææ¡ããŸãã
ãç§ã¯ããã => ããŸã(äž»èªãšåè©)
ããµãã«ãŒã => ããŸã(ç®çèªãšåè©)
ããã®ä¿®é£Ÿé¢ä¿ãåºãããšã§ä»¥äžã®ãããªæ§ææ§é ã«ãªã£ãŠããããšãããããŸãã
ãç§ã¯(äž»èª)ã/ããµãã«ãŒã(ç®çèª)ã/ ããŸã(åè©)
ã
â¢æ¬¡ã«ãããããã®æç¯ãèŸæžãçšããŠç¿»èš³ããŸãã
ãç§ã¯ => I / ãµãã«ãŒã => soccer / ããŸã => play
â£æåŸã«è±èªã®æ§æã«ãŒã«ã«åŸãæç¯ã®äžŠã³æ¿ããè¡ããŸãã
ãI play soccer (S + V + O)
ã
ããããŠä»¥äžã®ãããªç¿»èš³çµæãæ±ãŸããŸãã
ãç¿»èš³çµæ : I play soccer
ã¡ãªãã
- 倧éã®åŠç¿ããŒã¿ãå¿ èŠãšããªãã
- å ¥åã®ãžã£ã³ã«ã«åãããèŸæžãçšããäºã§ç¿»èš³ç²ŸåºŠãåäžããããšãå¯èœã§ããã
- èšèªã«ãŒã«ãšææ³ã«ãŒã«ãšèŸæžããããã°ã©ããªèšèªã§ãå²ãšå®å®ããçµæãæ±ããããã
- ç ç©¶æéãé·ãèŸæžãå å®ããŠããã®ã§ãã¡ãžã£ãŒãªèšèªã ãšé«ã粟床ã§çµæãæ±ãŸãã
ãã¡ãªãã
- èŸæžèªäœã¯ç¿»èš³å®¶ã«ããäœæãããã®ã§ã³ã¹ããé«ããªãã
- ãã€ããŒãªèšèªã ãšå¯Ÿå¿ãé£ããã
- æ¢ã«ç¿»èš³çµæã®ç²ŸåºŠåäžã«éçãæ¥ãŠãã説ãããã
3. çµ±èšçæ©æ¢°ç¿»èš³(SMT: Statistical Machine Translation)
çµ±èšçæ©æ¢°ç¿»èš³ãšã¯ãåèšèªãšç®çèšèªã®å¯Ÿèš³æããæå³çãªç䟡æ§ããç®çèšèªãããã®èšèªããããåŠç¿ããŠç¢ºçã¢ãã«ãäœæããäœæããã¢ãã«ããæå³çãªç䟡æ§ãšç®çèšèªãããã®ç¢ºçãæå€§ãšãªããããªæãç¿»èš³çµæãšããŠåºåããææ³ã§ãã
è¯ãããããªã人ã®ããã«åããã£ãã説æãããšã倧éã®å¯Ÿèš³æãéããŠããã®æããç®çèšèªã®èšèªã«ãŒã«ãšææ³ã«ãŒã«ãäœã£ãŠãå
¥åã«å¯ŸããŠããããã®ã«ãŒã«ãããæãã«æºããæãããã£ãœãçããç¿»èš³çµæãšããŸãããïŒãšããæãã§ããïŒãã®å€§éã®å¯Ÿèš³æãã確çã¢ãã«ãäœæããããšãåŠç¿ãšãããŸãã
ä»åã¯ããã¡ãã®çµ±èšçæ©æ¢°ç¿»è𳿿³ãçšããŠç¿»èš³ãè¡ãã®ã§ã詳现ã以äžã§ãã£ãã説æããŸãã
翻蚳確ç
ãŸãã翻蚳ãè¡ãäžã§èã«ãªã確çã¢ãã«ã®èª¬æãããŸã!
åèšèªãfãç®çèšèªãeã翻蚳確çãe(hat)ãšãããšä»¥äžã®ããã«è¡šããŸãã
\hat{e} = argmax_{e}P(e\ |\ f)
ãã®åŒããã€ãºã®å®çãçšããããšã«ãã以äžã®ãããªåŒã«å€åœ¢ã§ããŸãã
\hat{e} = argmax_{e}{P(f\ |\ e)}{P(e)}
ããã§è¡šãããP(f|e)ã¯ç¿»èš³ã¢ãã«ããP(e)ã¯èšèªã¢ãã«ã衚ããŠããŸãã
ã€ãŸããçµ±èšçææ³ãçšãã翻蚳ã§ã¯ãP(f|e)P(e)ãæå€§åããè§£ãå°€ããããç¿»èš³çµæãšããŠåºåããŸãã
èšèªã¢ãã«
次ã«ç¿»èš³ã«çšããããèšèªã¢ãã«ã説æããŸãïŒ
èšèªã¢ãã«ãšã¯äžèšã§è¡šããšã人éãçšããã§ããããèšèããããã確çãšããŠã¢ãã«åãããã®ã§ããå
·äœçã«èª¬æãããšãããåèªã®åŸã«ã¯ãšãããªåèªããçŸãããããšãã確çãç®çèšèªæããåŠç¿ããŠããŸãïŒ
N-gramèšèªã¢ãã«ã§ã¯ãæååã®Nçªç®ã«æ¥ãåèªã¯N-1ååã®åèªã«äŸåããŠãããšãã颚ã«ã¿ãªããŠããŸããããã¯ä»¥äžã®åŒã®ããã«è¡šãããŸãã
P(e) = \prod_{i=1}^{N}P(t_i|t_{i-n+1},t_{i-n+2},...,t_{i-1} )
翻蚳ã¢ãã«
翻蚳ã¢ãã«ã¯åèšèªãšç®çèšèªã®æå³çãªç䟡æ§ã確ççã«è¡šããã¢ãã«ã®ããšã§ãïŒ
翻蚳ã¢ãã«ã®ç¢ºçã¯äž¡èšèªã®ãã¬ãŒãºã®å¯Ÿå¿(ã¢ã©ã€ã¡ã³ã)ãšããã¬ãŒãºã®ç¿»èš³ç¢ºçã«ããæ±ºå®ãããŸãã
ããã§ã¢ã©ã€ã¡ã³ãaãäžããããŠãããšãããšç¿»èš³ç¢ºçP(f|e)ã¯ä»¥äžã®ãããªåŒã§è¡šãããšã§ããŸãã
\begin{aligned}
P(f|e) & = \sum_{a}P(f , a\ |\ e)\\
& = \sum_{a}P(f\ |\ e,a)P(a\ |\ e)
\end{aligned}
ã¢ã©ã€ã¡ã³ãã¯ãªãªãŒã¿ããªã³ã¯ãã¢ããã«ããã¬ãŒã¹ãã®ç¿»èš³ç¢ºçã¯ãã¬ãŒã¹ãããŒããã«ã«æ ŒçŽãããŸãã
ããã®çè§£ããšãŠãéèŠãšåèæžã«ã¯æžããŠãããŸããè¯ãäºäŸããªããŠçè§£ãé£ãã...ã
ãšãããããããã§ã¯ãããããã®ãªãã ãªïŒãšå²ãåã£ãŠå
ã«é²ããŸãïŒ
ã¡ãªãã
- 人æã«ããèŸæžäœæã®å¿ èŠããªãã
- èšèªã«äŸåããäºãªãã¢ãã«ãäœæã§ããã
- å²ãšæ°ããã®æè¡ãªã®ã§ç ç©¶ãçãã§ããã
- å®äŸ¡ã«é«éã«ç¿»èš³ãã§ããã
ãã¡ãªãã
- åŠç¿çšã®å€§éã®å¯Ÿèš³æãå¿ èŠã§ããã
- åŠç¿ããŒã¿ã«æªç¥èªãååšãããšç¿»èš³ç²ŸåºŠãäœããªãã
ãªããšèšã£ãŠããçµ±èšçæ©æ¢°ç¿»è𳿿³ã¯äººæã«ããèŸæžäœæã®å¿ èŠããªããããã³ãŒãã¹ããæºåããããšãåºæ¥ãã°èšèªã«äŸåããäºãªã翻蚳ã¢ãã«ãäœæã§ãããšããã«å©ç¹ããããšæããŸãïŒ
4.ããããäœæ¥éå§
説æãé·ããªããŸããããããããå®éã«ã³ã³ãœãŒã«äžã§è¡ãäœæ¥ã説æèŽããŸãïŒ
ä»åã®äœæ¥ã¯ãMoses(ã¢ãŒãŒ)ãšãã翻蚳ã¢ãã«ãšèšèªã¢ãã«ããç¿»èš³çµæãåºåãããã³ãŒããçšããŠè¡ããŸãïŒ
åºæ¬çã«Mosesã®ããã¥ã¢ã«ã«äœæ¥æ¹æ³ã¯æžããŠããã®ã§ããã¡ãã«æºããŠè¡ã£ãŠãããŸãã
ç°å¢æ§ç¯
ä»®æ³ç°å¢ã®æºå (Vagrant, Ubuntu 14.04)
ãŸãä»®æ³ç°å¢ãæºåèŽããŸãïŒ
ããŒã«ã«ã§ãäœæ¥ã§ããã®ã§ãããç°å¢æ§ç¯ãé£ããäœåºŠãããçŽããããªãè¡åã«é§ããããšæãã®ã§æåããä»®æ³ç°å¢ã§è¡ãããšããå§ãèŽããŸãïŒ
Ubuntu 14.04ãçšããŸãããçç±ã¯ç¹ã«ç¡ãã§ãã
以åŸãUbuntuç°å¢ã§ã®ã»ããã¢ããæ¹æ³ã«ã€ããŠèª¬æããŠãããŸãããä»ã®OSã§è¡ãããå Žåã¯ããã¥ã¢ã«ãåç
§ããŠããããã®ç°å¢ã«åãããŠã»ããã¢ãããè¡ã£ãŠãã ããã
$ mkdir ~/nlp
$ cd ~/nlp
$ vagrant init
$ vagrant box add nlp https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box
15: config.vm.box = "base"
=> config.vm.box = "nlp"
51: #vb.memory = "1024"
=> vb.customize ["modifyvm", :id, "--memory", "4096"]
以äžã®ããã«Vagrantfileã®è©²åœè¡æ°ã®æžãæããè¡ãªã£ãŠãã ããã
ã¡ãªã¿ã«4096ãšããæ°åã¯ã¡ã¢ãª4Gã衚ããŠããã®ã§ãããã¢ãã«ã®åŠç¿ã«ã¯ããããšã¡ã¢ãªãæ¶è²»ããã®ã§ããããã䜿çšã§ããã¡ã¢ãªãç¡ããšãªããªãå³ãããããããŸããã
ã©ãããŠãããŒãçã«æ§èœãå£ãå Žåã¯ãAmazon AWSã®AMIãæºåãããŠããã®ã§ãã¡ãã䜿ã£ãŠè¡ã£ãŠã¿ãŠãã ããïŒ
ãããŸã§èšè¿°åºæ¥ããããšã¯ä»¥äžã®ããã«vagrantãèµ·åããŠãã ããã
$ vagrant up
$ vagrant ssh
Mosesã®ã€ã³ã¹ããŒã«
äžçªæåã«ã翻蚳ã¢ãã«ãšèšèªã¢ãã«ããç¿»èš³çµæãåºåãããã³ãŒãã®åœ¹å²ãããMosesã®ã€ã³ã¹ããŒã«ãè¡ããŸããã¡ãªã¿ã«Ubuntuç°å¢ã§ã¯boostãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãããç°å¢ã«ãã£ãŠã¯ãã®boostã®ã€ã³ã¹ããŒã«ã¯å¿
èŠãªãããã§ãïŒ
ã¡ãªã¿ã«ãã®Mosesãåäœãããäºãäžçªã®ããŒãã«ã§ãã...ã
æªæŠèŠéããŸãããæçµçã«ããŸããã£ãæ¹æ³ãäžã§èª¬æããŸãã
# Mosesã®åäœã«å¿
èŠãªããã±ãŒãžã®ã€ã³ã¹ããŒã«
$ sudo apt-get install build-essential git-core pkg-config automake libtool wget
zlib1g-dev python-dev libbz2-dev
# Mosesã®ã³ã³ãã€ã«ã«å¿
èŠãªboostã®ã»ããã¢ãã
(boostç¡ãã§Mosesãã³ã³ãã€ã«ããããšããããlibboost_serialization.so.1.59.0: cannot open shared object file: No such file or directoryãšæãããã)
$ cd ~
$ wget http://downloads.sourceforge.net/boost/boost_1_59_0.tar.bz2
$ tar jxvf boost_1_59_0.tar.bz2
$ cd boost_1_59_0
$ ./b2 -j4 --prefix=$PWD --libdir=$PWD/lib64 --layout=system link=static install || echo FAILURE
# Mosesã®ã»ããã¢ãã
$ git clone https://github.com/moses-smt/mosesdecoder.git
$ cd mosesdecoder
$ ./bjam --with-boost=$HOME/boost_1_59_0 -j4
boostãèªåã§ã»ããã¢ããããå Žåã¯ãboostã®ãã¹ãæå®ããŠã³ã³ãã€ã«ããŠãããå¿ èŠããããŸããããšwarningãæ²¢å±±åºããšæããŸãããerrorãåºãªããã°äžäºOKã§ãïŒ
æåŸã«ä»¥äžã®æ§ã«ãã¹ãããŠãç¡äºåºåãåŸãããã°Mosesã®ã»ããã¢ããå®äºã§ãïŒ
ãã®ãã¹ãã§ã¯ãµã³ãã«ãšããŠæäŸãããŠããè±èªã®èšèªã¢ãã«ãšç¬è±ã®ç¿»èš³ã¢ãã«ãåç
§ãããã€ãèªã®å
¥åãè±èªã«ç¿»èš³ããŠããŸãã
$ cd ~
$ wget http://www.statmt.org/moses/download/sample-models.tgz
$ tar xzf sample-models.tgz
$ cd sample-models
$ ~/mosesdecoder/bin/moses -f phrase-model/moses.ini <phrase-model/in> out
# 以äžã®æååãåŸãããŠããã°ç¡äºã»ããã¢ããå®äº
This is a house
åŠç¿ã«çšããæ¥è±ãã©ã¬ã«ã³ãŒãã¹ã®å å·¥
次ã«åŠç¿ã«å¿ èŠãªæ¥è±å¯Ÿèš³ã³ãŒãã¹ã®å å·¥ãè¡ããŸãããã®ãã©ã¬ã«ã³ãŒãã¹ãèŠã€ããããšããªããªãé£ããã®ã§ããããã®ãã©ã¬ã«ã³ãŒãã¹ã®å 容ã«ç¿»èš³ç²ŸåºŠã倧ãã圱é¿ãåããŠããŸãã®ã§é 匵ã£ãŠäœ¿çšå¯èœãªã³ãŒãã¹ãæ¢ããŠã¿ãŠãã ããïŒ
ãã©ã¬ã«ã³ãŒãã¹ã®æºå
ã¡ãªã¿ã«åã¯æ¥è±äº¬éœé¢é£ææžã³ãŒãã¹ã䜿çšãããŠããã ããŸããïŒ
ãæ¬ãµãŒãã¹ã§äœ¿çšããŠãã[ããŒã¿]ã¯Wikipediaã®æ¥æ¬èªæãåœç«ç ç©¶éçºæ³äººæ å ±éä¿¡ç ç©¶æ©æ§ãè±èš³ãããã®ããCreative Comons Attribution-Share-Alike License 3.0ã«ããå©çšèš±è«Ÿã®ããšäœ¿çšããŠãããŸãã詳现ã¯http://creativecommons.org/licenses/by-sa/3.0/ããã³http://alaginrc.nict.go.jp/WikiCorpus/ãã芧äžãããã
æ¥è±äº¬éœé¢é£ææžã³ãŒãã¹ã®ã¯.xmlãã¡ã€ã«ã«å¯Ÿèš³æã衚èšãããŠããŸãã®ã§ãjã¿ã°ã®ãã®ãwiki.en-ja.jaãžãe type="check"ã¿ã°ã®ãã®ãwiki.en-ja.enãžããããã以äžã®ç»åã®ããã«ã¿ã°å ã®æååã ãæãåºããŠãã ãããããŸãæãåãããšãåºæ¥ãã°ãçŽ50äžæã®å¯Ÿèš³æãã§ãããšæããŸãïŒ
1: æ¥æ¬ã®æ°Žå¢šç»ãäžå€ãããã
2: åäžåœã«çãŸãã京éœã»çžåœå¯ºã«å
¥ã£ãŠããåšé²åœã«ç§»ãã
3: ãã®åŸé£æäœ¿ã«éè¡ããŠäžåœ(æ)ã«æž¡ã£ãŠäžåœã®æ°Žå¢šç»ãåŠãã ã
4: äœåã¯æ°å€ããäžåœé¢šã®å±±æ°Žç»ã ãã§ãªã人ç©ç»ãè±é³¥ç»ãããããã
5: 倧èãªæ§å³ãšå匷ãçç·ã¯éåžžã«åæ§çãªç»é¢šãäœãåºããŠããã
# 以äžçŽ50äžè¡ç¶ã
1: He revolutionized the Japanese ink pointing.
2: Born in Bicchu Province, he moved to Suo Province after SShoku-ji Temple in Kyoto
3: Later he accompanied a mission to Ming Dynasty China and learned Chinese ink pointing.
4: His works were many, including not only Chineses-style landscape paintings, but also portraits and pictures of flowers and birds.
5: His bold compositions and strong brush strokes constituted an extremly distinctive style.
# 以äžçŽ50äžè¡ç¶ã
ãããã®ãã¡ã€ã«ã以äžã®æ§ã«äœæããcorpusãã£ã¬ã¯ããªã®äžã«æ ŒçŽããŸãã
vagrantã®å
±éãã£ã¬ã¯ããªãå©çšããŠãã¡ã€ã«ã®åãæž¡ããè¡ã£ãŠããŸãã
$ mkdir ~/corpus
$ mv /vagrant/wiki.en-ja.ja /vagrant/wiki.en-ja.en ~/corpus
æãåŠç¿ã«é©ãã圢ã«å å·¥ãã
次ã«ããã©ã¬ã«ã³ãŒãã¹ããååŸããæãåŠç¿ã«é©ãã圢ã«ããããã«ã以äžã®3ã¹ããããè¡ããŸãã
- tokenisation : æãåèªåºåãã«ããã
- lowercasing : åèªã®å°æåå
- cleaning : åèªæ°ã80æå以äžã®æã¯ç²ŸåºŠãäœããªãã®ã§åãé€ãã
ãŸããtokenisationãè¡ããŸãã
è±èªã¯mosesã«å
ã
å
¥ã£ãŠããã¹ã¯ãªããã䜿çšããæ¥æ¬èªã®å å·¥ã«ã¯mecabã䜿çšããŸãã
mecabãå
¥ã£ãŠããªãæ¹ã¯apt-getã§èŸæžãšäžç·ã«ã€ã³ã¹ããŒã«ããŠãã ããã
# è±èªã®ããŒã¯ã³å
$ ~/mosesdecoder/dist/tokenizer.perl -l en <~/corpus/wiki.en-ja.en> ~/corpus/wiki.en-ja.tok.en
# æ¥æ¬èªã®ããŒã¯ã³å
$ mecab -O wakati < ~/corpus/wiki.en-ja.ja > ~/corpus/wiki.en-ja.tok.ja
åŠç¿ã®éã«è±èªã®å€§æåãšå°æåãæ··åšããŠãããšå¥ã®ããŒã¯ã³ãšããŠæ±ãããŠããŸãã®ã§ãéåžžã§ããã°ããŒã¯ã³ã®å€§æåã»å°æåã倿°æ±ºã§æ±ºããtruecasingãè¡ããŸãããtruecasingãè¡ãããã®ã¢ãã«ãç¡ãã®ã§ãä»åã¯å šéšå°æåã«åãããlowercasingãè¡ããŸãïŒ
# è±èªã®å°æåå
$ ~/mosesdecoder/scripts/tokenizer/lowercase.perl <~/corpus/wiki.en-ja.tok.en> ~/corpus/wiki.en-ja.low.en
# äžå¿æ¥æ¬èªãå°æåå
$ ~/mosesdecoder/scripts/tokenizer/lowercase.perl <~/corpus/wiki.en-ja.tok.ja> ~/corpus/wiki.en-ja.low.ja
ãããŠæåŸã«ãåŠç¿ã¢ãã«ã®ç²ŸåºŠããããããã®cleaningãè¡ããŸãã
$ cd ~/corpus
$ ~/mosesdecoder/scripts/training/clean-corpus-n.perl wiki.en-ja.low ja en wiki.en-ja.clean 1 80
以äžã§ã³ãŒãã¹ã®å å·¥ã¯çµäºã§ãïŒ
èšèªã¢ãã«ã»ç¿»èš³ã¢ãã«ã®åŠç¿
ãããŸã§ããŠããã£ãšã¢ãã«ã®åŠç¿ã«å
¥ãããšãã§ããŸãïŒ
æåã«ãèšããŸããããã¢ãã«ã®åŠç¿ã¯ãã¡ã¢ãªã®æ¶è²»éãæ¿ããã®ã«ãã©ã¹ããŠçµæ§ãªæéãå¿
èŠãšããã®ã§ãããœã³ã³ã䜿çšããªãæŸçœ®ã§ããæéã«ã³ãã³ããå®è¡ããããšãæšå¥šããŸãã
倧äœã§ãããåã®ç°å¢ã§50äžæã®ã³ãŒãã¹ãçšããå Žåã«ãèšèªã¢ãã«ã®åŠç¿ã«20åã翻蚳ã¢ãã«ã®åŠç¿ã«3æéãèŠããŸããã
èšèªã¢ãã«ã®åŠç¿
èšèªã¢ãã«ãåŠç¿ããããœãããŠã§ã¢ãšããŠãIRSTLMãSRILMãªã©ãæåã§ãã
ãããã®ãœããã¯7-gramã¢ãã«ãäœæã§ããããã©ã€ã»ã³ã¹ãæè»ãªã©ã®ã¡ãªããããããŸãããç¹ã«ä»åã¯ãããŸã§ã®æ©èœãå¿
èŠãšããªãã®ã§ãMosesä»å±ã®KenLMãçšããŠã5-gramã®èšèªã¢ãã«ã80%ã®ã¡ã¢ãªã䜿çšããŠäœæããŸãã
$ ~/mosesdecoder/bin/lmplz -o 5 -S 80% -T ./ < ~/corpus/wiki.en-ja.low.ja > wiki.en-ja.arpa.ja
翻蚳ã¢ãã«ã®åŠç¿
æåŸã«ç¿»èš³ã¢ãã«ã®åŠç¿ãè¡ããŸãïŒ
翻蚳ã¢ãã«ã®åŠç¿ã§ã¯äž»ã«ãgiza++ãçšããã¯ãŒãã¢ã©ã€ã¡ã³ããããã¬ãŒãºã®ã¹ã³ã¢ãªã³ã°ããã¬ãŒãºããŒãã«ã®äœæãªã©ãè¡ããããã³ãŒãã®éã«ããããåç
§ããMosesã®èšå®ãã¡ã€ã«ãäœãåºãããŸãã
# ã¯ãŒãã¢ã©ã€ã¡ã³ãã«å¿
èŠãªgiza++ã®ã»ããã¢ãã
$ git clone https://github.com/moses-smt/giza-pp.git ~/
$ cd ~/giza-pp
$ make
# mosesããgiza++ãåç
§ã§ããããã«ãã€ããªãã¡ã€ã«ãäœæãã³ããŒããã
$ cd ~/mosesdecoder
$ mkdir tools
$ cp ~/giza-pp/GIZA++-v2/GIZA++ ~/giza-pp/GIZA++-v2/snt2cooc.out ~/giza-pp/mkcls-v2/mkcls tools
# 翻蚳ã¢ãã«ã®åŠç¿(çŽ3æé)
$ mkdir ~/work
$ cd ~/work
$ ~/mosesdecoder/scripts/training/train-model.perl --root-dir ./ --corpus ~/work/corpus/wiki.en-ja.clean --f en --e ja --lm 0:5:$HOME/corpus/wiki.en-ja.arpa.ja
翻蚳ã¢ãã«ã®åŠç¿ãå®äºããåŸãworkãã£ã¬ã¯ããªã®äžã«ãgiza.en-jaãgiza.ja-enãmodelã®ãã£ã¬ã¯ããªãååšããmodel/moses.iniãåºæ¥ãŠããã°å®æã
5.èªäœããã¢ãã«ãçšãã翻蚳ã®å®è¡
moses.iniã®èšå®ãã¡ã€ã«ã宿ãããšå
ã»ã©äœæããèšèªã¢ãã«ãšç¿»èš³ã¢ãã«ãåç
§ããæ©æ¢°ç¿»èš³ãè¡ãããšãã§ããŸãïŒ
ãã®æ¹æ³ã§ããæåã«ãã¹ãããæãšåæ§ã«moses.iniåŒæ°ã«æå®ããmosesã³ãã³ããå®è¡ããŸãã
ã€ã³ã¹ããŒã«ããåŒã£ããããã¢ãã«ã®äœæã«ããããšæéãããããèŠåŽããŠèŠåŽããŠãããŸã§èŸ¿ãã€ããã®ã§ç«ã¡äžãã£ãæã¯ãããå¬ããã§ãïŒïŒ
以äžã®gifãå®è¡ããŠããæ§åã§ãïŒ
"my name is sesshu"ã«å¯Ÿãã"ç§ã®åã¯éªè"ãåŸããã"this is a house"ã«å¯Ÿãã"ããã¯å®¶"ãåŸãããŠããŸãïŒ
ç¡äºç¿»èš³ã§ãã翻蚳確çãæ±ããããŠããããšã確èªã§ããŸãïŒ
6.ãŸãšã
ããŸããã£ãäŸã ã玹ä»ããŸããããæªç¥èªãåºãŠããå Žåãå
¥åã«å€§æåãæ··ãã£ãŠããå Žåã«ããŸã翻蚳ã§ããªãããšãå€ã
ãããŸããã
ããšãåŠç¿ããŒã¿ã京éœã®å²ãšç¡¬æŽŸãªææžã ã£ãããšããããèšãåããæ®éã®äººã話ãèšèã§äœ¿ããªããããªèšãåãã䜿ã£ãŠããŸããã
翻蚳粟床ã®åäžæ¹æ³ã®1ã€ã«åçŽã«ã³ãŒãã¹ã®éã圱é¿ããŠããããããã®ã§ãäŸãã°è©±èšèãå«ãŸãããã©ã¬ã«ã³ãŒãã¹ã远å ããŠå床åŠç¿ãçŽããŠã¿ããšãã£ãšå€æ§ãªèšãåãã«å¯Ÿå¿ãã翻蚳ãè¡ããããããããªãã§ããïŒgoogleãšã®å§åçãªéãã¯åŠç¿ã«çšããããã³ãŒãã¹ã®éã®å·®ã«ããããšæããŸãã(ä»ã«ããŸã ãŸã 沢山ã®èŠå ããããŸãã)
ã¡ãªã¿ã«ããã®Mosesã¯xml-rpcã䜿çšããããšã§webãµãŒããšããŠåäœãããããšãå¯èœã§ãïŒ
ãªã®ã§ããã©ã¬ã«ã³ãŒãã¹ãç¬èªã«éããåŠç¿ã«çšããããšã§ãã人ã¯èªåã®ãµãŒãã¹ã«çµã¿èŸŒãããšãå¯èœã«ãªããŸããïŒ
ä»ã«ãMosesãæ§ã ãªåœ¢ã§äœ¿çšã§ããããã«ãªãã·ã§ã³ãæŽåãããŠããã®ã§ãèå³ãããæ¹ã¯ããã¥ã¢ã«ã確èªããŠã¿ããšè¯ãããšæããŸãïŒ
ã¢ããã³ãã«ã¬ã³ããŒãæ©ããã®ã§æ®ããããš3æ¥ã§ããïŒ
ããã°ã©ãã³ã°å€§å¥œãããŒã·ãã¯ã®ã¢ããã³ãã«ã¬ã³ããŒãææ¥ã¯ãkakizakiããã§ãïŒ
é·ããªããŸããããæåŸãŸã§ãèªã¿é ãããããšãããããŸãïŒïŒ
