sentences = ['আমি মাঝে মধ্যেই ফিরে যাই পুরানো কিছু ক্লাসিক বইয়ে', 'বিশেষ করে বেসিক ঝালাই করার জন্য']
import nltk
nltk.download('punkt')
[nltk_data] Downloading package punkt to /root/nltk_data... [nltk_data] Package punkt is already up-to-date!
True
from sklearn.feature_extraction.text import CountVectorizer
# ট্রান্সফরমেশন তৈরি করি
vectorizer = CountVectorizer()
# টোকেনাইজ এবং ভোকাবুলারি তৈরি করি
vectorizer.fit(sentences)
# সামারি দেখি
vectorizer.vocabulary_
{'আম': 0, 'কর': 1, 'জন': 2, 'বইয়': 3, 'মধ': 4}
import warnings
warnings.filterwarnings("ignore")
# ইউনিকোডে দেখুন নিচের লিঙ্কে
# https://jrgraphix.net/r/Unicode/0980-09FF
from nltk import word_tokenize
vectorizer = CountVectorizer(encoding='utf-8', tokenizer=word_tokenize)
vectorizer.fit(sentences)
vectorizer.vocabulary_
{'আমি': 0, 'করার': 1, 'করে': 2, 'কিছু': 3, 'ক্লাসিক': 4, 'জন্য': 5, 'ঝালাই': 6, 'পুরানো': 7, 'ফিরে': 8, 'বইয়ে': 9, 'বিশেষ': 10, 'বেসিক': 11, 'মধ্যেই': 12, 'মাঝে': 13, 'যাই': 14}
print(vectorizer.vocabulary_)
{'আমি': 0, 'মাঝে': 13, 'মধ্যেই': 12, 'ফিরে': 8, 'যাই': 14, 'পুরানো': 7, 'কিছু': 3, 'ক্লাসিক': 4, 'বইয়ে': 9, 'বিশেষ': 10, 'করে': 2, 'বেসিক': 11, 'ঝালাই': 6, 'করার': 1, 'জন্য': 5}
vectorizer.transform(sentences).toarray()
array([[1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1], [0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0]])
vec = CountVectorizer()
x = vec.fit_transform(sentences).toarray()
print(x.shape)
print(vec.get_feature_names())
(2, 5) ['আম', 'কর', 'জন', 'বইয়', 'মধ']
# ইউনিকোডে দেখুন নিচের লিঙ্কে
# https://jrgraphix.net/r/Unicode/0980-09FF
vectorizer = CountVectorizer(encoding='utf-8', token_pattern=r'[\u0980-\u09ff]+')
vectorizer.fit(sentences)
vectorizer.vocabulary_
{'আমি': 0, 'করার': 1, 'করে': 2, 'কিছু': 3, 'ক্লাসিক': 4, 'জন্য': 5, 'ঝালাই': 6, 'পুরানো': 7, 'ফিরে': 8, 'বইয়ে': 9, 'বিশেষ': 10, 'বেসিক': 11, 'মধ্যেই': 12, 'মাঝে': 13, 'যাই': 14}
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer =TfidfVectorizer(encoding='utf-8', tokenizer=word_tokenize)
vectorizer.fit(sentences)
vectorizer.vocabulary_
{'আমি': 0, 'করার': 1, 'করে': 2, 'কিছু': 3, 'ক্লাসিক': 4, 'জন্য': 5, 'ঝালাই': 6, 'পুরানো': 7, 'ফিরে': 8, 'বইয়ে': 9, 'বিশেষ': 10, 'বেসিক': 11, 'মধ্যেই': 12, 'মাঝে': 13, 'যাই': 14}
vectorizer.transform(sentences).toarray()
array([[0.33333333, 0. , 0. , 0.33333333, 0.33333333, 0. , 0. , 0.33333333, 0.33333333, 0.33333333, 0. , 0. , 0.33333333, 0.33333333, 0.33333333], [0. , 0.40824829, 0.40824829, 0. , 0. , 0.40824829, 0.40824829, 0. , 0. , 0. , 0.40824829, 0.40824829, 0. , 0. , 0. ]])
print(vectorizer.idf_)
[1.40546511 1.40546511 1.40546511 1.40546511 1.40546511 1.40546511 1.40546511 1.40546511 1.40546511 1.40546511 1.40546511 1.40546511 1.40546511 1.40546511 1.40546511]
vector = vectorizer.transform([sentences[0]])
# এনকোডেড ভেক্টরকে সামারাইজ করি
print(vector.shape)
print(vector.toarray())
(1, 15) [[0.33333333 0. 0. 0.33333333 0.33333333 0. 0. 0.33333333 0.33333333 0.33333333 0. 0. 0.33333333 0.33333333 0.33333333]]
cities = ['ঢাকা', 'বার্লিন', 'কুমিল্লা', 'শিকাগো', 'সিঙ্গাপুর']
cities
['ঢাকা', 'বার্লিন', 'কুমিল্লা', 'শিকাগো', 'সিঙ্গাপুর']
from sklearn.preprocessing import LabelEncoder
encoder = LabelEncoder()
city_labels = encoder.fit_transform(cities)
city_labels
array([1, 2, 0, 3, 4])
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(sparse=False)
city_labels = city_labels.reshape((5, 1))
encoder.fit_transform(city_labels)
array([[0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.], [1., 0., 0., 0., 0.], [0., 0., 0., 1., 0.], [0., 0., 0., 0., 1.]])