Nltk: chomsky_normal_form () для Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 13 нояб. 2017  Β·  4ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: nltk/nltk

nltk.tree.Tree ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ chomsky_normal_form() , Π° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ - Π½Π΅Ρ‚. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ CNF - это Ρ„ΠΎΡ€ΠΌΠ° Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ , ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π°.

enhancement nice idea parsing

ВсС 4 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

chomsky_normal_form() Π² NLTK - это функция Π±ΠΈΠ½Π°Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π΅Ρ€Π΅Π²Π°. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ нСльзя Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°ΠΌ, см. Https://github.com/nltk/nltk/blob/develop/nltk/treetransforms.py

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π² CNF довольно слоТно ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ссли Π±Ρ‹ Π±Ρ‹Π»Π° ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ.

Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ заинтСрСсован Π² участии, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ для Π½Π°Ρ‡Π°Π»Π°:

  • Π›Π°Π½Π³Π΅ ΠΈ Лайсс (2009). Β«Π’ CNF ΠΈΠ»ΠΈ Π½Π΅ Π² CNF? ЭффСктивная, Π½ΠΎ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Π±Π΅Π»ΡŒΠ½Π°Ρ вСрсия Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° CYKΒ»

Π― искал ΠΈΠΌΠ΅Π½Π½ΠΎ это ΠΈ наткнулся здСсь,
Π― создал эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ nltk для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΌΠΎΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² (Π° Ρ‚Π°ΠΊΠΆΠ΅ синтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ CKY ΠΏΠΎΠ²Π΅Ρ€Ρ… Π½Π΅Π³ΠΎ, хотя ΠΈ Π±Π΅Π· Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎ я ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π² любом случаС это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΌΠ½ΠΎΠ³ΠΈΡ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для тСстовой Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ATIS ), Π±Ρ‹Π» Π±Ρ‹ Ρ€Π°Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ PR, просто Ρ…ΠΎΡ‚Π΅Π» ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, сохраняСтся Π»ΠΈ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΈ доступна Π»ΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ (особСнно послС послСдних ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² https://github.com/nltk/nltk/issues/1722)

Π’Π°ΠΊΠΆΠ΅, Ссли Π½Π΅Ρ‚ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° CYK, упомянутого Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ выпускС, я Π±Ρ‹Π» Π±Ρ‹ Ρ€Π°Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ PR ΠΈ для этого.

@virresh @alvations Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ # 1722

@virresh Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅

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

Π― помню, ΠΊΠ°ΠΊ ΠΎΠ½ пСрСупорядочивал шаги Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅, Π½ΠΎ я Ρ‚Π°ΠΊΠΆΠ΅ помню, ΠΊΠ°ΠΊ ΡƒΠ±Π΅ΠΆΠ΄Π°Π» сСбя, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ эквивалСнтны. Π”Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ.

Π― Π·Π°ΠΊΡ€ΠΎΡŽ Π΄Ρ€ΡƒΠ³ΠΎΠΉ выпуск.

Π•ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с CNF для CFG; ΠΎΠ½ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡŽ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это:

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 production, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Π² Π½Π°Π±ΠΎΡ€ Π΄Π°ΡŽΡ‚ 12396 productions.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ