<p>nltk.translate.bleu_score рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ рдЬрдм ngram рджрд┐рдП рдЧрдП рд╡рд╛рдХреНрдп рдХреЗ рдЕрдзрд┐рдХрддрдо ngrams рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ</p>

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рджрд┐рд╕ре░ 2016  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: nltk/nltk

рджрд┐рдпрд╛ рдЧрдпрд╛ рд╡рдЬрди = [0.25, 0.25, 0.25, 0.25, 0.25] (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди),
рд╡рд╛рдХреНрдп_рдмреНрд▓реВ ([['рдП', 'рдмреА', 'рд╕реА']], ['рдП', 'рдмреА', 'рд╕реА']) = 0
рдЬрдмрдХрд┐ рд╡рд╛рдХреНрдп_рдмреНрд▓реВ ([['рдП', 'рдмреА', 'рд╕реА']], ['рдП', 'рдмреА', 'рдбреА']) = 0.7598
рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓рд╛ рд╕реНрдХреЛрд░ рдмрд╛рдж рд╡рд╛рд▓реЗ рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рджреЛрдиреЛрдВ рд╕реНрдХреЛрд░ 0 . рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореВрд▓ рдкреЗрдкрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдирд╣реАрдВ рдерд╛ рдХрд┐ p_n 0 рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╕рдВрджрд░реНрдн/рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХреА рд▓рдВрдмрд╛рдИ n рд╕реЗ рдХрдо рд╣реИ, рддреЛ http://www.aclweb рдХреА рдзрд╛рд░рд╛ 2.3 рдореЗрдВ рд╕рдореАрдХрд░рдг рджреЗрдЦреЗрдВред n рд▓рдВрдмрд╛рдИ рд╕реЗ рдХрдо рд╕рдВрджрд░реНрдн/рдкрд░рд┐рдХрд▓реНрдкрдирд╛рдПрдВ рд╣реЛрдВред

рдпрджрд┐ рд╣рдо рдзрд╛рд░рд╛ 2.3 рдореЗрдВ рд╕реВрддреНрд░ рдХреЛ рджреЗрдЦреЗрдВ, рддреЛ рдЗрд╕рдореЗрдВ exp(log(p_n)) рдФрд░ рдЬрдм p_n 0 рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЧрдгрд┐рдд рдбреЛрдореЗрди рддреНрд░реБрдЯрд┐ рдореЗрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд▓реЙрдЧрд░рд┐рджрдо рдлрд╝рдВрдХреНрд╢рди (рдпрд╛рдиреА y = log x ) x = 0 рдкрд░ рдПрдХ рд╕реНрдкрд░реНрд╢реЛрдиреНрдореБрдЦ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ x рдХрд╛ рдкрд░рд┐рд╕рд░ 0 рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╣рдо рдореВрд▓ BLEU рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд╣рддреА рд╣реИ рдХрд┐ "BLEU рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА" рдЬрдм рднреА рдХреЛрдИ рдЧрдгрд┐рдд рдбреЛрдореЗрди рддреНрд░реБрдЯрд┐ рд╣реЛред рдЗрд╕рд▓рд┐рдП BLEU рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕реЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ https://github.com/moses-smt/mosesdecoder/blob/master/scripts/generic/mteval-v13a рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ BLEU рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдЪреЗрди рдФрд░ рдЪреЗрд░реА (2014) рдкреЗрдкрд░ рд╕реЗ рд╕реНрдореВрдерд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдЬреЛ mteval.pl рдХреЗ рдореВрд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдорджрдж рдХрд░рддрд╛ рд╣реИред

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдк рдХреЛрдб рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

$ python
>>> import nltk
>>> nltk.__version__
'3.2.1'

BLEU рдХрд╛ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдЕрднреА рд╣рд╛рд▓ рд╣реА рдореЗрдВ #1330 рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк develop рд╢рд╛рдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ nltk , рддреЛ рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

>>> import nltk
>>> from nltk import bleu
>>> ref = hyp = 'abc'
>>> bleu([ref], hyp)
1.0
>>> from nltk import bleu
>>> ref, hyp = 'abc', 'abd'
>>> bleu([ref], hyp)
0.7598356856515925

рдЪреВрдВрдХрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд░реНрдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдФрд░ nltk рд╢реАрд░реНрд╖-рд╕реНрддрд░ рдХреЗ рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП sentence_bleu() рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рд╕рдорд╛рди рд╣реИ:

>>> from nltk.translate.bleu_score import sentence_bleu
>>> sentence_bleu([['a', 'b', 'c']], ['a', 'b', 'c'])
1.0
>>> sentence_bleu([['a', 'b', 'c']], ['a', 'b', 'd'])
0.7598356856515925

рдирд╡реАрдирддрдо develop рд╢рд╛рдЦрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

pip install https://github.com/nltk/nltk/archive/develop.zip

( рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд┐рдХрд╕рд┐рдд рд╢рд╛рдЦрд╛ _рдЕрдзрд┐рдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдмрдЧреЛрдВ рдХреЗ рдЕрдзреАрди рд╣реИ рдФрд░ рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ master рдпрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рд▓реАрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ )


рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдиреЛрдЯ рдкрд░, рд▓реЗрдХрд┐рди bleu рдХреЗ рд╡рд░реНрддрдорд╛рди nltk рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рд╕реАрдзреЗ рддреМрд░ рдкрд░ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, #1330 рдлрд┐рдХреНрд╕ рдХреЗ рдмрд┐рдирд╛ рдкрд┐рдЫрд▓рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓реЛрдХрдкреНрд░рд┐рдп multi-bleu.perl рдХреА рд╕рдорд╛рди рдЦрд╛рдорд┐рдпреЛрдВ рдХреЗ рдЕрдзреАрди рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧреЗ рдХрд┐ рдпрд╣ рд╣рд╛рд▓ рдХреЗ рд╕реБрдзрд╛рд░ рдХреЗ рдмрд┐рдирд╛ 0 рдХреНрдпреЛрдВ рд▓реМрдЯрд╛: https://gist.github.com/alvations/e5922afa8c91472d25c58b2d712a93e7

рдзрдиреНрдпрд╡рд╛рдж @рдЕрд▓рд╡реЗрд╢рди ред рдореИрдВрдиреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рдПрдирдПрд▓рдЯреАрдХреЗ рдХрд╛ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг 3.2 рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдм 3.2.1 рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдм рдпрд╣ ZeroDivisionError рдмрдврд╝рд╛ рд░рд╣рд╛ рд╣реИред рдФрд░ рдореИрдВрдиреЗ рдкрд╛рдпрдерди 3.5.2 . рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛

BLEU рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг develop рд╢рд╛рдЦрд╛ рдореЗрдВ рд╣реИред рдХреГрдкрдпрд╛ NLTK 3.2.2 рдореЗрдВ рдЗрд╕рдХреЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдпрд╛ develop рд╢рд╛рдЦрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд┐рдХрд╛рд╕ рд╢рд╛рдЦрд╛ рдкрд░ рдкрд░реАрдХреНрд╖рдг рди рдХрд┐рдП рдЧрдП рдмрдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ)ред

рдареАрдХ рд╣реИред рдореИрдВ рдмрд╛рд╣рд░ рд░рд╛рд╣ рджреЗрдЦреВрдБрдЧрд╛ред рд▓реЗрдХрд┐рди рдЬрд┐рд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдпрджрд┐ рд╡рдЬрди [0.25, 0.25, 0.25, 0.25, 0.25] рд╣реИ, рддреЛ рд╡рд╛рдХреНрдп_рдмреНрд▓реВ ([['рдП', 'рдмреА', 'рд╕реА']], ['рдП', 'рдмреА' рдХреЗ рдкрд░рд┐рдгрд╛рдо ', 'рд╕реА']) рдФрд░ рд╡рд╛рдХреНрдп_рдмреНрд▓реЗрдпреВ ([['рдП', 'рдмреА', 'рд╕реА']], ['рдП', 'рдмреА', 'рдбреА']) рджреЛрдиреЛрдВ 0 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдореВрд▓ рдкреЗрдкрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░

рдореВрд▓ рдкреЗрдкрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдирд╣реАрдВ рдерд╛ рдХрд┐ p_n 0 рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╕рдВрджрд░реНрдн/рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХреА рд▓рдВрдмрд╛рдИ n рд╕реЗ рдХрдо рд╣реИ, рддреЛ http://www.aclweb рдХреА рдзрд╛рд░рд╛ 2.3 рдореЗрдВ рд╕рдореАрдХрд░рдг рджреЗрдЦреЗрдВред n рд▓рдВрдмрд╛рдИ рд╕реЗ рдХрдо рд╕рдВрджрд░реНрдн/рдкрд░рд┐рдХрд▓реНрдкрдирд╛рдПрдВ рд╣реЛрдВред

рдпрджрд┐ рд╣рдо рдзрд╛рд░рд╛ 2.3 рдореЗрдВ рд╕реВрддреНрд░ рдХреЛ рджреЗрдЦреЗрдВ, рддреЛ рдЗрд╕рдореЗрдВ exp(log(p_n)) рдФрд░ рдЬрдм p_n 0 рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЧрдгрд┐рдд рдбреЛрдореЗрди рддреНрд░реБрдЯрд┐ рдореЗрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд▓реЙрдЧрд░рд┐рджрдо рдлрд╝рдВрдХреНрд╢рди (рдпрд╛рдиреА y = log x ) x = 0 рдкрд░ рдПрдХ рд╕реНрдкрд░реНрд╢реЛрдиреНрдореБрдЦ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ x рдХрд╛ рдкрд░рд┐рд╕рд░ 0 рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╣рдо рдореВрд▓ BLEU рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд╣рддреА рд╣реИ рдХрд┐ "BLEU рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА" рдЬрдм рднреА рдХреЛрдИ рдЧрдгрд┐рдд рдбреЛрдореЗрди рддреНрд░реБрдЯрд┐ рд╣реЛред рдЗрд╕рд▓рд┐рдП BLEU рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕реЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ https://github.com/moses-smt/mosesdecoder/blob/master/scripts/generic/mteval-v13a рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ BLEU рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдЪреЗрди рдФрд░ рдЪреЗрд░реА (2014) рдкреЗрдкрд░ рд╕реЗ рд╕реНрдореВрдерд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдЬреЛ mteval.pl рдХреЗ рдореВрд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

vezeli picture vezeli  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alvations picture alvations  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

BLKSerene picture BLKSerene  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Chris00 picture Chris00  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alvations picture alvations  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ