Data Engineering va NLP uchun ajoyib python kutubxonalari
Men so'nggi besh yil davomida Python'dan keng foydalanaman. Natijada, men har doim Data Engineering va Business Intelligence loyihalaridagi ishimni yaxshilaydigan ajoyib kutubxonalarni qidiraman. O'tmishda men ikkita maqola bilan o'rtoqlashdim: “Ma'lumotlar ilmi uchun beshta ajoyib Python kutubxonasi” va “Yaqinda uchratganim oltita ajoyib Python kutubxonasi”.
Ushbu maqolada men ishimda foydalanayotgan yana oltita ajoyib python kutubxonalarini baham ko'raman.
1. Insoniylashtirish
Insoniylashtirish” dasturi raqamlar, sanalar va vaqtlar uchun oddiy, o‘qilishi oson formatlash imkonini beradi. Kutubxonaning maqsadi ma'lumotlarni olish va uni odamlar uchun qulayroq qilishdir, masalan, bir necha soniyalarni "2 daqiqa oldin" kabi o'qilishi mumkin bo'lgan qatorga aylantirish. Kutubxona ma'lumotlarni turli yo'llar bilan formatlashi mumkin, jumladan raqamlarni vergul bilan formatlash, vaqt belgilarini nisbiy vaqtga aylantirish va boshqalar.
Ma'lumotlar muhandisligi loyihalarim uchun tez-tez butun sonlar va sana va vaqtdan foydalanaman.
O'rnatish
!pip install humanize
Misol (butun sonlar)
# Importing library import humanize import datetime as dt # Formatting numbers with comma a = humanize.intcomma(951009) # converting numbers into words b = humanize.intword(10046328394) #printing print(a) print(b)
Chiqish
Misol (sana va vaqt)
import humanize import datetime as dt a = humanize.naturaldate(dt.date(2012, 6, 5)) b = humanize.naturalday(dt.date(2012, 6, 5)) print(a) print(b)
Chiqish
Ko'proq formatlash opsiyalari uchun "bu yerga" qarang.
2. Mayatnik
DateTime uchun Python-da ko'plab kutubxonalar mavjud bo'lsa-da, men Pendulum-dan sanalardagi har qanday operatsiyada foydalanishni oson deb bilaman. Mayatnik - bu mening ishimda kundalik foydalanishim uchun eng sevimli kutubxonam. U o'rnatilgan Python datetime modulini kengaytirib, vaqt zonalarini boshqarish va sana va vaqtlarda vaqt oralig'ini qo'shish, sanalarni ayirish va vaqt zonalari o'rtasida konvertatsiya qilish kabi operatsiyalarni bajarish uchun yanada intuitiv API qo'shadi. Bu sana va vaqtlarni formatlash uchun oddiy, insonga qulay API taqdim etadi.
O'rnatish
!pip install pendulum
Misol
# import library import pendulum dt = pendulum.datetime(2023, 1, 31) print(dt) #local() creates datetime instance with local timezone local = pendulum.local(2023, 1, 31) print("Local Time:", local) print("Local Time Zone:", local.timezone.name) # Printing UTC time utc = pendulum.now('UTC') print("Current UTC time:", utc) # Converting UTC timezone into Europe/Paris time europe = utc.in_timezone('Europe/Paris') print("Current time in Paris:", europe)
Chiqish
Men bu kutubxona uchun alohida blog yozishim kerak, bu erda bir nechta misollarni ko'rsataman. Ko'proq formatlash uchun "bu erda" ni tekshiring.
3. ftfy
Ma'lumotlarda mavjud bo'lgan chet tili to'g'ri ko'rsatilmaganiga duch keldingizmi? Bu Mojibake deb ataladi. Mojibake - bu kodlash yoki dekodlash muammolari natijasida yuzaga keladigan buzilgan yoki shifrlangan matnni tasvirlash uchun ishlatiladigan atama. Bu odatda bitta belgi kodlashda yozilgan matn boshqa kodlash yordamida noto'g'ri dekodlanganda yuzaga keladi. ftfy python kutubxonasi NLP foydalanish holatlarida juda foydali bo'lgan Mojibake-ni tuzatishga yordam beradi.
O'rnatish
!pip install ftfy
Misol
print(ftfy.fix_text('Correct the sentence using “ftfyâ€\x9d.')) print(ftfy.fix_text('✔ No problems with text')) print(ftfy.fix_text('à perturber la réflexion'))
Chiqish
Mojibake-dan tashqari, ftfy noto'g'ri kodlashlar, noto'g'ri chiziq oxiri va noto'g'ri tirnoqlarni tuzatadi. "Hujjatlarga ko'ra" ftfy quyidagi kodlashlardan biri sifatida dekodlangan matnni tushunishi mumkin:
- Lotin-1 (ISO-8859-1)
- Windows-1252 (cp1252 — Microsoft mahsulotlarida ishlatiladi)
- Windows-1251 (cp1251 - cp1252 ruscha versiyasi)
- Windows-1250 (cp1250 - cp1252 ning Sharqiy Yevropa versiyasi)
- ISO-8859–2 (bu Windows-1250 bilan bir xil emas)
- MacRoman (Mac OS 9 va undan oldingi versiyalarida ishlatiladi)
- cp437 (MS-DOS va Windows buyruq satrining ba'zi versiyalarida ishlatiladi)
Batafsil ma'lumot uchun "bu erda" hujjatlarni tekshiring.
4. Eskiz
Eskiz - bu Python-da pandalar kutubxonasi bilan ishlaydigan foydalanuvchilar uchun maxsus ishlab chiqilgan noyob AI kod yozish yordamchisi. U foydalanuvchi ma'lumotlari kontekstini tushunish uchun mashinani o'rganish algoritmlaridan foydalanadi va ma'lumotlarni manipulyatsiya qilish va tahlil qilish vazifalarini oson va samaraliroq qilish uchun tegishli kod takliflarini beradi. Sketch foydalanuvchilardan IDE-ga qo'shimcha plaginlarni o'rnatishni talab qilmaydi, bu esa undan foydalanishni tez va osonlashtiradi. Bu ma'lumotlar bilan bog'liq vazifalar uchun zarur bo'lgan vaqt va kuchni sezilarli darajada qisqartirishi va foydalanuvchilarga yaxshiroq va samaraliroq kod yozishga yordam berishi mumkin.
O'rnatish
!pip install sketch
Misol
Ushbu kutubxonadan foydalanish uchun Pandas maʼlumotlar ramkasiga .sketch kengaytmasini qoʻshishimiz kerak.
.sketch.ask
ask bu Sketch funksiyasi boʻlib, foydalanuvchilarga oʻz maʼlumotlari haqida tabiiy til formatida savollar berish imkonini beradi. U foydalanuvchi so'roviga matnga asoslangan javob beradi.
# Importing libraries import sketch import pandas as pd # Reading the data (using twitter data as an example) df = pd.read_csv("tweets.csv") print(df)
# Asking which columns are category type df.sketch.ask("Which columns are category type?")
Chiqish
# To find the shape of the dataframe df.sketch.ask("What is the shape of the dataframe")
.sketch.howto
qanday qilibbu ma'lumotlar bilan bog'liq turli vazifalar uchun boshlang'ich nuqta yoki xulosa sifatida foydalanish mumkin bo'lgan kod blokini ta'minlovchi xususiyatdir. Biz ularning ma'lumotlarini normallashtirish, yangi xususiyatlarni yaratish, ma'lumotlarni rejalashtirish va hatto modellarni yaratish uchun kod parchalarini so'rashimiz mumkin. Bu vaqtni tejaydi va kodni osongina nusxalash va joylashtirish imkonini beradi; kodni noldan qo'lda yozishingiz shart emas.
# Asking to provide code snipped for visualising the emotions df.sketch.howto("Visualize the emotions")
Chiqish
.sketch.apply
.apply funktsiyasi yangi xususiyatlarni yaratish, maydonlarni tahlil qilish va boshqa ma'lumotlar bilan ishlashga yordam beradi. Ushbu funktsiyadan foydalanish uchun biz OpenAI hisobiga ega bo'lishimiz va vazifalarni bajarish uchun API kalitidan foydalanishimiz kerak. Men bu funktsiyani sinab ko'rmadim.
Menga ushbu kutubxonadan, ayniqsahowtofunksiyasidan foydalanish juda yoqdi va uni foydali deb bilaman.
Sketch haqida ko'proq ma'lumot olish uchun ushbu "Github" ni tekshiring.
5. pgeokod
"Pgeocode" bu men yaqinda tanishgan ajoyib kutubxona bo'lib, u mening fazoviy tahlil loyihalarim uchun juda foydali bo'ldi. Masalan, u ikkita pochta indekslari orasidagi masofani topish imkonini beradi va kirish sifatida mamlakat va pochta indeksini olish orqali geo-ma'lumot beradi.
O'rnatish
!pip install pgeocode
Misol
Muayyan pochta indekslari uchun geoma'lumot olish
# Checking for country "India" nomi = pgeocode.Nominatim('In') # Getting geo information by passing the postcodes nomi.query_postal_code(["620018", "620017", "620012"])
chiqish
"Pgeocode" ikki pochta indekslari orasidagi masofani mamlakat va pochta indekslarini kiritish sifatida hisoblab chiqadi. Natija kilometrlarda berilgan.
# Finding a distance between two postcodes distance = pgeocode.GeoDistance('In') distance.query_postal_code("620018", "620012")
Chiqish
Qo'shimcha ma'lumot uchun "bu erda" ni tekshiring.
6. rembg
rembg - bu rasmlardan fonni osongina olib tashlaydigan yana bir foydali kutubxona.
O'rnatish
!pip install rembg
Misol
# Importing libraries from rembg import remove import cv2 # path of input image (my file: image.jpeg) input_path = 'image.jpeg' # path for saving output image and saving as a output.jpeg output_path = 'output.jpeg' # Reading the input image input = cv2.imread(input_path) # Removing background output = remove(input) # Saving file cv2.imwrite(output_path, output)
Chiqish
Siz ushbu kutubxonalarning ba'zilari bilan allaqachon tanish bo'lishingiz mumkin, ammo men uchun Sketch, Pendulum, pgeocode va ftfy ma'lumotlar muhandisligi ishim uchun ajralmasdir. Loyihalarim uchun men ularga juda ishonaman.
Buni o'qishga vaqt ajratganingiz uchun tashakkur. Men sizning fikr va mulohazalaringizni eshitishni istardim, shuning uchun izoh qoldirishdan tortinmang. Qo'shadigan biror narsangiz bo'lsa, iltimos, sharh qoldiring!
Men bilan “LinkedIn!” orqali bog‘laning.
Sizga mening oldingi maqolam ham yoqishi mumkin “Maʼlumotlar ilmi uchun beshta ajoyib Python kutubxonasi” va “Yaqinda tanishgan oltita ajoyib Python kutubxonasi”