ΠΠΎΡΡΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Π·Π±ΠΎΡ ΡΠ»ΠΎΠ²Π° Β«ΡΠ°Π·ΠΌΠ΅ΡΒ»
Π§Π°ΡΡΡ ΡΠ΅ΡΠΈ: Π‘ΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅
Π ΠΠΠΠΠ — Π½Π΅ΠΎΠ΄ΡΡΠ΅Π²Π»Π΅Π½Π½ΠΎΠ΅
ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ° ΡΠ»ΠΎΠ²Π°: Β«Π ΠΠΠΠΠ Β»
| Π‘Π»ΠΎΠ²ΠΎ | ΠΠΎΡΡΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ |
|---|---|
| Π ΠΠΠΠΠ |
|
| Π ΠΠΠΠΠ |
|
ΠΡΠ΅ ΡΠΎΡΠΌΡ ΡΠ»ΠΎΠ²Π° Π ΠΠΠΠΠ
Π ΠΠΠΠΠ , Π ΠΠΠΠΠ Π, Π ΠΠΠΠΠ Π£, Π ΠΠΠΠΠ ΠΠ, Π ΠΠΠΠΠ Π, Π ΠΠΠΠΠ Π«, Π ΠΠΠΠΠ ΠΠ, Π ΠΠΠΠΠ ΠΠ, Π ΠΠΠΠΠ ΠΠΠ, Π ΠΠΠΠΠ ΠΠ₯
Π Π°Π·Π±ΠΎΡ ΡΠ»ΠΎΠ²Π° ΠΏΠΎ ΡΠΎΡΡΠ°Π²Ρ ΡΠ°Π·ΠΌΠ΅Ρ
ΡΠ°Π·ΠΌΠ΅Ρ
| ΠΡΠ½ΠΎΠ²Π° ΡΠ»ΠΎΠ²Π° | ΡΠ°Π·ΠΌΠ΅Ρ |
|---|---|
| ΠΡΠΈΡΡΠ°Π²ΠΊΠ° | ΡΠ°Π· |
| ΠΠΎΡΠ΅Π½Ρ | ΠΌΠ΅Ρ |
| ΠΡΠ»Π΅Π²ΠΎΠ΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ |
Π Π°Π·Π±ΠΎΡ ΡΠ»ΠΎΠ²Π° Π² ΡΠ΅ΠΊΡΡΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΡΠ»ΠΎΠ²ΠΎ Β«Π ΠΠΠΠΠ Β» Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΡΠ΅, ΡΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ΠΌΠΎΡΡΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Π·Π±ΠΎΡ ΡΠ΅ΠΊΡΡΠ°.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠΎ ΡΠ»ΠΎΠ²ΠΎΠΌ Β«ΡΠ°Π·ΠΌΠ΅ΡΒ»
1
Π Π°Π·ΠΌΠ΅Ρ ΠΎΠ±ΡΠ²ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ ΡΒ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΎΠ±ΡΠ²ΠΈ Π½Π°Β ΡΠ±ΠΈΡΠΎΠΌ, Π½ΠΎΒ ΡΠ°ΠΊΠΎΠΉΒ ΠΆΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ Π½ΠΎΡΠΈΡ ΠΈΒ ΠΠ²Π°Π½ΡΠ΅Π½ΠΊΠΎ.
Π Π°ΠΊ ΠΈΒ ΠΠ΅ΠΌΡΡΠΆΠ½ΠΈΡΠ°, ΠΠΈΠΊΠΎΠ»Π°ΠΉ ΠΡΠΈΠΌΠΎΠ²ΠΈΡ ΠΠΎΠΏΠΎΠ²2
ΠΠΎΠΉΠΌΠΈ: Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π΅ΡΡΡ ΡΠ²ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΆΠΈΠ·Π½ΠΈ, ΠΊΠ°ΠΊ ΡΠ²ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΈΠ΄ΠΆΠ°ΠΊΠ° ΠΈ Π±ΠΎΡΠΈΠ½ΠΎΠΊ.
ΠΠ½Π΄Π΅Π³ΡΠ°ΡΠ½Π΄, ΠΈΠ»ΠΈ ΠΠ΅ΡΠΎΠΉ Π½Π°ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΠ»Π°Π΄ΠΈΠΌΠΈΡ ΠΠ°ΠΊΠ°Π½ΠΈΠ½, 1998Π³.3
Π±ΠΎΡΠΈΠ½ΠΊΠΈ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ΅Π½ΡΡΠ΅, Π° ΠΊΠΎΡΡΡΠΌ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅, ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅?
Π .Π.Π., Π‘Π΅ΡΠ³Π΅ΠΉ ΠΠΈΠ½Π°Π΅Π², 2009Π³.4
Π£ ΠΌΠ΅Π½Ρ 52-ΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π΅ ΡΠ°ΠΌΠΎΠΉ Π΄Π΅ΡΠ΅Π²ΠΎΠΉ ΠΎΠ΄Π΅ΠΆΠ΄Ρ, 43-ΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π²ΠΎΡΠΎΡΠ° ΠΈ 43-ΠΉ ΠΆΠ΅ β ΠΎΠ±ΡΠ²ΠΈ.
5
ΠΠ°ΠΆΠ΅Π½ Π½Π΅Β ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠ±Π°ΠΊΠΈ Π²Β Π΄ΡΠ°ΠΊΠ΅, Π°Β ΡΠ°Π·ΠΌΠ΅Ρ Π΄ΡΠ°ΠΊΠΈ Π²Β ΡΠΎΠ±Π°ΠΊΠ΅.
Π‘ΡΡΠ΄Π΅Π½ΡΡ ΠΆΠΈΠ·Π½ΠΈ Π½Π°Β Π·Π°ΠΌΠ΅ΡΠΊΡ. Π’ΠΎΠΌΒ 2, ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΠ² Π°Π²ΡΠΎΡΠΎΠ²ΠΠ°ΠΉΡΠΈ Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠΎ ΡΠ»ΠΎΠ²ΠΎΠΌ Π ΠΠΠΠΠ
Π ΡΡΡΠΊΠΎ-Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ
wordmap
Π ΡΡΡΠΊΠΎ-Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ β ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΡΠ΄ΠΈΡΠΈΡ
Π ΡΡΡΠΊΠΎ-Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ β ΠΏΡΠ΅ΡΠΎΠ³Π°ΡΠΈΠ²Π° Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²Π°ΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ, Π½Π°ΡΡΠΈΡΡΠ²Π°ΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ΅Π½ ΡΡΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΡ ΡΠ»ΠΎΠ². Π§ΡΠΎΠ±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅: ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ Π²ΠΎ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅.
Π ΡΡΡΠΊΠΎ-Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ β Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΆΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ Π±ΡΠ΄Π΅Ρ Π² Π²Π΅ΡΡ
Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΏΠΈΡΠΊΠ°: Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ°ΡΡΠΎΡΡ ΠΈΡ
ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½ΠΎΡΠΈΡΠ΅Π»ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°.
Π ΡΡΡΠΊΠΎ-Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠΎΠΊΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°, Π³Π΄Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ, Π° ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠΎΠΈΡΠΊ. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Β«ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΒ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°: Β«Π·Π΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅Β» Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Β«Ρ ΡΠΈΠ·Π°Π½ΡΠ΅ΠΌΠ°Β» Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ β ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠ΅ΠΉ ΡΠ΅ΡΠΈ (Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠ²Π΅ΡΠΎΠΌ). Π WordMap ΡΡΡΡΠΊΠΎ-Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Β«ΠΎΡΡΠ΅ΡΡΡΒ» Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΡΠ»ΠΎΠ²ΠΎΡΠΎΡΠ΅ΡΠ°Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ WordMap β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ»ΡΡΡΠΈΡΡ ΡΠ»ΠΎΠ²Π°ΡΠ½ΡΠΉ Π·Π°ΠΏΠ°Ρ ΡΡΠ°ΡΠ΅Π³ΠΎΡΡ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π² ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ WordMap:
- Π‘Π»ΠΎΠ²Π° Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎΠ΄ Π»ΡΠ±ΠΎΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π²Π»Π°Π΄Π΅Π½ΠΈΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ;
- Π ΡΡΡΠΊΠΎ-Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π°Π²ΡΠΊΠΈ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ;
- Π ΡΠΏΠΈΡΠΊΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠΊΠ°Π·Π°Π½Ρ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΡ ΠΈ ΠΏΠ°ΡΠΎΠ½ΠΈΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Ρ Π² ΡΠ»ΠΎΠΆΠ½ΠΎΠΌ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅.

ΠΠ½Π»Π°ΠΉΠ½-ΡΠ΅ΡΠ²ΠΈΡ WordMap ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄Π»Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ, ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ΅ ΠΊ ΡΠ΄Π°ΡΠ΅ ΡΠΊΠ·Π°ΠΌΠ΅Π½Π°. ΠΡΡΡΡΡΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Ρ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠ΅Π»ΡΡ: ΠΏΠΎΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°ΡΡΡΡ Ρ ΠΊΠΎΠ»Π»Π΅Π³ΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠΊΠ»ΡΠ±Π½ΠΈΠΊΠΎΠΌ; Π±ΡΠΎΡΠΈΡΡ Π²ΡΠ·ΠΎΠ² ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ, ΠΏΡΠ΅Π²Π·ΠΎΠΉΠ΄Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½ΡΠΎΡΠ°.
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΈΡΠΊΠ°Π»ΠΈ:
ΡΡΠΈΠ½ΠΊ 2 ΡΠ΅ΠΊΡΠ½Π΄Ρ Π½Π°Π·Π°Π΄
Π² ΡΠΈΠ»Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π·Π΄ΠΎΡΠΎΠ²ΡΡ 2 ΡΠ΅ΠΊΡΠ½Π΄Ρ Π½Π°Π·Π°Π΄
Π³Π»ΡΠ±ΠΈΠ½Π°-ΠΊΠΎΠ»ΠΎΠ΄ΡΠ° 4 ΡΠ΅ΠΊΡΠ½Π΄Ρ Π½Π°Π·Π°Π΄
Π½Π°ΠΊΠ»Π°Π΄ΠΊΠ° 5 ΡΠ΅ΠΊΡΠ½Π΄ Π½Π°Π·Π°Π΄
ΠΎΠ»Π΅Π³ΠΎΡΠΈΡ 5 ΡΠ΅ΠΊΡΠ½Π΄ Π½Π°Π·Π°Π΄
Π³ΡΠ°Π±ΠΎΠ²ΡΠΊΠ°Ρ-ΡΠ°ΡΠΊΠΈΡΠΎΠ²Π° 7 ΡΠ΅ΠΊΡΠ½Π΄ Π½Π°Π·Π°Π΄
Π²Π΅ΡΡΠΈΡ 8 ΡΠ΅ΠΊΡΠ½Π΄ Π½Π°Π·Π°Π΄
Π±Π΅Π·Π»ΡΠ΄Π½Π°Ρ ΡΠ°Π²Π½ΠΈΠ½Π° 8 ΡΠ΅ΠΊΡΠ½Π΄ Π½Π°Π·Π°Π΄
ΠΎΠ³ΡΡΡΠΎΠ²ΡΠΊΠ°Ρ 9 ΡΠ΅ΠΊΡΠ½Π΄ Π½Π°Π·Π°Π΄
Π΄ΠΎΡΡΡΠ΅Π½Π½ΠΎΠΌΡ 10 ΡΠ΅ΠΊΡΠ½Π΄ Π½Π°Π·Π°Π΄
ΠΌΠΎΡΡΠΎΠΊ 10 ΡΠ΅ΠΊΡΠ½Π΄ Π½Π°Π·Π°Π΄
ΠΊΡΡΡΠΈ 14 ΡΠ΅ΠΊΡΠ½Π΄ Π½Π°Π·Π°Π΄
ΠΈΠ· ΡΠΈΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ° 14 ΡΠ΅ΠΊΡΠ½Π΄ Π½Π°Π·Π°Π΄
ΠΌΠ΅ΠΉΠ½Π²ΠΈΠ»Π» 15 ΡΠ΅ΠΊΡΠ½Π΄ Π½Π°Π·Π°Π΄
Π·ΠΎΡΠ°ΠΉΠ± 15 ΡΠ΅ΠΊΡΠ½Π΄ Π½Π°Π·Π°Π΄
ΠΠ°ΡΠ° ΠΎΡΠ΅Π½ΠΊΠ°
ΠΠ°ΠΊΡΡΡΡ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°ΡΡ ΠΎΡΠ΅Π½ΠΊΡ!
ΠΠ°ΠΊΡΡΡΡ
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ³ΡΡ Π² ΡΠ»ΠΎΠ²Π°Π±Π°Π»Π΄ΡΡΠ΅ΠΏΡΡ Ρ| ΠΠΌΡ | Π‘Π»ΠΎΠ²ΠΎ | Π£Π³Π°Π΄Π°Π½ΠΎ | ΠΡΠ΅ΠΌΡ | ΠΡΠΊΡΠ΄Π° |
|---|---|---|---|---|
| ΠΠ³ΡΠΎΠΊ 1 | ΡΠ²ΠΎΠ΅Π²ΠΎΠ»ΡΠ½ΠΈΡΠ° | 62 ΡΠ»ΠΎΠ²Π° | 47 ΠΌΠΈΠ½ΡΡ Π½Π°Π·Π°Π΄ | 95. 68.114.220 |
| ΠΠ³ΡΠΎΠΊ 2 | ΡΠΎΠΊΠΎΠ»Π°Π΄ | 3 ΡΠ»ΠΎΠ²Π° | 7 ΡΠ°ΡΠΎΠ² Π½Π°Π·Π°Π΄ | 46.191.192.200 |
| ΠΠ³ΡΠΎΠΊ 3 | ΠΌΠ°Π»ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΎΠ΅ | 49 ΡΠ»ΠΎΠ² | 7 ΡΠ°ΡΠΎΠ² Π½Π°Π·Π°Π΄ | 95.68.114.220 |
| ΠΠ³ΡΠΎΠΊ 4 | ΡΠ΅ΠΌΠ΅Π½Ρ-ΠΏΡΡΠΊΠ° | 38 ΡΠ»ΠΎΠ² | 9 ΡΠ°ΡΠΎΠ² Π½Π°Π·Π°Π΄ | 95.68.114.220 |
| ΠΠ³ΡΠΎΠΊ 5 | Π½Π°ΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ°ΡΡΠΎΡΠ΅Π»Ρ Ρ ΡΡΠΊΠΈΠΌ Π²ΠΊΡΡΠΎΠΌ | 0 ΡΠ»ΠΎΠ² | 10 ΡΠ°ΡΠΎΠ² Π½Π°Π·Π°Π΄ | 89.23.156.142 |
| ΠΠ³ΡΠΎΠΊ 6 | Π²Π΅ΡΠ½Π° | 0 ΡΠ»ΠΎΠ² | 18 ΡΠ°ΡΠΎΠ² Π½Π°Π·Π°Π΄ | 46.150.23.76 |
| ΠΠ³ΡΠΎΠΊ 7 | ΠΎΡΠ΅Π½Ρ | 0 ΡΠ»ΠΎΠ² | 18 ΡΠ°ΡΠΎΠ² Π½Π°Π·Π°Π΄ | 46.150.23.76 |
| ΠΠ³ΡΠ°ΡΡ Π² Π‘Π»ΠΎΠ²Π°! | ||||
| ΠΠΌΡ | Π‘Π»ΠΎΠ²ΠΎ | Π‘ΡΠ΅Ρ | ΠΡΠΊΡΠ΄Π° | |
|---|---|---|---|---|
| ΠΠ³ΡΠΎΠΊ 1 | ΠΌΠ°ΠΉΠΎΡ | 8 ΠΌΠΈΠ½ΡΡ Π½Π°Π·Π°Π΄ | 176. 59.66.178 |
|
| ΠΠ³ΡΠΎΠΊ 2 | ΠΊΠΈΠΌΠ²Ρ | 50:51 | 15 ΠΌΠΈΠ½ΡΡ Π½Π°Π·Π°Π΄ | 176.59.66.178 |
| ΠΠ³ΡΠΎΠΊ 3 | ΠΆΠ΅Π²ΠΎΠΊ | 49:46 | 28 ΠΌΠΈΠ½ΡΡ Π½Π°Π·Π°Π΄ | 176.59.66.178 |
| ΠΠ³ΡΠΎΠΊ 4 | ΡΠΈΠ»ΡΡ | 47:42 | 40 ΠΌΠΈΠ½ΡΡ Π½Π°Π·Π°Π΄ | 176.59.66.178 |
| ΠΠ³ΡΠΎΠΊ 5 | Π·Π°ΡΠ΅Ρ | 49:50 | 52 ΠΌΠΈΠ½ΡΡΡ Π½Π°Π·Π°Π΄ | 176.59.66.178 |
| ΠΠ³ΡΠΎΠΊ 6 | ΡΡΡΠ°ΠΊ | 28:29 | 1 ΡΠ°Ρ 56 ΡΠ΅ΠΊΡΠ½Π΄ Π½Π°Π·Π°Π΄ | 94.233.236.221 |
| ΠΠ³ΡΠΎΠΊ 7 | ΡΠΎΠ»Π΅Ρ | 55:54 | 1 ΡΠ°Ρ Π½Π°Π·Π°Π΄ | 176.59.66.178 |
| ΠΠ³ΡΠ°ΡΡ Π² ΠΠ°Π»Π΄Ρ! | ||||
| ΠΠΌΡ | ΠΠ³ΡΠ° | ΠΠΎΠΏΡΠΎΡΡ | ΠΡΠΊΡΠ΄Π° | |
|---|---|---|---|---|
| ΠΠ°ΡΠΈΠ½Π° | ΠΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ | 5 Π²ΠΎΠΏΡΠΎΡΠΎΠ² | 2 ΡΠ°ΡΠ° Π½Π°Π·Π°Π΄ | 46. 216.179.180 |
| Π‘ΠΎΡΠ° | ΠΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ | 20 Π²ΠΎΠΏΡΠΎΡΠΎΠ² | 4 ΡΠ°ΡΠ° Π½Π°Π·Π°Π΄ | 213.87.133.214 |
| ΠΡΠΈΠ½Π° | ΠΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ | 10 Π²ΠΎΠΏΡΠΎΡΠΎΠ² | 5 ΡΠ°ΡΠΎΠ² Π½Π°Π·Π°Π΄ | 85.140.1.126 |
| ΠΡΠΈΠ½Π° | ΠΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ | 10 Π²ΠΎΠΏΡΠΎΡΠΎΠ² | 5 ΡΠ°ΡΠΎΠ² Π½Π°Π·Π°Π΄ | 85.140.1.126 |
| ΠΡΠΈΠ½Π° | 10 Π²ΠΎΠΏΡΠΎΡΠΎΠ² | 5 ΡΠ°ΡΠΎΠ² Π½Π°Π·Π°Π΄ | 85.140.1.126 | |
| Π Π΅Π½Π°ΡΠ° | ΠΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ | 20 Π²ΠΎΠΏΡΠΎΡΠΎΠ² | 6 ΡΠ°ΡΠΎΠ² Π½Π°Π·Π°Π΄ | 85.140.6.143 |
| ΠΠ²Ρ | ΠΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ | 10 Π²ΠΎΠΏΡΠΎΡΠΎΠ² | 18 ΡΠ°ΡΠΎΠ² Π½Π°Π·Π°Π΄ | 188.170.72.6 |
| ΠΠ³ΡΠ°ΡΡ Π² Π§Π΅ΠΏΡΡ Ρ! | ||||
Π‘Π΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·
ΠΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π±Π°ΠΉΠ΅ΡΠΎΠ²ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΡΠ·ΡΠΊΠ° ΠΏΠΎΠ²Π΅ΡΡ
ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΠΊΠΎ-ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° (ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΎΡΠ½ΠΎΠΉ) ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ΅.
ΠΠΈΡ ΠΈ ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ
ΠΡΠΊΠ²Π°Π»ΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΏΡΠΎΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π²ΡΠ²ΠΎΠ΄ ΠΎ Π²Π΅ΡΠΎΡΡΠ½ΡΡ ΠΌΠΈΡΠ°Ρ , ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΡΠΈΠ½Π½ΠΎ Π² ΠΌΠΈΡΠ΅:
var literalListener = function(utterance) {
ΠΡΠ²ΠΎΠ΄({
ΠΌΠΎΠ΄Π΅Π»Ρ () {
Π²Π°Ρ ΠΌΠΈΡ = ΠΌΠΈΡPrior()
var m = Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅, ΠΌΠΈΡ)
ΡΠ°ΠΊΡΠΎΡ(m?0:-ΠΠ΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡ)
Π²Π΅ΡΠ½ΡΡΡ ΠΌΠΈΡ
}
})
}
ΠΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌΠΈ (Π±ΠΈΠ½Π°ΡΠ½ΡΠΌΠΈ) ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ:
var makeObj = function(name) {
Π²Π΅ΡΠ½ΡΡΡ {ΠΈΠΌΡ: ΠΈΠΌΡ, Π±Π»ΠΎΠ½Π΄ΠΈΠ½: ΡΠ»ΠΈΠΏ (0,5), ΠΏΡΠΈΡΡΠ½ΡΠΉ: ΡΠ»ΠΈΠΏ (0,5)}
}
var worldPrior = ΡΡΠ½ΠΊΡΠΈΡ (ΠΎΠ±ΡΠ΅ΠΊΡΡ) {
return [makeObj("ΠΠΎΠ±"), makeObj("ΠΠΈΠ»Π»"), makeObj("ΠΠ»ΠΈΡΠ°")]
}
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ , ΠΎΠ·Π½Π°ΡΠ°ΡΡΡΡ , ΠΊΠ°ΠΊ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (ΡΠ΅ΠΎΡΠ΅ΡΠΈΠΊΠΎ-ΠΌΠΎΠ΄Π΅Π»ΡΠ½ΠΎΠ΅) ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ, ΠΊΠΎΠ³Π΄Π° Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΡΠΈΠ²Π°ΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π° Π½Π΅ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° ΡΠΌΡΡΠ»ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΈΡ ΡΠΎΡΠΌΡ Β«LFΒ», ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΡΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΠΌΠΈΡΡ, Ρ
ΠΎΡΠΎΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Π° Π²ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΊ Π―ΠΊΠΎΠ±ΡΠΎΠ½Ρ (19).
99):
ΠΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³ΠΈΠΏΠΎΡΠ΅Π·Π° Β«ΠΏΡΡΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΠΎΡΡΠΈΒ». (ΡΠΌ., Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Montague 1974): ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ ΡΠ΅ΠΎΡΠ΅ΡΠΈΠΊΠΎ-ΠΌΠΎΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ°Π½Π΄Π΅ΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Β«ΡΡΡΠΎΠΈΡΒ» (Ρ. Π΅. Π΄ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ) Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π΄ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. (ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΠ·Π»ΠΎΠΆΠΈΡΡ Π² Π²Π΅ΡΡΠΌΠ° ΠΎΠ±ΡΠ΅ΠΌ ΠΈ ΡΡ Π΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ΅.) Π‘Π΅ΠΌΠ°Π½ΡΠΈΠΊΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ°Π½Π΄Π΅ΠΌΠ΅ ΠΏΡΠΈ ΡΡΠΎΠΌ — ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (ΡΠ΅ΠΎΡΠ΅ΡΠΈΠΊΠΎ-ΠΌΠΎΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ) Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ) Π²Ρ ΠΎΠ΄Π½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, ΡΠ°ΠΊΠΎΠΌ ΠΊΠ°ΠΊ LF, ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ ΡΠ΅ΠΎΡΠ΅ΡΠΈΠΊΠΎ-ΠΌΠΎΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π½Π°Π±ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ», ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠΈΡ ΠΎΠ΄ΠΈΠ½ Β«ΡΡΠΎΠ²Π΅Π½ΡΒ» ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠΉ.
ΠΠ»Ρ Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ½ΠΊΡΠΈΡ , ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ°Ρ , ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΠΎΡ
Π°ΡΡΠΈΡΠ΅ΡΠΊΡΡ ΠΊΠ°ΡΡΡ ΠΎΡ Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠΉ Π΄ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ, Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ (Π½Π΅ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ) ΡΠ°Π·Π½ΡΠΌ Π°Π½Π°Π»ΠΈΠ·Π°ΠΌ ΠΈΠ»ΠΈ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²ΡΠ±ΠΎΡΠ°ΠΌ.
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° ΠΈ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π·Π°ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ ΠΊ Π΄ΡΡΠ³Ρ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
// Π Π°Π·Π΄Π΅Π»ΠΈΡΡ ΡΡΡΠΎΠΊΡ Π½Π° ΡΠ»ΠΎΠ²Π°, Π½Π°ΠΉΡΠΈ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ,
// ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠ»ΠΎΠ²Π° ΡΠΎ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ combMeanings..
var Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = ΡΡΠ½ΠΊΡΠΈΡ (Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅, ΠΌΠΈΡ) {
Π²Π΅ΡΠ½ΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ(
ΡΠΈΠ»ΡΡΡ(ΠΊΠ°ΡΡΠ°(Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅.split(" "),
ΡΡΠ½ΠΊΡΠΈΡ (w) {Π²ΠΎΠ·Π²ΡΠ°Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (w, ΠΌΠΈΡ)}),
ΡΡΠ½ΠΊΡΠΈΡ (m) {Π²ΠΎΠ·Π²ΡΠ°Ρ! (m.sem == undefined)}))
}
ΠΠ΅ΠΊΡΠΈΠΊΠΎΠ½ Π·Π°Ρ
Π²Π°ΡΠ΅Π½ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ lexicalMeaning , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΎΠΉ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ.
var lexicalMeaning = ΡΡΠ½ΠΊΡΠΈΡ (ΡΠ»ΠΎΠ²ΠΎ, ΠΌΠΈΡ) {
var wordMeanings = {
"Π±Π»ΠΎΠ½Π΄ΠΈΠ½" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (obj) {Π²ΠΎΠ·Π²ΡΠ°Ρ obj.blond},
syn: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'} },
"Ρ
ΠΎΡΠΎΡΠΈΠΉ" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (obj) {return obj.nice},
syn: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'} },
"ΠΠΎΠ±": {
sem: Π½Π°ΠΉΡΠΈ (ΡΡΠ½ΠΊΡΠΈΡ (obj) {return obj.name = = "ΠΠΎΠ±"}, ΠΌΠΈΡ),
ΡΠΈΠ½: 'ΠΠ'},
"Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (P) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Q) {ΡΠΈΠ»ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Q, ΡΠΈΠ»ΡΡΡ (P, ΠΌΠΈΡ)). Π΄Π»ΠΈΠ½Π°> 0}},
ΡΠΈΠ½: {ΡΠ΅ΠΆ.: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²Π½Π΅: {ΡΠ΅ΠΆΠΈΠΌ: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²ΡΡ
ΠΎΠ΄: 'S'}} },
"Π²ΡΠ΅" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (P) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Q) {ΡΠΈΠ»ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ (Q), ΡΠΈΠ»ΡΡΡ (P, ΠΌΠΈΡ)). Π΄Π»ΠΈΠ½Π° == 0}},
ΡΠΈΠ½: {ΡΠ΅ΠΆ.: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²Π½Π΅: {ΡΠ΅ΠΆΠΈΠΌ: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²ΡΡ
ΠΎΠ΄:'S'}} }
}
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ var = ΡΠ»ΠΎΠ²ΠΎΠΠ½Π°ΡΠ΅Π½ΠΈΡ[ΡΠ»ΠΎΠ²ΠΎ];
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ == undefined?{sem: undefined, syn: ''}:meaning;
}
// ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ:
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ = ΡΡΠ½ΠΊΡΠΈΡ (Q) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Ρ
) {Π²ΠΎΠ·Π²ΡΠ°Ρ! Q (Ρ
)}
}
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ lexicalMeaning ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΎΡ
Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΠΈΡΠ΅ΠΌΠΈΡ.
ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠΈΡΠ°, ΠΈΠ³ΡΠ°ΡΡΠΈΡ
ΡΠΎΠ»Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.
Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π³ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΌΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ»ΠΎΠ²ΠΎ ΡΠ°ΠΊΠΎΠ΅, ΡΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (ΡΠΎΠΊΡΠ°ΡΠ°Ρ Π½Π°Π±ΠΎΡ ΡΠΌΡΡΠ»ΠΎΠ²ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ²). Π’Π°ΠΊ Π΄Π΅Π»Π°Π΅ΠΌ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΌΡΡΠ»ΠΎΠ²ΠΎΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ.
var combMeaning = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) {
var Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
Comb = canApply (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, 0)
Π΄ΠΈΡΠΏΠ»Π΅ΠΉ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π³ΡΠ΅Π±Π΅Π½Ρ)
var i = Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π³ΡΠ΅Π±Π΅Π½ΠΊΠ° [randomInteger (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π³ΡΠ΅Π±Π΅Π½ΠΊΠ°. Π΄Π»ΠΈΠ½Π°)]
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
Π΅ΡΠ»ΠΈ (s.dir == 'L') {
var f = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].sem
var a = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i-1].sem
var newmeaning = {sem: f(a), syn: s.out}
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(0,i-1).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+1))
}
Π΅ΡΠ»ΠΈ (s.dir == 'R') {
var f = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].sem
var a = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i+1].sem
var newmeaning = {sem: f(a), syn: s.out}
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
slice(0,i).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+2))
}
}
//ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ (ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ) ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ.
var canApply = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ) {
Π΅ΡΠ»ΠΈ(Ρ==Π·Π½Π°ΡΠ΅Π½ΠΈΡ.Π΄Π»ΠΈΠ½Π°){
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ []
}
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
if (s.hasOwnProperty('dir')){ //ΡΡΠ½ΠΊΡΠΎΡ
var a = ((s.dir == 'L')?syntaxMatch(s.int, values[i-1].syn):false) |
((s.dir == 'R')?syntaxMatch(s.int, values[i+1].syn):false)
Π΅ΡΠ»ΠΈ (Π°) {Π²ΠΎΠ·Π²ΡΠ°Ρ [i].concat (canApply (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ + 1))}
}
return canApply(Π·Π½Π°ΡΠ΅Π½ΠΈΡ,i+1)
}
// Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°Match ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ ΠΊ
// ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠ°Π²Π½Ρ Π»ΠΈ Π΄Π²Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΈΠΏΠ°.
var ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ = ΡΡΠ½ΠΊΡΠΈΡ (s, t) {
Π²Π΅ΡΠ½ΡΡΡ !s.hasOwnProperty('dir') ? Ρ==Ρ :
s.dir==t.dir ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (s.int, t.int) ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (s.out, t.out)
}
// Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
// Π²Π»Π΅Π²ΠΎ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ.
var combMeanings = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) {
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
length==1 ? Π·Π½Π°ΡΠ΅Π½ΠΈΡ[0].sem : ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΠ·Π½Π°ΡΠ΅Π½ΠΈΡ(ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΠ·Π½Π°ΡΠ΅Π½ΠΈΡ(Π·Π½Π°ΡΠ΅Π½ΠΈΡ))
}
Π§ΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΡΠΈΡΡΠ΄Π»ΠΈΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ, ΠΌΡ ΡΠΌΠ΅ΡΠ°Π»ΠΈ Π±Ρ ΡΡΠΎ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΈΠΏΠ°, ΡΠ»Π΅Π΄ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Barker (2002) (ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ Jacobson, 1999).
///ΡΠ²Π΅ΡΠ½ΡΡΡ:
var literalListener = ΡΡΠ½ΠΊΡΠΈΡ (Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅) {
Π²Π΅ΡΠ½ΡΡΡ Π²ΡΠ²ΠΎΠ΄({
ΠΌΠΎΠ΄Π΅Π»Ρ () {
Π²Π°Ρ ΠΌΠΈΡ = ΠΌΠΈΡPrior()
var m = Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅, ΠΌΠΈΡ)
ΡΠ°ΠΊΡΠΎΡ(m?0:-ΠΠ΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡ)
Π²Π΅ΡΠ½ΡΡΡ ΠΌΠΈΡ
}
})
}
var makeObj = ΡΡΠ½ΠΊΡΠΈΡ (ΠΈΠΌΡ) {
Π²Π΅ΡΠ½ΡΡΡ {ΠΈΠΌΡ: ΠΈΠΌΡ, Π±Π»ΠΎΠ½Π΄ΠΈΠ½: ΡΠ»ΠΈΠΏ (0,5), ΠΏΡΠΈΡΡΠ½ΡΠΉ: ΡΠ»ΠΈΠΏ (0,5)}
}
var worldPrior = ΡΡΠ½ΠΊΡΠΈΡ (ΠΎΠ±ΡΠ΅ΠΊΡΡ) {
return [makeObj("ΠΠΎΠ±"), makeObj("ΠΠΈΠ»Π»"), makeObj("ΠΠ»ΠΈΡΠ°")]
}
// Π Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΡΠΎΠΊΡ Π½Π° ΡΠ»ΠΎΠ²Π°, ΠΈΡΠ΅ΠΌ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ,
// ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠ»ΠΎΠ²Π° ΡΠΎ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ combMeanings..
var Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = ΡΡΠ½ΠΊΡΠΈΡ (Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅, ΠΌΠΈΡ) {
Π²Π΅ΡΠ½ΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ(
ΡΠΈΠ»ΡΡΡ (ΡΡΠ½ΠΊΡΠΈΡ (m) {Π²ΠΎΠ·Π²ΡΠ°Ρ! (m.sem == undefined)},
ΠΊΠ°ΡΡΠ° (ΡΡΠ½ΠΊΡΠΈΡ (w) {return lexicalMeaning (w, ΠΌΠΈΡ)},
Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅.
split(" "))))
}
var lexicalMeaning = ΡΡΠ½ΠΊΡΠΈΡ (ΡΠ»ΠΎΠ²ΠΎ, ΠΌΠΈΡ) {
var wordMeanings = {
"Π±Π»ΠΎΠ½Π΄ΠΈΠ½" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (obj) {Π²ΠΎΠ·Π²ΡΠ°Ρ obj.blond},
syn: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'} },
"Ρ
ΠΎΡΠΎΡΠΈΠΉ" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (obj) {return obj.nice},
syn: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'} },
"ΠΠΎΠ±": {
sem: Π½Π°ΠΉΡΠΈ (ΡΡΠ½ΠΊΡΠΈΡ (obj) {return obj.name = = "ΠΠΎΠ±"}, ΠΌΠΈΡ),
ΡΠΈΠ½: 'ΠΠ'},
"Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (P) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Q) {ΡΠΈΠ»ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Q, ΡΠΈΠ»ΡΡΡ (P, ΠΌΠΈΡ)). Π΄Π»ΠΈΠ½Π°> 0}},
ΡΠΈΠ½: {ΡΠ΅ΠΆ.: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²Π½Π΅: {ΡΠ΅ΠΆΠΈΠΌ: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²ΡΡ
ΠΎΠ΄: 'S'}} },
"Π²ΡΠ΅" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (P) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Q) {ΡΠΈΠ»ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ (Q), ΡΠΈΠ»ΡΡΡ (P, ΠΌΠΈΡ)). Π΄Π»ΠΈΠ½Π° == 0}},
ΡΠΈΠ½: {ΡΠ΅ΠΆ.: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²Π½Π΅: {ΡΠ΅ΠΆΠΈΠΌ: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²ΡΡ
ΠΎΠ΄:'S'}} }
}
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ var = ΡΠ»ΠΎΠ²ΠΎΠΠ½Π°ΡΠ΅Π½ΠΈΡ[ΡΠ»ΠΎΠ²ΠΎ];
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ == undefined?{sem: undefined, syn: ''}:meaning;
}
// ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ:
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ = ΡΡΠ½ΠΊΡΠΈΡ (Q) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Ρ
) {Π²ΠΎΠ·Π²ΡΠ°Ρ! Q (Ρ
)}
}
var combMeaning = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) {
var Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
Comb = canApply (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, 0)
Π΄ΠΈΡΠΏΠ»Π΅ΠΉ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π³ΡΠ΅Π±Π΅Π½Ρ)
var i = Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π³ΡΠ΅Π±Π΅Π½ΠΊΠ° [randomInteger (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π³ΡΠ΅Π±Π΅Π½ΠΊΠ°.
Π΄Π»ΠΈΠ½Π°)]
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
Π΅ΡΠ»ΠΈ (s.dir == 'L') {
var f = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].sem
var a = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i-1].sem
var newmeaning = {sem: f(a), syn: s.out}
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(0,i-1).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+1))
}
Π΅ΡΠ»ΠΈ (s.dir == 'R') {
var f = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].sem
var a = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i+1].sem
var newmeaning = {sem: f(a), syn: s.out}
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(0,i).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+2))
}
}
//ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ (ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ) ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ.
var canApply = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ) {
Π΅ΡΠ»ΠΈ(Ρ==Π·Π½Π°ΡΠ΅Π½ΠΈΡ.Π΄Π»ΠΈΠ½Π°){
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ []
}
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
if (s.hasOwnProperty('dir')){ //ΡΡΠ½ΠΊΡΠΎΡ
var a = ((s.dir == 'L')?syntaxMatch(s.int, values[i-1].syn):false) |
((s.dir == 'R')?syntaxMatch(s.int, values[i+1].syn):false)
Π΅ΡΠ»ΠΈ (Π°) {Π²ΠΎΠ·Π²ΡΠ°Ρ [i].concat (canApply (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ + 1))}
}
return canApply(Π·Π½Π°ΡΠ΅Π½ΠΈΡ,i+1)
}
// Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°Match ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ ΠΊ
// ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠ°Π²Π½Ρ Π»ΠΈ Π΄Π²Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΈΠΏΠ°.
var ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ = ΡΡΠ½ΠΊΡΠΈΡ (s, t) {
Π²Π΅ΡΠ½ΡΡΡ !s.hasOwnProperty('dir') ? Ρ==Ρ :
s.dir==t.dir ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (s.int, t.int) ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (s.out, t.out)
}
// Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
// Π²Π»Π΅Π²ΠΎ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ.
var combMeanings = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) {
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.length==1 ? Π·Π½Π°ΡΠ΅Π½ΠΈΡ[0].sem : ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΠ·Π½Π°ΡΠ΅Π½ΠΈΡ(ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΠ·Π½Π°ΡΠ΅Π½ΠΈΡ(Π·Π½Π°ΡΠ΅Π½ΠΈΡ))
}
///
//literalListener("ΠΠΎΠ± Ρ
ΠΎΡΠΎΡΠΈΠΉ")
//literalListener("Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π»ΠΎΠ½Π΄ΠΈΠ½Ρ Ρ
ΠΎΡΠΎΡΠΈ")
//literalListener("Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π»ΠΎΠ½Π΄ΠΈΠ½Ρ ΠΌΠΈΠ»ΡΠ΅")
Π° ΠΈΠΌΠ΅Π½Π½ΠΎ.table (literalListener (Β«Π²ΡΠ΅ Π±Π»ΠΎΠ½Π΄ΠΈΠ½Ρ Ρ
ΠΎΡΠΎΡΠΈΠ΅Β»))
ΠΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΠΎΠ΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΌΠΈΡΠ°
ΠΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ° ΠΊΠΎΠ½ΡΡΡΡΠΈΡΡΠ΅Ρ Π²Π΅ΡΡ ΠΌΠΈΡ ΠΈ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΈΡΡΠΈΠ½Π½ΡΠΌ Π΄Π»Ρ ΠΌΠΈΡΠ°. ΠΡ Ρ
ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΌΠΈΡΠ° ΠΈΠ»ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΡΠ°ΠΏΠ½ΡΠΌΠΈβ¦ ΠΠΈΠΆΠ΅ ΠΌΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ Π²Π΅ΡΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΡΠΊ Ρ ΠΎΡΠΌΠ΅Π½ΠΎΠΉ ΡΠ²ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ°ΠΊΡΠΎΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΏΠΎΠΎΡΡΡΡΡ ΠΌΠΈΡ ΠΊ ΡΠΎΠΌΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ, ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΌΠΈΡ.
.
ΠΠ°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ Π΄Π²Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ Π°Π΄Π°ΠΏΡΠΈΡΡΠ΅ΠΌ worldPrior , ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ ΠΎΡΠΌΠ΅Π½Ρ. ΠΠΎ-Π²ΡΠΎΡΡΡ
, ΡΡΠ° Π²Π΅ΡΡΠΈΡ ΡΡΡΠΎΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡ ΠΌΠΈΡΠ° ΠΊ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠ½ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, ΠΏΠΎΠΊΠ° ΡΡΡΠΎΠΈΡΡΡ ΠΌΠΈΡ. Π’ΠΎ Π΅ΡΡΡ ΠΌΡ ΠΎΡΡ
ΠΎΠ΄ΠΈΠΌ ΠΎΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΠΎΡΡΠΈ, Π² ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ Β«ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ
Β» Π΄Π΅Π½ΠΎΡΠ°ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΆΠ΄ΡΡ ΠΌΠΈΡΠ°.
Π‘Π½Π°ΡΠ°Π»Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ literalListener ΠΈ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΌΠΈΡΠ°, Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ°ΠΊΡΠΎΡΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠΈΡ Π½Π΅ Π°ΠΏΡΠΈΠΎΡΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΈΡ Prior ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΌΠΈΡ:
var literalListener = function(utterance) {
Π²Π΅ΡΠ½ΡΡΡ Π²ΡΠ²ΠΎΠ΄({
ΠΌΠΎΠ΄Π΅Π»Ρ () {
var m = Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅)
var world = worldPrior(3,m)
ΡΠ°ΠΊΡΠΎΡ(ΠΌ(ΠΌΠΈΡ)?0:-ΠΠ΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡ)
Π²Π΅ΡΠ½ΡΡΡ ΠΌΠΈΡ
}
})
}
Π²Π°Ρ makeObj = ΡΡΠ½ΠΊΡΠΈΡ () {
return {Π±Π»ΠΎΠ½Π΄ΠΈΠ½: ΡΠ»ΠΈΠΏ (0,5), ΠΏΡΠΈΡΡΠ½ΡΠΉ: ΡΠ»ΠΈΠΏ (0,5), Π²ΡΡΠΎΠΊΠΈΠΉ: ΡΠ»ΠΈΠΏ (0,5)}
}
var worldPrior = function(nObjLeft, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Fn, worldSoFar) {
Π²Π°Ρ worldSoFar = worldSoFar==undefined ? [] : ΠΌΠΈΡSoFar
Π΅ΡΠ»ΠΈ(nObjLeft==0) {
Π²Π΅ΡΠ½ΡΡΡ ΠΌΠΈΡSoFar
} Π΅ΡΠ΅ {
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ newObj = makeObj()
var newWorld = worldSoFar.
concat([newObj])
return worldPrior(nObjLeft-1, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Fn, newWorld)
}
}
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΡΠΌΠ΅Π½ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΡ:
var worldPrior = function(nObjLeft, meanFn, worldSoFar) {
Π²Π°Ρ worldSoFar = worldSoFar==undefined ? [] : ΠΌΠΈΡSoFar
Π΅ΡΠ»ΠΈ(nObjLeft==0) {
Π²Π΅ΡΠ½ΡΡΡ ΠΌΠΈΡSoFar
} Π΅ΡΠ΅ {
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ newObj = makeObj()
var newWorld = worldSoFar.concat([newObj])
var newFactor = Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Fn(newWorld)?0:-100
ΡΠ°ΠΊΡΠΎΡ(Π½ΠΎΠ²ΡΠΉΡΠ°ΠΊΡΠΎΡ)
ΡΠ°ΠΊΡΠΎΡ(-Π½ΠΎΠ²ΡΠΉΡΠ°ΠΊΡΠΎΡ)
return worldPrior(nObjLeft-1, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Fn, newWorld)
}
}
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠ΅ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΠΊΡΠΎΡ Π²ΠΏΠ΅ΡΠ΅Π΄ Π² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ (Π³Π΄Π΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ prevFactor ):
var worldPrior = function(nObjLeft, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Fn, worldSoFar, prevFactor) {
Π²Π°Ρ worldSoFar = worldSoFar==undefined ? [] : ΠΌΠΈΡSoFar
var prevFactor = prevFactor==undefined ? 0 : ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ°ΠΊΡΠΎΡ
Π΅ΡΠ»ΠΈ(nObjLeft==0) {
ΡΠ°ΠΊΡΠΎΡ(-ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ°ΠΊΡΠΎΡ)
Π²Π΅ΡΠ½ΡΡΡ ΠΌΠΈΡSoFar
} Π΅ΡΠ΅ {
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ newObj = makeObj()
var newWorld = worldSoFar.
concat([newObj])
var newFactor = Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Fn(newWorld)?0:-100
ΡΠ°ΠΊΡΠΎΡ (Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΊΡΠΎΡ - ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ°ΠΊΡΠΎΡ)
return worldPrior(nObjLeft-1, ΠΎΠ·Π½Π°ΡΠ°Π΅ΡFn, newWorld, newFactor)
}
}
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Β«ΠΏΠΎΠΎΡΡΡΠ΅ΠΌΒ» ΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΡΡΠΎΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π±ΡΠ» ΡΠ°ΠΊΠΈΠΌ, ΡΡΠΎΠ±Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΈΡΡΠΈΠ½Π½ΡΠΌ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠ°ΠΏΠ΅, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΡΠΈΠ½Π½ΡΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ literalListener (ΠΈ ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°ΠΊΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ t ΠΎΡΠΌΠ΅Π½Π΅Π½ Π² ΠΊΠΎΠ½ΡΠ΅).
ΠΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅, Π½ΠΎ Ρ ΠΎΡΡΡΠΎΡΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
var ΡΠΌΡΡΠ» = ΡΡΠ½ΠΊΡΠΈΡ (Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅) {
Π²Π΅ΡΠ½ΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ(
ΡΠΈΠ»ΡΡΡ (ΡΡΠ½ΠΊΡΠΈΡ (m) {Π²ΠΎΠ·Π²ΡΠ°Ρ! (m.sem == undefined)},
ΠΊΠ°ΡΡΠ° (ΡΡΠ½ΠΊΡΠΈΡ (w) {Π²ΠΎΠ·Π²ΡΠ°Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (w)},
Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅.split(" "))))
}
var lexicalMeaning = ΡΡΠ½ΠΊΡΠΈΡ (ΡΠ»ΠΎΠ²ΠΎ) {
var wordMeanings = {
"Π±Π»ΠΎΠ½Π΄ΠΈΠ½" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (obj) {Π²ΠΎΠ·Π²ΡΠ°Ρ obj.blond}},
syn: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'} },
"Ρ
ΠΎΡΠΎΡΠΈΠΉ" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (ΠΎΠ±ΡΠ΅ΠΊΡ) {Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
Ρ
ΠΎΡΠΎΡΠΈΠΉ}},
syn: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'} },
"ΠΠΎΠ±": {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°Ρ Π½Π°ΠΉΡΠΈ (ΡΡΠ½ΠΊΡΠΈΡ (ΠΎΠ±ΡΠ΅ΠΊΡ) {Π²ΠΎΠ·Π²ΡΠ°Ρ obj.name = = "ΠΠΎΠ±"}, ΠΌΠΈΡ)},
ΡΠΈΠ½: 'ΠΠ'},
"Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (P) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (Q) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΡΠΉ ΡΠΈΠ»ΡΡΡ (Q, ΡΠΈΠ»ΡΡΡ (P, ΠΌΠΈΡ)). Π΄Π»ΠΈΠ½Π°> 0}}},
ΡΠΈΠ½: {ΡΠ΅ΠΆ.: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²Π½Π΅: {ΡΠ΅ΠΆΠΈΠΌ: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²ΡΡ
ΠΎΠ΄: 'S'}} },
"Π²ΡΠ΅" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (P) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (Q) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΡΠΉ ΡΠΈΠ»ΡΡΡ (ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ (Q), ΡΠΈΠ»ΡΡΡ (P, ΠΌΠΈΡ)). Π΄Π»ΠΈΠ½Π° == 0}}},
ΡΠΈΠ½: {ΡΠ΅ΠΆ.: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²Π½Π΅: {ΡΠ΅ΠΆΠΈΠΌ: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²ΡΡ
ΠΎΠ΄:'S'}} }
}
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ var = ΡΠ»ΠΎΠ²ΠΎΠΠ½Π°ΡΠ΅Π½ΠΈΡ[ΡΠ»ΠΎΠ²ΠΎ];
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ == undefined?{sem: undefined, syn: ''}:meaning;
}
// ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ:
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ = ΡΡΠ½ΠΊΡΠΈΡ (Q) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Ρ
) {Π²ΠΎΠ·Π²ΡΠ°Ρ! Q (Ρ
)}
}
//ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ ΠΈ f, ΠΈ a Π΄Π°Π΄ΡΡ ΡΠ²ΠΎΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊ ΠΌΠΈΡΡ.
ΠΏΡΠΈΠ΄Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΌΠΈΡΠΎΠ²ΠΎΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ.
Π²Π°Ρ applyWorldPassing = ΡΡΠ½ΠΊΡΠΈΡ (f, a) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Ρ) {Π²ΠΎΠ·Π²ΡΠ°Ρ Π΅ (Ρ) (Π° (Ρ))}
}
var combMeaning = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) {
var Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
Comb = canApply (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, 0)
var i = Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π³ΡΠ΅Π±Π΅Π½ΠΊΠ° [randomInteger (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π³ΡΠ΅Π±Π΅Π½ΠΊΠ°. Π΄Π»ΠΈΠ½Π°)]
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
Π΅ΡΠ»ΠΈ (s.dir == 'L') {
var f = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].sem
var a = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i-1].sem
var newmeaning = {sem: applyWorldPassing(f,a), syn: s.out}
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(0,i-1).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+1))
}
Π΅ΡΠ»ΠΈ (s.dir == 'R') {
var f = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].sem
var a = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i+1].sem
var newmeaning = {sem: applyWorldPassing(f,a), syn: s.out}
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(0,i).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+2))
}
}
//ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ (ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ) ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ.
var canApply = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ) {
Π΅ΡΠ»ΠΈ(Ρ==Π·Π½Π°ΡΠ΅Π½ΠΈΡ.Π΄Π»ΠΈΠ½Π°){
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ []
}
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
if (s.
hasOwnProperty('dir')){ //ΡΡΠ½ΠΊΡΠΎΡ
var a = ((s.dir == 'L')?syntaxMatch(s.int, values[i-1].syn):false) |
((s.dir == 'R')?syntaxMatch(s.int, values[i+1].syn):false)
Π΅ΡΠ»ΠΈ (Π°) {Π²ΠΎΠ·Π²ΡΠ°Ρ [i].concat (canApply (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ + 1))}
}
return canApply(Π·Π½Π°ΡΠ΅Π½ΠΈΡ,i+1)
}
// Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°Match ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ ΠΊ
// ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠ°Π²Π½Ρ Π»ΠΈ Π΄Π²Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΈΠΏΠ°.
var ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ = ΡΡΠ½ΠΊΡΠΈΡ (s, t) {
Π²Π΅ΡΠ½ΡΡΡ !s.hasOwnProperty('dir') ? Ρ==Ρ :
s.dir==t.dir ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (s.int, t.int) ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (s.out, t.out)
}
// Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
// Π²Π»Π΅Π²ΠΎ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ.
var combMeanings = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) {
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.length==1 ? Π·Π½Π°ΡΠ΅Π½ΠΈΡ[0].sem : ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΠ·Π½Π°ΡΠ΅Π½ΠΈΡ(ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΠ·Π½Π°ΡΠ΅Π½ΠΈΡ(Π·Π½Π°ΡΠ΅Π½ΠΈΡ))
}
///ΡΠ²Π΅ΡΠ½ΡΡΡ:
var literalListener = ΡΡΠ½ΠΊΡΠΈΡ (Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅) {
ΠΡΠ²ΠΎΠ΄({
ΠΌΠΎΠ΄Π΅Π»Ρ () {
var m = Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅)
var world = worldPrior(3,m)
ΡΠ°ΠΊΡΠΎΡ(ΠΌ(ΠΌΠΈΡ)?0:-ΠΠ΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡ)
Π²Π΅ΡΠ½ΡΡΡ ΠΌΠΈΡ
}
})
}
Π²Π°Ρ makeObj = ΡΡΠ½ΠΊΡΠΈΡ () {
return {Π±Π»ΠΎΠ½Π΄ΠΈΠ½: ΡΠ»ΠΈΠΏ (0,5), ΠΏΡΠΈΡΡΠ½ΡΠΉ: ΡΠ»ΠΈΠΏ (0,5), Π²ΡΡΠΎΠΊΠΈΠΉ: ΡΠ»ΠΈΠΏ (0,5)}
}
var worldPrior = function(nObjLeft, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Fn, worldSoFar, prevFactor) {
Π²Π°Ρ worldSoFar = worldSoFar==undefined ? [] : ΠΌΠΈΡSoFar
var prevFactor = prevFactor==undefined ? 0 : ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ°ΠΊΡΠΎΡ
Π΅ΡΠ»ΠΈ(nObjLeft==0) {
ΡΠ°ΠΊΡΠΎΡ(-ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ°ΠΊΡΠΎΡ)
Π²Π΅ΡΠ½ΡΡΡ ΠΌΠΈΡSoFar
} Π΅ΡΠ΅ {
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ newObj = makeObj()
var newWorld = worldSoFar.
concat([newObj])
var newFactor = Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Fn(newWorld)?0:-100
ΡΠ°ΠΊΡΠΎΡ (Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΊΡΠΎΡ - ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ°ΠΊΡΠΎΡ)
return worldPrior(nObjLeft-1, ΠΎΠ·Π½Π°ΡΠ°Π΅ΡFn, newWorld, newFactor)
}
}
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ var = ΡΡΠ½ΠΊΡΠΈΡ (Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅) {
Π²Π΅ΡΠ½ΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ(
ΡΠΈΠ»ΡΡΡ (ΡΡΠ½ΠΊΡΠΈΡ (m) {Π²ΠΎΠ·Π²ΡΠ°Ρ! (m.sem == undefined)},
ΠΊΠ°ΡΡΠ° (ΡΡΠ½ΠΊΡΠΈΡ (w) {Π²ΠΎΠ·Π²ΡΠ°Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (w)},
Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅.split(" "))))
}
var lexicalMeaning = ΡΡΠ½ΠΊΡΠΈΡ (ΡΠ»ΠΎΠ²ΠΎ) {
var wordMeanings = {
"Π±Π»ΠΎΠ½Π΄ΠΈΠ½" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (obj) {Π²ΠΎΠ·Π²ΡΠ°Ρ obj.blond}},
syn: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'} },
"Ρ
ΠΎΡΠΎΡΠΈΠΉ" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (ΠΎΠ±ΡΠ΅ΠΊΡ) {Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Ρ
ΠΎΡΠΎΡΠΈΠΉ}},
syn: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'} },
"ΠΠΎΠ±": {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°Ρ Π½Π°ΠΉΡΠΈ (ΡΡΠ½ΠΊΡΠΈΡ (ΠΎΠ±ΡΠ΅ΠΊΡ) {Π²ΠΎΠ·Π²ΡΠ°Ρ obj.name = = "ΠΠΎΠ±"}, ΠΌΠΈΡ)},
ΡΠΈΠ½: 'ΠΠ'},
"Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (P) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (Q) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΡΠΉ ΡΠΈΠ»ΡΡΡ (Q, ΡΠΈΠ»ΡΡΡ (P, ΠΌΠΈΡ)).
Π΄Π»ΠΈΠ½Π°> 0}}},
ΡΠΈΠ½: {ΡΠ΅ΠΆ.: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²Π½Π΅: {ΡΠ΅ΠΆΠΈΠΌ: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²ΡΡ
ΠΎΠ΄: 'S'}} },
"Π²ΡΠ΅" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (P) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (Q) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΡΠΉ ΡΠΈΠ»ΡΡΡ (ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ (Q), ΡΠΈΠ»ΡΡΡ (P, ΠΌΠΈΡ)). Π΄Π»ΠΈΠ½Π° == 0}}},
ΡΠΈΠ½: {ΡΠ΅ΠΆ.: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²Π½Π΅: {ΡΠ΅ΠΆΠΈΠΌ: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²ΡΡ
ΠΎΠ΄:'S'}} }
}
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ var = ΡΠ»ΠΎΠ²ΠΎΠΠ½Π°ΡΠ΅Π½ΠΈΡ[ΡΠ»ΠΎΠ²ΠΎ];
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ == undefined?{sem: undefined, syn: ''}:meaning;
}
// ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ:
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ = ΡΡΠ½ΠΊΡΠΈΡ (Q) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Ρ
) {Π²ΠΎΠ·Π²ΡΠ°Ρ! Q (Ρ
)}
}
//ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ ΠΈ f, ΠΈ a Π΄Π°Π΄ΡΡ ΡΠ²ΠΎΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊ ΠΌΠΈΡΡ. ΠΏΡΠΈΠ΄Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΌΠΈΡΠΎΠ²ΠΎΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ.
Π²Π°Ρ applyWorldPassing = ΡΡΠ½ΠΊΡΠΈΡ (f, a) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Ρ) {Π²ΠΎΠ·Π²ΡΠ°Ρ Π΅ (Ρ) (Π° (Ρ))}
}
var combMeaning = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) {
var Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
Comb = canApply (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, 0)
var i = Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π³ΡΠ΅Π±Π΅Π½ΠΊΠ° [randomInteger (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π³ΡΠ΅Π±Π΅Π½ΠΊΠ°. Π΄Π»ΠΈΠ½Π°)]
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
Π΅ΡΠ»ΠΈ (s.dir == 'L') {
var f = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].sem
var a = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i-1].sem
var newmeaning = {sem: applyWorldPassing(f,a), syn: s.out}
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(0,i-1).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+1))
}
Π΅ΡΠ»ΠΈ (s.dir == 'R') {
var f = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].sem
var a = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i+1].sem
var newmeaning = {sem: applyWorldPassing(f,a), syn: s.out}
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(0,i).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+2))
}
}
//ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ (ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ) ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ.
var canApply = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ) {
Π΅ΡΠ»ΠΈ(Ρ==Π·Π½Π°ΡΠ΅Π½ΠΈΡ.Π΄Π»ΠΈΠ½Π°){
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ []
}
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
if (s.hasOwnProperty('dir')){ //ΡΡΠ½ΠΊΡΠΎΡ
var a = ((s.dir == 'L')?syntaxMatch(s.

68.114.220
59.66.178
216.179.180
slice(0,i).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+2))
}
}
//ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ (ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ) ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ.
var canApply = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ) {
Π΅ΡΠ»ΠΈ(Ρ==Π·Π½Π°ΡΠ΅Π½ΠΈΡ.Π΄Π»ΠΈΠ½Π°){
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ []
}
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
if (s.hasOwnProperty('dir')){ //ΡΡΠ½ΠΊΡΠΎΡ
var a = ((s.dir == 'L')?syntaxMatch(s.int, values[i-1].syn):false) |
((s.dir == 'R')?syntaxMatch(s.int, values[i+1].syn):false)
Π΅ΡΠ»ΠΈ (Π°) {Π²ΠΎΠ·Π²ΡΠ°Ρ [i].concat (canApply (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ + 1))}
}
return canApply(Π·Π½Π°ΡΠ΅Π½ΠΈΡ,i+1)
}
// Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°Match ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ ΠΊ
// ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠ°Π²Π½Ρ Π»ΠΈ Π΄Π²Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΈΠΏΠ°.
var ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ = ΡΡΠ½ΠΊΡΠΈΡ (s, t) {
Π²Π΅ΡΠ½ΡΡΡ !s.hasOwnProperty('dir') ? Ρ==Ρ :
s.dir==t.dir ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (s.int, t.int) ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (s.out, t.out)
}
// Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
// Π²Π»Π΅Π²ΠΎ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ.
var combMeanings = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) {
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
length==1 ? Π·Π½Π°ΡΠ΅Π½ΠΈΡ[0].sem : ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΠ·Π½Π°ΡΠ΅Π½ΠΈΡ(ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΠ·Π½Π°ΡΠ΅Π½ΠΈΡ(Π·Π½Π°ΡΠ΅Π½ΠΈΡ))
}
split(" "))))
}
var lexicalMeaning = ΡΡΠ½ΠΊΡΠΈΡ (ΡΠ»ΠΎΠ²ΠΎ, ΠΌΠΈΡ) {
var wordMeanings = {
"Π±Π»ΠΎΠ½Π΄ΠΈΠ½" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (obj) {Π²ΠΎΠ·Π²ΡΠ°Ρ obj.blond},
syn: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'} },
"Ρ
ΠΎΡΠΎΡΠΈΠΉ" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (obj) {return obj.nice},
syn: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'} },
"ΠΠΎΠ±": {
sem: Π½Π°ΠΉΡΠΈ (ΡΡΠ½ΠΊΡΠΈΡ (obj) {return obj.name = = "ΠΠΎΠ±"}, ΠΌΠΈΡ),
ΡΠΈΠ½: 'ΠΠ'},
"Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (P) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Q) {ΡΠΈΠ»ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Q, ΡΠΈΠ»ΡΡΡ (P, ΠΌΠΈΡ)). Π΄Π»ΠΈΠ½Π°> 0}},
ΡΠΈΠ½: {ΡΠ΅ΠΆ.: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²Π½Π΅: {ΡΠ΅ΠΆΠΈΠΌ: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²ΡΡ
ΠΎΠ΄: 'S'}} },
"Π²ΡΠ΅" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (P) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Q) {ΡΠΈΠ»ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ (Q), ΡΠΈΠ»ΡΡΡ (P, ΠΌΠΈΡ)). Π΄Π»ΠΈΠ½Π° == 0}},
ΡΠΈΠ½: {ΡΠ΅ΠΆ.: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²Π½Π΅: {ΡΠ΅ΠΆΠΈΠΌ: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²ΡΡ
ΠΎΠ΄:'S'}} }
}
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ var = ΡΠ»ΠΎΠ²ΠΎΠΠ½Π°ΡΠ΅Π½ΠΈΡ[ΡΠ»ΠΎΠ²ΠΎ];
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ == undefined?{sem: undefined, syn: ''}:meaning;
}
// ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ:
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ = ΡΡΠ½ΠΊΡΠΈΡ (Q) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Ρ
) {Π²ΠΎΠ·Π²ΡΠ°Ρ! Q (Ρ
)}
}
var combMeaning = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) {
var Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
Comb = canApply (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, 0)
Π΄ΠΈΡΠΏΠ»Π΅ΠΉ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π³ΡΠ΅Π±Π΅Π½Ρ)
var i = Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π³ΡΠ΅Π±Π΅Π½ΠΊΠ° [randomInteger (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π³ΡΠ΅Π±Π΅Π½ΠΊΠ°.
Π΄Π»ΠΈΠ½Π°)]
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
Π΅ΡΠ»ΠΈ (s.dir == 'L') {
var f = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].sem
var a = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i-1].sem
var newmeaning = {sem: f(a), syn: s.out}
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(0,i-1).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+1))
}
Π΅ΡΠ»ΠΈ (s.dir == 'R') {
var f = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].sem
var a = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i+1].sem
var newmeaning = {sem: f(a), syn: s.out}
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(0,i).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+2))
}
}
//ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ (ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ) ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ.
var canApply = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ) {
Π΅ΡΠ»ΠΈ(Ρ==Π·Π½Π°ΡΠ΅Π½ΠΈΡ.Π΄Π»ΠΈΠ½Π°){
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ []
}
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
if (s.hasOwnProperty('dir')){ //ΡΡΠ½ΠΊΡΠΎΡ
var a = ((s.dir == 'L')?syntaxMatch(s.int, values[i-1].syn):false) |
((s.dir == 'R')?syntaxMatch(s.int, values[i+1].syn):false)
Π΅ΡΠ»ΠΈ (Π°) {Π²ΠΎΠ·Π²ΡΠ°Ρ [i].concat (canApply (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ + 1))}
}
return canApply(Π·Π½Π°ΡΠ΅Π½ΠΈΡ,i+1)
}
// Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°Match ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ ΠΊ
// ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠ°Π²Π½Ρ Π»ΠΈ Π΄Π²Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΈΠΏΠ°.
var ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ = ΡΡΠ½ΠΊΡΠΈΡ (s, t) {
Π²Π΅ΡΠ½ΡΡΡ !s.hasOwnProperty('dir') ? Ρ==Ρ :
s.dir==t.dir ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (s.int, t.int) ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (s.out, t.out)
}
// Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
// Π²Π»Π΅Π²ΠΎ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ.
var combMeanings = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) {
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.length==1 ? Π·Π½Π°ΡΠ΅Π½ΠΈΡ[0].sem : ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΠ·Π½Π°ΡΠ΅Π½ΠΈΡ(ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΠ·Π½Π°ΡΠ΅Π½ΠΈΡ(Π·Π½Π°ΡΠ΅Π½ΠΈΡ))
}
///
//literalListener("ΠΠΎΠ± Ρ
ΠΎΡΠΎΡΠΈΠΉ")
//literalListener("Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π»ΠΎΠ½Π΄ΠΈΠ½Ρ Ρ
ΠΎΡΠΎΡΠΈ")
//literalListener("Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π»ΠΎΠ½Π΄ΠΈΠ½Ρ ΠΌΠΈΠ»ΡΠ΅")
Π° ΠΈΠΌΠ΅Π½Π½ΠΎ.table (literalListener (Β«Π²ΡΠ΅ Π±Π»ΠΎΠ½Π΄ΠΈΠ½Ρ Ρ
ΠΎΡΠΎΡΠΈΠ΅Β»))
concat([newObj])
return worldPrior(nObjLeft-1, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Fn, newWorld)
}
}
concat([newObj])
var newFactor = Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Fn(newWorld)?0:-100
ΡΠ°ΠΊΡΠΎΡ (Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΊΡΠΎΡ - ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ°ΠΊΡΠΎΡ)
return worldPrior(nObjLeft-1, ΠΎΠ·Π½Π°ΡΠ°Π΅ΡFn, newWorld, newFactor)
}
}
Ρ
ΠΎΡΠΎΡΠΈΠΉ}},
syn: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'} },
"ΠΠΎΠ±": {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°Ρ Π½Π°ΠΉΡΠΈ (ΡΡΠ½ΠΊΡΠΈΡ (ΠΎΠ±ΡΠ΅ΠΊΡ) {Π²ΠΎΠ·Π²ΡΠ°Ρ obj.name = = "ΠΠΎΠ±"}, ΠΌΠΈΡ)},
ΡΠΈΠ½: 'ΠΠ'},
"Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (P) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (Q) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΡΠΉ ΡΠΈΠ»ΡΡΡ (Q, ΡΠΈΠ»ΡΡΡ (P, ΠΌΠΈΡ)). Π΄Π»ΠΈΠ½Π°> 0}}},
ΡΠΈΠ½: {ΡΠ΅ΠΆ.: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²Π½Π΅: {ΡΠ΅ΠΆΠΈΠΌ: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²ΡΡ
ΠΎΠ΄: 'S'}} },
"Π²ΡΠ΅" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (P) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (Q) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΡΠΉ ΡΠΈΠ»ΡΡΡ (ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ (Q), ΡΠΈΠ»ΡΡΡ (P, ΠΌΠΈΡ)). Π΄Π»ΠΈΠ½Π° == 0}}},
ΡΠΈΠ½: {ΡΠ΅ΠΆ.: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²Π½Π΅: {ΡΠ΅ΠΆΠΈΠΌ: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²ΡΡ
ΠΎΠ΄:'S'}} }
}
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ var = ΡΠ»ΠΎΠ²ΠΎΠΠ½Π°ΡΠ΅Π½ΠΈΡ[ΡΠ»ΠΎΠ²ΠΎ];
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ == undefined?{sem: undefined, syn: ''}:meaning;
}
// ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ:
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ = ΡΡΠ½ΠΊΡΠΈΡ (Q) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Ρ
) {Π²ΠΎΠ·Π²ΡΠ°Ρ! Q (Ρ
)}
}
//ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ ΠΈ f, ΠΈ a Π΄Π°Π΄ΡΡ ΡΠ²ΠΎΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊ ΠΌΠΈΡΡ.
ΠΏΡΠΈΠ΄Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΌΠΈΡΠΎΠ²ΠΎΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ.
Π²Π°Ρ applyWorldPassing = ΡΡΠ½ΠΊΡΠΈΡ (f, a) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Ρ) {Π²ΠΎΠ·Π²ΡΠ°Ρ Π΅ (Ρ) (Π° (Ρ))}
}
var combMeaning = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) {
var Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
Comb = canApply (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, 0)
var i = Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π³ΡΠ΅Π±Π΅Π½ΠΊΠ° [randomInteger (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π³ΡΠ΅Π±Π΅Π½ΠΊΠ°. Π΄Π»ΠΈΠ½Π°)]
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
Π΅ΡΠ»ΠΈ (s.dir == 'L') {
var f = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].sem
var a = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i-1].sem
var newmeaning = {sem: applyWorldPassing(f,a), syn: s.out}
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(0,i-1).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+1))
}
Π΅ΡΠ»ΠΈ (s.dir == 'R') {
var f = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].sem
var a = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i+1].sem
var newmeaning = {sem: applyWorldPassing(f,a), syn: s.out}
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(0,i).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+2))
}
}
//ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ (ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ) ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ.
var canApply = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ) {
Π΅ΡΠ»ΠΈ(Ρ==Π·Π½Π°ΡΠ΅Π½ΠΈΡ.Π΄Π»ΠΈΠ½Π°){
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ []
}
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
if (s.
hasOwnProperty('dir')){ //ΡΡΠ½ΠΊΡΠΎΡ
var a = ((s.dir == 'L')?syntaxMatch(s.int, values[i-1].syn):false) |
((s.dir == 'R')?syntaxMatch(s.int, values[i+1].syn):false)
Π΅ΡΠ»ΠΈ (Π°) {Π²ΠΎΠ·Π²ΡΠ°Ρ [i].concat (canApply (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ + 1))}
}
return canApply(Π·Π½Π°ΡΠ΅Π½ΠΈΡ,i+1)
}
// Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°Match ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ ΠΊ
// ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠ°Π²Π½Ρ Π»ΠΈ Π΄Π²Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΈΠΏΠ°.
var ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ = ΡΡΠ½ΠΊΡΠΈΡ (s, t) {
Π²Π΅ΡΠ½ΡΡΡ !s.hasOwnProperty('dir') ? Ρ==Ρ :
s.dir==t.dir ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (s.int, t.int) ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (s.out, t.out)
}
// Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
// Π²Π»Π΅Π²ΠΎ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ.
var combMeanings = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) {
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.length==1 ? Π·Π½Π°ΡΠ΅Π½ΠΈΡ[0].sem : ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΠ·Π½Π°ΡΠ΅Π½ΠΈΡ(ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΠ·Π½Π°ΡΠ΅Π½ΠΈΡ(Π·Π½Π°ΡΠ΅Π½ΠΈΡ))
}
concat([newObj])
var newFactor = Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Fn(newWorld)?0:-100
ΡΠ°ΠΊΡΠΎΡ (Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΊΡΠΎΡ - ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ°ΠΊΡΠΎΡ)
return worldPrior(nObjLeft-1, ΠΎΠ·Π½Π°ΡΠ°Π΅ΡFn, newWorld, newFactor)
}
}
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ var = ΡΡΠ½ΠΊΡΠΈΡ (Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅) {
Π²Π΅ΡΠ½ΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ(
ΡΠΈΠ»ΡΡΡ (ΡΡΠ½ΠΊΡΠΈΡ (m) {Π²ΠΎΠ·Π²ΡΠ°Ρ! (m.sem == undefined)},
ΠΊΠ°ΡΡΠ° (ΡΡΠ½ΠΊΡΠΈΡ (w) {Π²ΠΎΠ·Π²ΡΠ°Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (w)},
Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅.split(" "))))
}
var lexicalMeaning = ΡΡΠ½ΠΊΡΠΈΡ (ΡΠ»ΠΎΠ²ΠΎ) {
var wordMeanings = {
"Π±Π»ΠΎΠ½Π΄ΠΈΠ½" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (obj) {Π²ΠΎΠ·Π²ΡΠ°Ρ obj.blond}},
syn: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'} },
"Ρ
ΠΎΡΠΎΡΠΈΠΉ" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (ΠΎΠ±ΡΠ΅ΠΊΡ) {Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Ρ
ΠΎΡΠΎΡΠΈΠΉ}},
syn: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'} },
"ΠΠΎΠ±": {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°Ρ Π½Π°ΠΉΡΠΈ (ΡΡΠ½ΠΊΡΠΈΡ (ΠΎΠ±ΡΠ΅ΠΊΡ) {Π²ΠΎΠ·Π²ΡΠ°Ρ obj.name = = "ΠΠΎΠ±"}, ΠΌΠΈΡ)},
ΡΠΈΠ½: 'ΠΠ'},
"Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (P) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (Q) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΡΠΉ ΡΠΈΠ»ΡΡΡ (Q, ΡΠΈΠ»ΡΡΡ (P, ΠΌΠΈΡ)).
Π΄Π»ΠΈΠ½Π°> 0}}},
ΡΠΈΠ½: {ΡΠ΅ΠΆ.: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²Π½Π΅: {ΡΠ΅ΠΆΠΈΠΌ: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²ΡΡ
ΠΎΠ΄: 'S'}} },
"Π²ΡΠ΅" : {
sem: ΡΡΠ½ΠΊΡΠΈΡ (ΠΌΠΈΡ) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (P) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (Q) {Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΡΠΉ ΡΠΈΠ»ΡΡΡ (ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ (Q), ΡΠΈΠ»ΡΡΡ (P, ΠΌΠΈΡ)). Π΄Π»ΠΈΠ½Π° == 0}}},
ΡΠΈΠ½: {ΡΠ΅ΠΆ.: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²Π½Π΅: {ΡΠ΅ΠΆΠΈΠΌ: 'R',
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: {ΡΠ΅ΠΆΠΈΠΌ: 'L', ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»: 'NP', Π²ΡΡ
ΠΎΠ΄: 'S'},
Π²ΡΡ
ΠΎΠ΄:'S'}} }
}
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ var = ΡΠ»ΠΎΠ²ΠΎΠΠ½Π°ΡΠ΅Π½ΠΈΡ[ΡΠ»ΠΎΠ²ΠΎ];
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ == undefined?{sem: undefined, syn: ''}:meaning;
}
// ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ:
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ = ΡΡΠ½ΠΊΡΠΈΡ (Q) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Ρ
) {Π²ΠΎΠ·Π²ΡΠ°Ρ! Q (Ρ
)}
}
//ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ ΠΈ f, ΠΈ a Π΄Π°Π΄ΡΡ ΡΠ²ΠΎΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊ ΠΌΠΈΡΡ. ΠΏΡΠΈΠ΄Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΌΠΈΡΠΎΠ²ΠΎΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ.
Π²Π°Ρ applyWorldPassing = ΡΡΠ½ΠΊΡΠΈΡ (f, a) {
ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° (Ρ) {Π²ΠΎΠ·Π²ΡΠ°Ρ Π΅ (Ρ) (Π° (Ρ))}
}
var combMeaning = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) {
var Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
Comb = canApply (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, 0)
var i = Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π³ΡΠ΅Π±Π΅Π½ΠΊΠ° [randomInteger (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π³ΡΠ΅Π±Π΅Π½ΠΊΠ°. Π΄Π»ΠΈΠ½Π°)]
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
Π΅ΡΠ»ΠΈ (s.dir == 'L') {
var f = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].sem
var a = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i-1].sem
var newmeaning = {sem: applyWorldPassing(f,a), syn: s.out}
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(0,i-1).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+1))
}
Π΅ΡΠ»ΠΈ (s.dir == 'R') {
var f = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].sem
var a = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i+1].sem
var newmeaning = {sem: applyWorldPassing(f,a), syn: s.out}
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(0,i).concat([Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅]).concat(Π·Π½Π°ΡΠ΅Π½ΠΈΡ.slice(i+2))
}
}
//ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ (ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ) ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ.
var canApply = ΡΡΠ½ΠΊΡΠΈΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ) {
Π΅ΡΠ»ΠΈ(Ρ==Π·Π½Π°ΡΠ΅Π½ΠΈΡ.Π΄Π»ΠΈΠ½Π°){
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ []
}
var s = Π·Π½Π°ΡΠ΅Π½ΠΈΡ[i].syn
if (s.hasOwnProperty('dir')){ //ΡΡΠ½ΠΊΡΠΎΡ
var a = ((s.dir == 'L')?syntaxMatch(s.