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”