Nltk: chomsky_normal_form () рд╡реНрдпрд╛рдХрд░рдг рдХреЗ рд▓рд┐рдП

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдирд╡ре░ 2017  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: nltk/nltk

nltk.tree.Tree рдореЗрдВ chomsky_normal_form() рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╛рдХрд░рдг рдирд╣реАрдВ рд╣реИред рдЪреВрдВрдХрд┐ рд╕реАрдПрдирдПрдл рд╡реНрдпрд╛рдХрд░рдг рдХрд╛ рдПрдХ рд░реВрдк рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

enhancement nice idea parsing

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

NLTK рдореЗрдВ chomsky_normal_form() рдПрдХ рдЯреНрд░реА-рдмрд┐рдирд╛рд░рд╛рдЗрдЬрд╝реЗрд╢рди рдлрд╝рдВрдХреНрд╢рди рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕реАрдзреЗ рд╡реНрдпрд╛рдХрд░рдг рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рджреЗрдЦреЗрдВ https://github.com/nltk/nltk/blob/develop/nltk/treetransforms.py

CNF рдореЗрдВ рд╡реНрдпрд╛рдХрд░рдг рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рдмрд▓реНрдХрд┐ рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдкрд░ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рддреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИ

  • рд▓реИрдВрдЧ рдФрд░ рд▓реЗрдЗрд╕ (2009)ред "CNF рдХреЗ рд▓рд┐рдП рдпрд╛ CNF рдХреЛ рдирд╣реАрдВ? CYK рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХрд╛ рдПрдХ рдХреБрд╢рд▓ рдЕрднреА рддрдХ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕рдВрд╕реНрдХрд░рдг"

рдореИрдВ рдареАрдХ рдЗрд╕реА рдХреЗ рд▓рд┐рдП рдЗрдзрд░-рдЙрдзрд░ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ рдФрд░ рдпрд╣реАрдВ рдареЛрдХрд░ рдЦрд╛ рдЧрдпрд╛,
рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдПрдирдПрд▓рдЯреАрдХреЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛ рд╢реЛрд╖рдг рдХрд░рдХреЗ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрдирд╛рдпрд╛ рд╣реИ (рдФрд░ рдЗрд╕рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рд╕реАрдХреЗрд╡рд╛рдИ рдкрд╛рд░реНрд╕рд░ рднреА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢реВрдиреНрдп рдкреНрд░рдмрдВрдзрди рдХреЗ рдмрд┐рдирд╛, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд╡реИрд╕реЗ рднреА рдХрдИ рд╡реНрдпрд╛рдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдЯреАрдЖрдИрдПрд╕ рдкрд░реАрдХреНрд╖рдг рд╡реНрдпрд╛рдХрд░рдг ), рдПрдХ рдкреАрдЖрд░ рднреЗрдЬрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рдмрд╕ рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдмрдиреА рд╣реБрдИ рд╣реИ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ (рд╡рд┐рд╢реЗрд╖рдХрд░ https://github.com/nltk/nltk/issues/1722 рдореЗрдВ рдЕрдВрддрд┐рдо рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдж)

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрджрд┐ рдЕрдиреНрдп рдЕрдВрдХ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХреЛрдИ рд╕реАрд╡рд╛рдИрдХреЗ рдкрд╛рд░реНрд╕рд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рднреА рднреЗрдЬрдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреА

@virresh @alvations #1722 рдХреЛ рдмрд╛рд╕реА рд╣реЛрдиреЗ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдЬреАрд╡рди рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИред

@virresh рдпрджрд┐ рдЖрдк рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдореЗрд░реЗ рдореЗрд╣рдорд╛рди

https://github.com/aetilley/pcfg/blob/master/src/pcfg.py#L524

рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдПрд▓реНрдЧреЛрд░рд┐рдердо рдореЗрдВ рдЪрд░рдгреЛрдВ рдХреЛ рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рднреА рдпрд╛рдж рд╣реИ рдХрд┐ рд╡реЗ рд╕рдордХрдХреНрд╖ рдереЗред рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝реЗрдВред

рдореИрдВ рджреВрд╕рд░реЗ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

рд╕реАрдПрдлрд╝рдЬреА рдХреЗ рд▓рд┐рдП рд╕реАрдПрдирдПрдл рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ; рд╡реЗ рдбреБрдкреНрд▓реАрдХреЗрдЯ рдкреНрд░реЛрдбрдХреНрд╢рдВрд╕ рд▓реМрдЯрд╛ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

import nltk
grammar = nltk.data.load("grammars/large_grammars/atis.cfg")
grammar = grammar.chomsky_normal_form()
print(len(grammar.productions()))
print(len(list(set(grammar.productions()))))

рд╡реНрдпрд╛рдХрд░рдг рдореЗрдВ 20344 рдкреНрд░реЛрдбрдХреНрд╢рдВрд╕ рд╣реИрдВ, рдЬреЛ рдПрдХ рд╕реЗрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрдиреЗ рдкрд░ 12396 рдкреНрд░реЛрдбрдХреНрд╢рдВрд╕ рджреЗрддреЗ рд╣реИрдВред

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

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

jeryini picture jeryini  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

peterbe picture peterbe  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mwess picture mwess  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ