ΠΡ Π»ΠΈΡΠ΅Π½ ΠΎΠΏΠΈΡ Π²ΠΈ ΠΊΠ°Π·Π²Π°ΠΌ ΠΊΠΎΠ΅ ΠΊΡΠ΄Π΅ ΠΈ ΠΊΠΎΠ³Π° Π΅ Π±ΠΈΠ»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Π’ΠΎΠ²Π° Π΅ ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΈ ΡΠ΅Π·Π°, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° Π΅ ΡΡΠ½ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈ ΠΊΡΠ΄Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠΎΠΏΠ°Π΅ΡΠ΅ ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΠΊ - Π½ΠΎ ΡΡΠΊ ΠΈΠΌΠ°ΠΌ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ±Π΅ΠΊΡΠΈΠ²Π΅Π½ Π»ΠΈΡΠ΅Π½ ΠΎΠΏΠΈΡ, ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π²ΡΠΈΡΠΊΠΎ Π΅ ΡΡΠ²ΡΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ Π·Π° Π²Π°Ρ.
ΠΠ°ΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ΡΠ΅ ΠΈ Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ? Π ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° ΡΠΈ Data Science ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²Π°ΠΆΠ½ΠΈ Π΅ΡΠ°ΠΏΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°, ΠΊΠ°ΡΠΎ ΠΏΡΡΠ²ΠΈΡΡ ΠΈ Π½Π°ΠΉ-Π²Π°ΠΆΠ΅Π½ (Π±Π΅Π· Π½Π΅Π³ΠΎ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½ΠΈΡΠΎ Π½ΡΠΌΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ!) Π΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΠ°ΠΉ-ΡΠ΅ΡΡΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π½ΡΠΊΡΠ΄Π΅ ΠΏΠΎΠ΄ Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΠΎΡΠΌΠ° ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ βΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈβ ΠΎΡ ΡΠ°ΠΌ.
ΠΠ·ΠΈΡΠΈΡΠ΅ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΠΈΠ·Π²Π»ΠΈΡΠ°ΡΠ΅ ΡΠΎΡΠ½ΠΎ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ! Π Π΄Π½Π΅Ρ ΡΠ΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° Π·Π° ΡΠ΅Π·ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΈ Π±ΡΡ Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΈ ΡΠ΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΡΠ΄Π΅ ΠΈ ΠΊΠ°ΠΊ ΡΠΎΡΠ½ΠΎ - Π·Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΡΡΠ°Π²Π°.
Π©Π΅ ΠΈΠΌΠ° ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π±Π»ΠΎΠΊΠ° ΠΎΡ ΡΠΈΠΏΠΎΠ²Π΅ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ:
- βΠ‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅β Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΡΠ° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠ°ΡΠΎ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±ΡΠ° ΠΈΠ»ΠΈ SQL.
- Π‘ΠΊΡΠΈΠΏΡΠΎΠ²ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Python Π½Π΅ΡΠ° pandas, numpy ΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π½Π° shell.
- ΠΠ·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° Π³ΡΠ°ΡΠΈΠΊΠΈ Π½Π° Π·Π½Π°Π½ΠΈΡ ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Ρ Π³ΡΠ°ΡΠΈΠΊΠΈ.
ΠΡΠΈΡΠΊΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΡΠΊ Π΅ ΡΠ°ΠΌΠΎ Π»ΠΈΡΠ΅Π½ ΠΎΠΏΠΈΡ, ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π±Π΅ΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ°ΡΠΈΠΈΡΠ΅ ΠΈ βΠ·Π°ΡΠΎ Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎβ - Π²ΡΠ΅ΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠΏΠΈΡΠ° ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠ°Ρ Π½Π° ΠΏΡΡΡ Π²ΠΈ ΠΈ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈ Π·Π° ΡΡΡ
ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ, ΠΊΠ°ΡΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ ΡΠ΅Π·ΠΈ Π΅Π·ΠΈΡΠΈ βΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΡΡΠ²Π°ΡΠ΅ (ΡΠΏΠ΅ΡΠ½ΠΎ) ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ Π΄Π° ΡΡΠΈΠ³Π½Π΅ΡΠ΅ Π΄ΠΎ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ.
"Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ" Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΡΠ° ΡΠΎΡΠ½ΠΎ Π² ΡΠΌΠΈΡΡΠ»Π°, Π² ΠΊΠΎΠΉΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΌΠΈΡΠ»ΠΈΠΌ Π·Π° ΡΡΡ , ΠΊΠΎΠ³Π°ΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ.
Π Π΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±ΡΠ°
ΠΠ°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°ΡΠ° Π°Π»Π³Π΅Π±ΡΠ° Π΄Π½Π΅Ρ? ΠΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ Π΄ΠΎΠ±ΡΠ΅ Π·Π°ΡΠΎ Π΅Π·ΠΈΡΠΈΡΠ΅ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΡΠ° ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π½Π°ΡΠΈΠ½ ΠΈ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΡΠ·Π½Π°ΡΠ΅Π»Π½ΠΎ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΡΠ°, ΠΊΠΎΡΡΠΎ Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° ΠΈΠΌ.
ΠΠ°ΠΊΠ²ΠΎ Π΅ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±ΡΠ°?
Π€ΠΎΡΠΌΠ°Π»Π½Π°ΡΠ° Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡ Π΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ°: ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°ΡΠ° Π°Π»Π³Π΅Π±ΡΠ° Π΅ Π·Π°ΡΠ²ΠΎΡΠ΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΡΡ Ρ ΡΠ΅Π»Π°ΡΠΈΠΈ Π² ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΠ°Π·Π°Π½ΠΎ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΠΎΠ²Π° Π΅ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΡΡ Ρ ΡΠ°Π±Π»ΠΈΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΡΡ Π²ΠΈΠ½Π°Π³ΠΈ Π΄Π° Π΅ ΡΠ°Π±Π»ΠΈΡΠ°.
ΠΠΈΠΆΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²
ΠΠ°ΡΠΎ?
ΠΠ°ΠΏΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π΄Π° ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°Ρ Π΅Π·ΠΈΡΠΈΡΠ΅ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠΎΡΡ Π·Π°Π΄ ΠΈΠ·ΡΠ°Π·ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΡΠ΅ΡΡΠΎ Π΄Π°Π²Π° ΠΏΠΎ-Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ°Π±ΠΎΡΠΈ Π² Π΅Π·ΠΈΡΠΈΡΠ΅ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ.
ΠΠ·Π΅ΡΠΎ ΠΎΡ
ΠΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ Π·Π° ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅:
SQL
ΠΠ·Π΅ΡΠΎ ΠΎΡ
SQL ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±ΡΠ° - Ρ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, SQL Π΅ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π΅Π½! Π’ΠΎΠ΅ΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΈΡΠ΅ΡΠ΅ Π·Π°ΡΠ²ΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°ΡΠ° Π°Π»Π³Π΅Π±ΡΠ°, Π²ΠΈΠ΅ Π²ΡΡΡΠ½ΠΎΡΡ ΠΊΠ°Π·Π²Π°ΡΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅ - Π½ΠΎ ΡΡΡ SQL ΡΠΊΠ°Π·Π²Π°ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ΡΠ΅ ΠΈ ΡΠΎΠ³Π°Π²Π° Π‘Π£ΠΠ Π²Π΅ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° (Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ) ΠΈΠ·ΡΠ°Π·ΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°ΡΠ° Π°Π»Π³Π΅Π±ΡΠ° (ΡΠ΅Ρ
Π½ΠΈΡ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡΠ° Π½ΠΈ Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΊΠ°ΡΠΎ
ΠΠ·Π΅ΡΠΎ ΠΎΡ
ΠΠ°ΡΠΎ?
Π Π΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΈ Π‘Π£ΠΠ: Oracle, Postgres, SQL Server ΠΈ Ρ.Π½. Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ° ΠΏΠΎΡΡΠΈ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅ ΠΈ ΠΈΠΌΠ° Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π³ΠΎΠ»ΡΠΌ ΡΠ°Π½Ρ Π΄Π° ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°ΡΠ΅ Ρ ΡΡΡ , ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ΡΠ΅ΡΠ΅ SQL (ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ), ΠΈΠ»ΠΈ Π΄Π° Π³ΠΎ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ( ΡΡΡΠΎ Π½Π΅ Π΅ ΠΌΠ°Π»ΠΊΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ).
ΠΠ°ΠΊΠ²ΠΎ Π΄Π° ΡΠ΅ΡΠ° ΠΈ ΠΈΠ·ΡΡΠ°Π²Π°ΠΌ
Π‘ΠΏΠΎΡΠ΅Π΄ ΡΡΡΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ ΠΏΠΎ-Π³ΠΎΡΠ΅ (Π·Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°ΡΠ° Π°Π»Π³Π΅Π±ΡΠ°), ΠΈΠΌΠ° Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΠΊΠ°ΠΊΠ²ΠΎ Π΅ NoSQL?
βΠΠ°ΡΠ»ΡΠΆΠ°Π²Π° ΡΠΈ Π΄Π° ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π΅ΠΌ ΠΎΡΠ΅ Π²Π΅Π΄Π½ΡΠΆ, ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½ΡΡ βNoSQLβ ΠΈΠΌΠ° Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΠΏΠΎΠ½ΡΠ°Π½Π΅Π½ ΠΏΡΠΎΠΈΠ·Ρ
ΠΎΠ΄ ΠΈ Π½ΡΠΌΠ° ΠΎΠ±ΡΠΎΠΏΡΠΈΠ΅ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π°ΡΡΠ½Π° ΠΈΠ½ΡΡΠΈΡΡΡΠΈΡ Π·Π°Π΄ Π½Π΅Π³ΠΎ.β ΠΠΎΡΠ΅ΡΠΏΠΎΠ½Π΄Π΅Π½ΡΡΠΊΠΈ
ΠΡΡΡΠ½ΠΎΡΡ Ρ ΠΎΡΠ°ΡΠ° ΡΠ°Π·Π±ΡΠ°Ρ Π°, ΡΠ΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΏΡΠ»Π΅Π½ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π΅ ΠΊΡΠΈΡΠΈΡΠ½Π° ΠΈ Π½ΡΠΊΠΎΠΈ ΠΏΡΠΎΡΡΠΈ Π·Π°ΡΠ²ΠΊΠΈ Ρ Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π΅ Π΄ΠΎΠΌΠΈΠ½ΠΈΡΠ°Ρ - ΠΊΡΠ΄Π΅ΡΠΎ Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ Π±ΡΡΠ·ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈΡΠ΅ ΠΈ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°Ρ Π² Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ΅ ΠΎΠΊΠ°Π·Π°Ρ Π° Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π΅Π½ΡΠΆΠ½ΠΈ, Π½ΠΎ ΠΈ Π²ΡΠ΅Π΄Π½ΠΈ - Π·Π°ΡΠΎ Π΄Π° Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π½Π΅ΡΠΎ, Π°ΠΊΠΎ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ°Π·Π²Π°Π»ΠΈ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ Π·Π° Π½Π°Ρ (Π·Π° Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° Π·Π°Π΄Π°ΡΠ°) - ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°?
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΠ΅ΡΡΠΎ ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π³ΡΠ²ΠΊΠ°Π²ΠΈ ΡΡ Π΅ΠΌΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΠΊΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡ Π΅ΠΌΠΈ Π½Π° ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π΅Π½ ΠΌΠΎΠ΄Π΅Π» - ΠΈ ΡΠΎΠ²Π° Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ Π΄Π° ΡΠ°Π·Π³ΡΡΠ½Π΅ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π±ΡΡΠ·ΠΎ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΉΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ - ΠΈΠ»ΠΈ ΡΡ Π΅ΠΌΠ°ΡΠ° ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π΅ ΡΠ° ΡΠΎΠ»ΠΊΠΎΠ²Π° Π²Π°ΠΆΠ½ΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΈΠ΅ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π΅ΠΊΡΠΏΠ΅ΡΡΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ Π΄ΠΎΠΌΠ΅ΠΉΠ½ Π·Π°Π΅Π΄Π½ΠΎ Ρ Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΌΠ΅ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ - ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π·Π½Π°Π΅ΠΌ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ»Π΅ΡΠ° ΠΈ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ JSON Π·Π° Π²ΡΠ΅ΠΊΠΈ Π·Π°ΠΏΠΈΡ - ΡΠΎΠ²Π° Π½ΠΈ Π΄Π°Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΡΠ²ΠΊΠ°Π²Π° ΡΡΠ΅Π΄Π° Π·Π° ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΌΠΎΠ΄Π΅Π» ΠΈ Π±ΡΡΠ·ΠΎ ΠΈΡΠ΅ΡΠΈΡΠ°Π½Π΅ - ΡΠ°ΠΊΠ° ΡΠ΅ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ NoSQL ΡΠ΅ Π±ΡΠ΄Π΅ Π΄ΠΎΡΠΈ Π·Π° ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΠΎ-ΡΠ΅ΡΠΈΠΌ. ΠΡΠΈΠΌΠ΅ΡΠ΅Π½ Π·Π°ΠΏΠΈΡ (ΠΎΡ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΌΠΎΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ NoSQL Π±Π΅ΡΠ΅ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΌ, ΠΊΡΠ΄Π΅ΡΠΎ Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ).
{"en_wikipedia_url":"https://en.wikipedia.org/wiki/Johnny_Cash",
"ru_wikipedia_url":"https://ru.wikipedia.org/wiki/?curid=301643",
"ru_wiki_pagecount":149616,
"entity":[42775,"ΠΠΆΠΎΠ½Π½ΠΈ ΠΡΡ","ru"],
"en_wiki_pagecount":2338861}
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅
ΠΠ°ΠΊΠ²ΠΎ Π΄Π° ΡΡΠ°?
Π’ΡΠΊ ΠΏΠΎ-ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ΠΎ Π·Π°Π΄Π°ΡΠ°ΡΠ° ΡΠΈ, ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΠΌΠ° ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ NoSQL ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π±ΠΈΡ Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡΠ»ΠΈ Π½Π° ΡΠΎΠ²Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ - ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΠΈΠ·ΡΡΠ°Π²Π°ΡΠ΅ ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°.
Π‘ΠΊΡΠΈΠΏΡΠΎΠ²ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΠ±ΡΠΎ ΠΈΠΌΠ° Python Ρ Π½Π΅Π³ΠΎ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ - ΡΠΎΠ²Π° Π΅ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, Π° Π½Π΅ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠΎ.
- Pandas Π΅ Π±ΡΠΊΠ²Π°Π»Π½ΠΎ ΡΠ²Π΅ΠΉΡΠ°ΡΡΠΊΠΈ Π°ΡΠΌΠ΅ΠΉΡΠΊΠΈ Π½ΠΎΠΆ Π½Π° Data Science; Π² Π½Π΅Π³ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΠΎΠ³ΡΠΎΠΌΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ, Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π΅ ΠΈ Ρ.Π½.
- Numpy - Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΠΌΠ°ΡΡΠΈΡΠΈ ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½Π° Π°Π»Π³Π΅Π±ΡΠ° ΡΠ°ΠΌ.
- Scipy - ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° Π² ΡΠΎΠ·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°.
- ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠΈΡ Jupyter - ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠ²Π°ΡΠ΅Π»Π½ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ ΡΠ΅ Π²ΠΏΠΈΡΠ²Π°Ρ Π΄ΠΎΠ±ΡΠ΅ Π² Π»Π°ΠΏΡΠΎΠΏΠΈ - ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ Π·Π½Π°Π΅.
- ΠΠ°ΡΠ²ΠΊΠΈ - ΡΠ°Π±ΠΎΡΠ° Ρ ΠΌΡΠ΅ΠΆΠ°ΡΠ°.
- Pyspark Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΡΡΠ΅Π΄ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°ΡΠ΅ Ρ ΡΠΎΠ·ΠΈ ΠΈΠ»ΠΈ Spark, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΡΡ Π½Π°ΡΠ° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡ.
- *Selenium - ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ°ΠΉΡΠΎΠ²Π΅ ΠΈ ΡΠ΅ΡΡΡΡΠΈ, ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΏΡΠΎΡΡΠΎ Π½ΡΠΌΠ° Π΄ΡΡΠ³ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Ρ Π΄Π°Π½Π½ΠΈΡΠ΅.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΌΠΈ ΡΡΠ²Π΅Ρ: Π½Π°ΡΡΠ΅ΡΠ΅ Python!
ΠΠ°Π½Π΄ΠΈΡΠ΅
ΠΠ΅ΠΊΠ° Π²Π·Π΅ΠΌΠ΅ΠΌ ΡΠ»Π΅Π΄Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΊΠ°ΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ:
import pandas as pd
df = pd.read_csv(βdata/dataset.csvβ)
# Calculate and rename aggregations
all_together = (df[df[βtrip_typeβ] == βreturnβ]
.groupby(['start_station_name','end_station_name'])
.agg({'trip_duration_seconds': [np.size, np.mean, np.min, np.max]})
.rename(columns={'size': 'num_trips',
'mean': 'avg_duration_seconds',
'amin': min_duration_seconds',
βamax': 'max_duration_seconds'}))
ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ ΠΊΠΎΠ΄ΡΡ ΡΠ΅ Π²ΠΏΠΈΡΠ²Π° Π² ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡ SQL ΠΌΠΎΠ΄Π΅Π».
SELECT start_station_name, end_station_name, count(trip_duration_seconds) as size, β¦..
FROM dataset
WHERE trip_type = βreturnβ
GROUPBY start_station_name, end_station_name
ΠΠΎ Π²Π°ΠΆΠ½Π°ΡΠ° ΡΠ°ΡΡ Π΅, ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΄ Π΅ ΡΠ°ΡΡ ΠΎΡ ΡΠΊΡΠΈΠΏΡΠ° ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ°; Π²ΡΡΡΠ½ΠΎΡΡ Π½ΠΈΠ΅ Π²Π³ΡΠ°ΠΆΠ΄Π°ΠΌΠ΅ Π·Π°ΡΠ²ΠΊΠΈ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° Π½Π° Python. Π ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ Π΅Π·ΠΈΠΊΡΡ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΈΠ΄Π²Π° ΠΏΡΠΈ Π½Π°Ρ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ°ΡΠΎ Pandas ΠΈΠ»ΠΈ pySpark.
ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ Π² pySpark Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΡΠΈΠΏ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ ΡΡΠ΅Π· Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ Π² Π΄ΡΡ Π° Π½Π°:
df.filter(df.trip_type = βreturnβ)
.groupby(βdayβ)
.agg({duration: 'mean'})
.sort()
ΠΡΠ΄Π΅ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΡΠ΅ΡΠ°
ΠΠ° ΡΠ°ΠΌΠΈΡ Python ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ
Shell ΠΊΠ°ΡΠΎ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ
ΠΠΎΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ ΡΡΠΌ ΡΠ°Π±ΠΎΡΠΈΠ», ΡΠ° Π²ΡΡΡΠ½ΠΎΡΡ ΡΠ΅Π» ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ ΠΊΠΎΠ΄ Π² Python, Java ΠΈ ΡΠ°ΠΌΠΈΡΠ΅ ΡΠ΅Π» ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΡΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅ Π² bash/zsh/etc ΠΊΠ°ΡΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ Π·Π°ΡΠ²ΠΊΠ° ΠΎΡ Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ (ΠΌΠΎΠΆΠ΅ΡΠ΅, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΡΠΈΠΊΠ»ΠΈ ΡΠ°ΠΌ, Π½ΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΡΠΈΠΏΠΈΡΠ½ΠΎ Π·Π° DS ΠΊΠΎΠ΄ Π² Π΅Π·ΠΈΡΠΈΡΠ΅ Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°ΡΠ°), Π½Π΅ΠΊΠ° Π΄Π°Π΄Π΅ΠΌ ΠΏΡΠΎΡΡ ΠΏΡΠΈΠΌΠ΅Ρ - ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ QID ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΠΊΠΈΠ΄Π°Π½Π½ΠΈ ΠΈ ΠΏΡΠ»Π½ΠΈ Π²ΡΡΠ·ΠΊΠΈ ΠΊΡΠΌ ΡΡΡΠΊΠΈΡΠ΅ ΠΈ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΡΠ΅ ΡΠΈΠΊΠΈΡΠ°, Π·Π° ΡΠΎΠ²Π° Π½Π°ΠΏΠΈΡΠ°Ρ ΠΏΡΠΎΡΡΠ° Π·Π°ΡΠ²ΠΊΠ° ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ Π² bash ΠΈ Π·Π° ΠΈΠ·Ρ ΠΎΠ΄Π° Π½Π°ΠΏΠΈΡΠ°Ρ ΠΏΡΠΎΡΡ ΡΠΊΡΠΈΠΏΡ Π² Python, ΠΊΠΎΠΉΡΠΎ ΡΡΠ±ΡΠ°Π½ΠΈ ΡΠ°ΠΊΠ°:
pv βdata/latest-all.json.gzβ |
unpigz -c |
jq --stream $JQ_QUERY |
python3 scripts/post_process.py "output.csv"
ΠΊΡΠ΄Π΅ΡΠΎ
JQ_QUERY = 'select((.[0][1] == "sitelinks" and (.[0][2]=="enwiki" or .[0][2] =="ruwiki") and .[0][3] =="title") or .[0][1] == "id")'
Π’ΠΎΠ²Π° Π²ΡΡΡΠ½ΠΎΡΡ Π±Π΅ΡΠ΅ ΡΠ΅Π»ΠΈΡΡ ΡΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΡΡΠ·Π΄Π°Π΄Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΠΎ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½Π΅; ΠΊΠ°ΠΊΡΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ Π² ΠΏΠΎΡΠΎΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ:
- pv filepath - Π΄Π°Π²Π° Π»Π΅Π½ΡΠ° Π·Π° Π½Π°ΠΏΡΠ΅Π΄ΡΠΊΠ° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΡΠ°ΠΉΠ»Π° ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ ΠΌΡ Π½Π°ΡΠ°ΡΡΠΊ
- unpigz -c ΠΏΡΠΎΡΠ΅ΡΠ΅ ΡΠ°ΡΡ ΠΎΡ Π°ΡΡ ΠΈΠ²Π° ΠΈ Π³ΠΎ Π΄Π°Π΄Π΅ Π½Π° jq
- jq Ρ ΠΊΠ»ΡΡΠ° - stream Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΈ Π³ΠΎ ΠΏΡΠ΅Π΄Π°Π΄Π΅ Π½Π° ΠΏΠΎΡΡΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° (ΡΡΡΠΎΡΠΎ ΠΊΠ°ΡΠΎ Π² ΠΏΡΡΠ²ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ) Π² Python
- Π²ΡΡΡΠ΅ΡΠ½ΠΎ, ΠΏΠΎΡΡΠΏΡΠΎΡΠ΅ΡΠΎΡΡΡ Π±Π΅ΡΠ΅ ΠΏΡΠΎΡΡΠ° Π΄ΡΡΠΆΠ°Π²Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, ΠΊΠΎΡΡΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠ° ΠΈΠ·Ρ ΠΎΠ΄Π°
ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ, ΡΠ°Π±ΠΎΡΠ΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΏΠΎΡΠΎΠΊ Π²ΡΡΡ Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ (0.5TB), Π±Π΅Π· Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΈ Π½Π°ΠΏΡΠ°Π²Π΅Π½ ΠΎΡ ΠΏΡΠΎΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°.
ΠΡΡΠ³ Π²Π°ΠΆΠ΅Π½ ΡΡΠ²Π΅Ρ: ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π΄ΠΎΠ±ΡΠ΅ ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΈ Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ bash/zsh/etc.
ΠΡΠ΄Π΅ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ? ΠΠ°, ΠΏΠΎΡΡΠΈ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅ - ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΈΠΌΠ° ΠΠΠΠΠ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ. ΠΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΡΡΠΊ
R ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅
ΠΡΠ½ΠΎΠ²ΠΎ ΡΠΈΡΠ°ΡΠ΅Π»ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡΠ·ΠΊΠ»ΠΈΠΊΠ½Π΅ - Π°ΠΌΠΈ ΡΠΎΠ²Π° Π΅ ΡΡΠ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Π½ Π΅Π·ΠΈΠΊ! Π ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠΎΠΉ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ°Π². ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΎΠ±Π°ΡΠ΅ ΡΡΠ΅ΡΠ°Ρ R Π² ΡΠ°ΠΊΡΠ² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΡΠ΅ Π²ΡΡΡΠ½ΠΎΡΡ Π±Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ.
R Π΅ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠ° ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½Π° ΡΡΠ΅Π΄Π° ΠΈ Π΅Π·ΠΈΠΊ Π·Π° ΡΡΠ°ΡΠΈΡΠ½ΠΎ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ (ΡΠΏΠΎΡΠ΅Π΄
Π²Π·Π΅ΡΠ°
ΠΠ°ΡΠΎ Π΅Π΄ΠΈΠ½ ΡΡΠ΅Π½ ΠΏΠΎ Π΄Π°Π½Π½ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ R? ΠΠ°ΠΉ-ΠΌΠ°Π»ΠΊΠΎΡΠΎ, Π·Π°ΡΠΎΡΠΎ ΠΈΠΌΠ° ΠΎΠ³ΡΠΎΠΌΠ΅Π½ ΡΠ»ΠΎΠΉ ΠΎΡ Π½Π΅-ΠΠ’ Ρ ΠΎΡΠ°, ΠΊΠΎΠΈΡΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π΄Π°Π½Π½ΠΈ Π² R. ΠΠΎΠΏΠ°Π΄Π½Π°Ρ Π½Π° Π½Π΅Π³ΠΎ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠ°:
- Π€Π°ΡΠΌΠ°ΡΠ΅Π²ΡΠΈΡΠ΅Π½ ΡΠ΅ΠΊΡΠΎΡ.
- ΠΠΈΠΎΠ»ΠΎΠ·ΠΈ.
- Π€ΠΈΠ½Π°Π½ΡΠΎΠ² ΡΠ΅ΠΊΡΠΎΡ.
- Π₯ΠΎΡΠ° Ρ ΡΠΈΡΡΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ ΡΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ.
- Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ (ΠΊΠΎΠΈΡΠΎ ΡΠ΅ΡΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ ΡΠ°ΠΌΠΎ Π² Π°Π²ΡΠΎΡΡΠΊΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ ΠΊΠ°ΡΠΎ R ΠΏΠ°ΠΊΠ΅Ρ).
ΠΠ°ΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π΅ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ? ΠΡΠ² ΡΠΎΡΠΌΠ°ΡΠ°, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ΡΡΠΎ ΡΠ΅ ΡΡΠ΅ΡΠ°, ΡΠΎΠ²Π° Π²ΡΡΡΠ½ΠΎΡΡ Π΅ Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π», Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠΈΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° Π·Π°ΡΠ²ΠΊΠ° (ΠΌΠΎΠ΄Π΅Π»), ΠΊΠ°ΠΊΡΠΎ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΊΠ°ΡΠΎ ggplot2 - ΡΠΎΠ²Π° ΡΡΡΠΎ Π΅ ΡΠΎΡΠΌΠ° Π·Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ .
ΠΡΠΈΠΌΠ΅ΡΠ½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ggplot(data = beav,
aes(x = id, y = temp,
group = activ, color = activ)) +
geom_line() +
geom_point() +
scale_color_manual(values = c("red", "blue"))
ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅ΠΈ ΠΎΡ R ΡΠ° ΠΌΠΈΠ³ΡΠΈΡΠ°Π»ΠΈ Π² ΠΏΠ°ΠΊΠ΅ΡΠΈ Π½Π° Python ΠΊΠ°ΡΠΎ pandas, numpy ΠΈΠ»ΠΈ scipy, ΠΊΠ°ΡΠΎ ΡΠ°ΠΌΠΊΠΈ Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ - ΡΠ°ΠΊΠ° ΡΠ΅ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ° Π² R ΡΠ΅ Π²ΠΈ ΡΠ΅ ΡΡΠΎΡΡΡ ΠΏΠΎΠ·Π½Π°ΡΠΈ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΈ.
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅, Π½Π°ΠΏΡ.
ΠΡΠ°ΡΠΈΠΊΠΈ Π½Π° Π·Π½Π°Π½ΠΈΡ
Π’ΡΠΊ ΠΈΠΌΠ°ΠΌ ΠΌΠ°Π»ΠΊΠΎ Π½Π΅ΠΎΠ±ΠΈΡΠ°Π΅Π½ ΠΎΠΏΠΈΡ, Π·Π°ΡΠΎΡΠΎ Π΄ΠΎΡΡΠ° ΡΠ΅ΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π±ΠΎΡΡ Ρ Π³ΡΠ°ΡΠΈ Π½Π° Π·Π½Π°Π½ΠΈΡ ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° Π³ΡΠ°ΡΠΈΠΊΠΈ. ΠΠ°ΡΠΎΠ²Π° Π½Π΅ΠΊΠ° Π½Π°ΠΊΡΠ°ΡΠΊΠΎ Π΄Π° ΠΏΡΠ΅Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°Π·ΠΈ ΡΠ°ΡΡ Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π΅ΠΊΠ·ΠΎΡΠΈΡΠ½Π°.
Π ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠΈΠΊΡΠΈΡΠ°Π½Π° ΡΡ Π΅ΠΌΠ°, Π½ΠΎ ΡΡΠΊ ΡΡ Π΅ΠΌΠ°ΡΠ° Π΅ Π³ΡΠ²ΠΊΠ°Π²Π°, Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ Π²ΡΡΡΠ½ΠΎΡΡ Π΅ βΠΊΠΎΠ»ΠΎΠ½Π°β ΠΈ Π΄ΠΎΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ ΡΠΈ, ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°ΡΠ΅ ΡΠΎΠ²Π΅ΠΊ ΠΈ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΎΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²ΠΈ Π½Π΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠ° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠΎΠ²Π΅ΠΊ, ΠΡΠ³Π»Π°Ρ ΠΠ΄Π°ΠΌΡ, ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠΎΠ²Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π°.
ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΎΠ³ΡΠΎΠΌΠ½Π° ΡΠ°Π±Π»ΠΈΡΠ° ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ Ρ ΠΎΠ³ΡΠΎΠΌΠ΅Π½ Π±ΡΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π±ΠΈΡ Π° Π±ΠΈΠ»ΠΈ NULL ΠΈΠ»ΠΈ Π·Π°ΠΏΡΠ»Π½Π΅Π½ΠΈ Ρ Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ False, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ°Π»ΠΊΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ Π½Π°Ρ Π΄Π° ΠΈΠΌΠ°Ρ Π·Π°ΠΏΠΈΡ Π² ΠΊΠΎΡΠ΅ΠΉΡΠΊΠ°ΡΠ° Π½Π°ΡΠΈΠΎΠ½Π°Π»Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° - ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π±ΠΈΡ ΠΌΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΄Π° Π³ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ, Π½ΠΎ ΡΠΎΠ²Π° Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΎΠΏΠΈΡ Π·Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π³ΡΠ²ΠΊΠ°Π²Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ° Π²Π΅ΡΠΈΠ³Π° Ρ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠΈΠΊΡΠΈΡΠ°Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ ΡΠΈ, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ ΠΊΠ°ΡΠΎ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠ°ΡΠΎ Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΠΈ ΡΠ½Π°ΡΠ½ΠΈ Π±ΡΠ»Π΅Π²ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ.
ΠΡΠ΄Π΅ ΠΈΠ·ΠΎΠ±ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ΅ΡΠ½Π΅ΡΠ΅ ΡΠΎΠ²Π°? ΠΡΡΠ²ΠΎ, ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ
Π‘Π»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π» ΠΈ Ρ ΠΊΠΎΠΈΡΠΎ ΡΡΠΌ ΡΠ°Π±ΠΎΡΠΈΠ».
SPARQL
Wiki:
SPARQL (ΡΠ΅ΠΊΡΡΡΠΈΠ²Π΅Π½ Π°ΠΊΡΠΎΠ½ΠΈΠΌ ΠΎΡΠΠ½ΠΆ. ΠΡΠΎΡΠΎΠΊΠΎΠ» SPARQL ΠΈ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ RDF) -Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ , ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ ΠΎΡ ΠΌΠΎΠ΄Π΅Π»Π°RDF ΠΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π΄Π° ΠΏΡΠ΅Π΄Π°Π²Π° ΡΠ΅Π·ΠΈ ΠΈΡΠΊΠ°Π½ΠΈΡ ΠΈ Π΄Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΡΡΡ . SPARQL Π΅ ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠ°ΠΠΎΠ½ΡΠΎΡΡΠΈΡΠΌ W3C ΠΈ Π΅Π΄Π½Π° ΠΎΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡΠ΅ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ½Π° ΠΌΡΠ΅ΠΆΠ° .
ΠΠΎ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΡΠΎΠ²Π° Π΅ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ½Π°ΡΠ½ΠΈ ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠΈ. ΠΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΡΠΈΠΊΡΠΈΡΠ°Π½ΠΎ Π² Π±ΡΠ»Π΅Π² ΠΈΠ·ΡΠ°Π· ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π½Π΅ (ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΎΡΡΠ΅Π½ΠΎ).
Π‘Π°ΠΌΠ°ΡΠ° RDF (Resource Description Framework) Π±Π°Π·Π°, Π²ΡΡΡ
Ρ ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ SPARQL Π·Π°ΡΠ²ΠΊΠΈ, Π΅ ΡΡΠΎΠΉΠ½Π° object, predicate, subject
- ΠΈ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΠΈΠ·Π±ΠΈΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΡΡΠΎΠΉΠΊΠΈ ΡΠΏΠΎΡΠ΅Π΄ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π² Π΄ΡΡ
Π°: Π½Π°ΠΌΠ΅ΡΠ΅ΡΠ΅ X, ΡΠ°ΠΊΠ° ΡΠ΅ p_55(X, q_33) Π΄Π° Π΅ Π²ΡΡΠ½ΠΎ - ΠΊΡΠ΄Π΅ΡΠΎ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, p_55 Π΅ Π½ΡΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ Π²ΡΡΠ·ΠΊΠ° Ρ ID 55, Π° q_33 Π΅ ΠΎΠ±Π΅ΠΊΡ Ρ ID 33 (ΡΡΠΊ ΠΈ ΡΡΠ»Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ, ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΠΌΠ΅ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ).
ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ:
Π‘Π½ΠΈΠΌΠΊΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ Ρ Π΄ΡΡΠΆΠ°Π²ΠΈ ΡΡΠΊ
ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΠΎΡΠ½ΠΎΠ²Π½Π° Π·Π°ΡΠ²ΠΊΠ°
ΠΡΡΡΠ½ΠΎΡΡ Π½ΠΈΠ΅ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° ?country, ΡΠ°ΠΊΠ° ΡΠ΅ Π·Π° ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠ°
member_of, Π²ΡΡΠ½ΠΎ Π΅, ΡΠ΅ member_of(?country,q458) ΠΈ q458 Π΅ ID Π½Π° ΠΠ²ΡΠΎΠΏΠ΅ΠΉΡΠΊΠΈΡ ΡΡΡΠ·.
ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΠΈΡΡΠΈΠ½ΡΠΊΠ° SPARQL Π·Π°ΡΠ²ΠΊΠ° Π² Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Π½Π° python:
ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ΡΠ° SPARQL, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° Π³ΠΎ ΠΏΠΈΡΠ° - Π² ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠΌΠ΅Π½ΠΈΠ΅ Π΄Π° ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ Π΅Π·ΠΈΠΊΠ° ΠΏΠΎΠ½Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎ Π½ΠΈΠ²ΠΎ, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ° ΡΠΎΡΠ½ΠΎ ΠΊΠ°ΠΊ ΡΠ΅ ΠΈΠ·Π²Π»ΠΈΡΠ°Ρ Π΄Π°Π½Π½ΠΈ.
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅ ΠΎΠ½Π»Π°ΠΉΠ½: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΊ
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠ° Π² ΠΌΠΎΡΡΠ° ΡΡΠ°ΡΠΈΡ
output(X) :- country(X), member_of(X,βEUβ).
Π’ΡΠΊ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ² ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ output/1 (/1 ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΡΠ½Π°ΡΠ΅Π½), ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠ΅ Π·Π° X Π΅ Π²ΡΡΠ½ΠΎ, ΡΠ΅ country(X) - Ρ.Π΅. X Π΅ Π΄ΡΡΠΆΠ°Π²Π° ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° member_of(X,"EU").
Π’ΠΎΠ΅ΡΡ Π² ΡΠ»ΡΡΠ°Ρ ΠΈ Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ Π½Π°ΡΠΈΠ½, ΠΊΠΎΠ΅ΡΠΎ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅ΡΠ½ΠΎ ΠΈ Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅.
ΠΡΠ΄Π΅ ΡΠ΅ ΡΡΠ΅ΡΠ½Π°Ρ ΡΠ΅ Π² ΠΈΠ½Π΄ΡΡΡΡΠΈΡΡΠ°?: ΡΡΠ» Π³ΠΎΠ»ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΏΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ Π½Π° ΡΠ°ΠΊΡΠ² Π΅Π·ΠΈΠΊ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π²ΡΡΡ Ρ ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° - ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΡΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ° Π΅ΠΊΠ·ΠΎΡΠΈΡΠ½ΠΎ Π½Π΅ΡΠΎ, Π½ΠΎ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π°.
ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΠΊΠΎΠ΄ΠΎΠ² ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ Π΅Π·ΠΈΠΊ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ ΡΠΈΠΊΠΈΠ΄Π°Π½Π½ΠΈ:
ΠΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ: Π’ΡΠΊ ΡΠ΅ Π΄Π°ΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²ΡΡΠ·ΠΊΠΈ ΠΊΡΠΌ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡ Π΅Π·ΠΈΠΊ Π·Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Answer Set Programming - ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° Π³ΠΎ ΠΈΠ·ΡΡΠ°Π²Π°ΡΠ΅:
http://peace.eas.asu.edu/aaai12tutorial/asp-tutorial-aaai.pdf http://ceur-ws.org/Vol-1145/tutorial1.pdf https://www.youtube.com/watch?v=gVQ0bP8zyHw https://www.youtube.com/watch?v=kdcd7Je2glc https://potassco.org/book/ http://potassco.sourceforge.net/teaching.html https://www.cs.uni-potsdam.de/~torsten/Potassco/Tutorials/fmcad12.pdf
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com