সম্পাদক দ্বারা চিত্র
প্রাকৃতিক ভাষা প্রক্রিয়াকরণের প্রতি ক্রমবর্ধমান আগ্রহের সাথে, আরও বেশি সংখ্যক অনুশীলনকারীরা দেয়ালে আঘাত করছে কারণ তারা এলএলএম তৈরি করতে বা সূক্ষ্ম সুর করতে পারে না, বরং তাদের ডেটা অগোছালো হওয়ার কারণে!
আমরা টেক্সট ডেটাতে শোরগোল লেবেল ঠিক করার জন্য সহজ, কিন্তু খুব কার্যকর কোডিং পদ্ধতি দেখাব। আমরা বাস্তব-বিশ্বের পাঠ্য ডেটাতে 2টি সাধারণ পরিস্থিতির সাথে মোকাবিলা করব:
- একটি বিভাগ থাকা যাতে কয়েকটি অন্যান্য বিভাগের মিশ্র উদাহরণ রয়েছে। আমি এই ধরনের ক্যাটাগরিকে মেটা ক্যাটাগরি বলতে ভালোবাসি।
- 2 বা ততোধিক বিভাগ থাকা যেগুলিকে 1 বিভাগে একত্রিত করা উচিত কারণ তাদের সম্পর্কিত পাঠ্যগুলি একই বিষয়কে নির্দেশ করে৷
আমরা এই টিউটোরিয়াল (CCO লাইসেন্স) এর জন্য তৈরি করা ITSM (IT Service Management) ডেটাসেট ব্যবহার করব। এটি নীচের লিঙ্ক থেকে Kaggle এ উপলব্ধ:
https://www.kaggle.com/datasets/nikolagreb/small-itsm-dataset
এটি প্রয়োজনীয় সমস্ত লাইব্রেরি আমদানি এবং মৌলিক ডেটা পরীক্ষা দিয়ে শুরু করার সময়। নিজেকে বন্ধন, কোড আসছে!
import pandas as pd
import numpy as np
import string from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import ComplementNB
from sklearn.pipeline import make_pipeline
from sklearn.model_selection import train_test_split
from sklearn import metrics df = pd.read_excel("ITSM_data.xlsx")
df.info()
RangeIndex: 118 entries, 0 to 117
Data columns (total 7 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 ID_request 118 non-null int64 1 Text 117 non-null object 2 Category 115 non-null object 3 Solution 115 non-null object 4 Date_request_recieved 118 non-null datetime64[ns] 5 Date_request_solved 118 non-null datetime64[ns] 6 ID_agent 118 non-null int64 dtypes: datetime64[ns](2), int64(2), object(3)
memory usage: 6.6+ KB
প্রতিটি সারি ITSM ডাটাবেসের একটি এন্ট্রি প্রতিনিধিত্ব করে। আমরা একজন ব্যবহারকারীর লেখা টিকিটের পাঠ্যের উপর ভিত্তি করে টিকিটের ক্যাটাগরিটি অনুমান করার চেষ্টা করব। আসুন বর্ণিত ব্যবসায়িক ব্যবহারের ক্ষেত্রে সবচেয়ে গুরুত্বপূর্ণ ক্ষেত্রগুলি গভীরভাবে পরীক্ষা করি।
for text, category in zip(df.Text.sample(3, random_state=2), df.Category.sample(3, random_state=2)): print("TEXT:") print(text) print("CATEGORY:") print(category) print("-"*100)
TEXT:
I just want to talk to an agent, there are too many problems on my pc to be explained in one ticket. Please call me when you see this, whoever you are. (talk to agent)
CATEGORY:
Asana
----------------------------------------------------------------------------------------------------
TEXT:
Asana funktionierte nicht mehr, nachdem ich meinen Laptop neu gestartet hatte. Bitte helfen Sie.
CATEGORY:
Help Needed
----------------------------------------------------------------------------------------------------
TEXT:
My mail stopped to work after I updated Windows.
CATEGORY:
Outlook
----------------------------------------------------------------------------------------------------
আমরা যদি প্রথম দুটি টিকিটের দিকে তাকাই, যদিও একটি টিকিট জার্মান ভাষায়, আমরা দেখতে পাব যে বর্ণিত সমস্যাগুলি একই সফ্টওয়্যারকে নির্দেশ করে?—?আসন, তবে তারা বিভিন্ন লেবেল বহন করে। এটি আমাদের বিভাগগুলির বিতরণ শুরু করছে:
df.Category.value_counts(normalize=True, dropna=False).mul(100).round(1).astype(str) + "%"
Outlook 19.1%
Discord 13.9%
CRM 12.2%
Internet Browser 10.4%
Mail 9.6%
Keyboard 9.6%
Asana 8.7%
Mouse 8.7%
Help Needed 7.8%
Name: Category, dtype: object
প্রয়োজনীয় সাহায্য সন্দেহজনক দেখায়, যেমন বিভাগ যাতে একাধিক অন্যান্য বিভাগের টিকিট থাকতে পারে। এছাড়াও, আউটলুক এবং মেল বিভাগগুলি একই রকম শোনায়, সম্ভবত সেগুলিকে একটি বিভাগে একত্রিত করা উচিত। উল্লিখিত বিভাগগুলিতে আরও গভীরে যাওয়ার আগে, আমরা আমাদের আগ্রহের কলামগুলিতে অনুপস্থিত মানগুলি থেকে মুক্তি পাব।
important_columns = ["Text", "Category"]
for cat in important_columns: df.drop(df[df[cat].isna()].index, inplace=True)
df.reset_index(inplace=True, drop=True)
খালি চোখে ডেটা পরীক্ষার জন্য একটি বৈধ বিকল্প নেই। পান্ডাগুলিতে এটি করার জন্য অভিনব ফাংশনটি হল .sample(), তাই আমরা আরও একবার ঠিক এটি করব, এখন সন্দেহজনক বিভাগের জন্য:
meta = df[df.Category == "Help Needed"] for text in meta.Text.sample(5, random_state=2): print(text) print("-"*100)
Discord emojis aren't available to me, I would like to have this option enabled like other team members have.
---------------------------------------------------------------------------
Bitte reparieren Sie mein Hubspot CRM. Seit gestern funktioniert es nicht mehr
---------------------------------------------------------------------------
My headphones aren't working. I would like to order new.
---------------------------------------------------------------------------
Bundled problems with Office since restart:
Messages not sent
Outlook does not connect, mails do not arrive
Error 0x8004deb0 appears when Connection attempt, see attachment
The company account is affected: AB123
Access via Office.com seems to be possible.
---------------------------------------------------------------------------
Asana funktionierte nicht mehr, nachdem ich meinen Laptop neu gestartet hatte. Bitte helfen Sie.
---------------------------------------------------------------------------
স্পষ্টতই, আমাদের কাছে ডিসকর্ড, আসন এবং সিআরএম সম্পর্কে কথা বলার টিকিট রয়েছে। তাই বিভাগটির নাম "হেল্প নিডেড" থেকে পরিবর্তন করে বিদ্যমান, আরও নির্দিষ্ট বিভাগে করা উচিত। পুনঃঅ্যাসাইনমেন্ট প্রক্রিয়ার প্রথম ধাপের জন্য, আমরা নতুন কলাম "কীওয়ার্ড" তৈরি করব যা টিকিটে "টেক্সট" কলামের বিভাগের তালিকা থেকে শব্দ থাকলে তথ্য দেয়।
words_categories = np.unique([word.strip().lower() for word in df.Category]) # list of categories def keywords(row): list_w = [] for word in row.translate(str.maketrans("", "", string.punctuation)).lower().split(): if word in words_categories: list_w.append(word) return list_w df["Keywords"] = df.Text.apply(keywords) # since our output is in the list, this function will give us better looking final output. def clean_row(row): row = str(row) row = row.replace("[", "") row = row.replace("]", "") row = row.replace("'", "") row = string.capwords(row) return row df["Keywords"] = df.Keywords.apply(clean_row)
এছাড়াও, মনে রাখবেন যে “if word in str(words_categories)” এর পরিবর্তে “if word in words_categories” ব্যবহার করলে 1টির বেশি শব্দ (আমাদের ক্ষেত্রে ইন্টারনেট ব্রাউজার) ক্যাটাগরি থেকে শব্দ পাওয়া যাবে, তবে আরও ডেটা প্রিপ্রসেসিং প্রয়োজন হবে। বিষয়গুলিকে সহজ এবং সরাসরি পয়েন্টে রাখতে, আমরা শুধুমাত্র একটি শব্দ দিয়ে তৈরি বিভাগের কোডের সাথে যাব। আমাদের ডেটাসেট এখন দেখতে এইরকম:
df.head(2)
চিত্র হিসাবে আউটপুট:
কীওয়ার্ড কলাম বের করার পর, আমরা টিকিটের মান ধরে নেব। আমাদের অনুমান:
- টেক্সট ফিল্ডে মাত্র 1টি কীওয়ার্ড সহ টিকিট যা টিকিটটি যে বিভাগের অন্তর্গত তা শ্রেণীবদ্ধ করা সহজ হবে।
- টেক্সট ফিল্ডে একাধিক কীওয়ার্ড সহ টিকিট, যেখানে অন্তত একটি কীওয়ার্ড টিকিট যে বিভাগের অন্তর্গত তা বেশিরভাগ ক্ষেত্রেই শ্রেণীবদ্ধ করা সহজ হবে।
- যে টিকিটে কীওয়ার্ড আছে, কিন্তু সেগুলোর কোনোটিই টিকিটটি যে বিভাগের অন্তর্গত সেই বিভাগের নামের সমান নয় সম্ভবত একটি শোরগোলযুক্ত লেবেল কেস।
- অন্যান্য টিকিট কীওয়ার্ডের উপর ভিত্তি করে নিরপেক্ষ।
cl_list = [] for category, keywords in zip(df.Category, df.Keywords): if category.lower() == keywords.lower() and keywords != "": cl_list.append("easy_classification") elif category.lower() in keywords.lower(): # to deal with multiple keywords in the ticket cl_list.append("probably_easy_classification") elif category.lower() != keywords.lower() and keywords != "": cl_list.append("potential_problem") else: cl_list.append("neutral") df["Ease_classification"] = cl_list
df.Ease_classification.value_counts(normalize=True, dropna=False).mul(100).round(1).astype(str) + "%"
neutral 45.6%
easy_classification 37.7%
potential_problem 9.6%
probably_easy_classification 7.0%
Name: Ease_classification, dtype: object
আমরা আমাদের নতুন বিতরণ করেছি এবং এখন একটি সম্ভাব্য সমস্যা হিসাবে শ্রেণীবদ্ধ টিকিট পরীক্ষা করার সময়। অনুশীলনে, নিম্নলিখিত ধাপে অনেক বেশি নমুনা প্রয়োজন এবং খালি চোখে ডেটার বৃহত্তর অংশগুলি দেখতে হবে, তবে যুক্তি একই হবে। আপনাকে সমস্যাযুক্ত টিকিট খুঁজে বের করতে হবে এবং আপনি তাদের গুণমান উন্নত করতে পারবেন কিনা বা ডেটাসেট থেকে বাদ দেবেন কিনা তা নির্ধারণ করতে হবে। যখন আপনি একটি বড় ডেটাসেটের মুখোমুখি হন তখন শান্ত থাকুন, এবং ভুলে যাবেন না যে ডেটা পরীক্ষা এবং ডেটা প্রস্তুতি সাধারণত ML অ্যালগরিদম তৈরির চেয়ে অনেক বেশি সময় নেয়!
pp = df[df.Ease_classification == "potential_problem"] for text, category in zip(pp.Text.sample(5, random_state=2), pp.Category.sample(3, random_state=2)): print("TEXT:") print(text) print("CATEGORY:") print(category) print("-"*100)
TEXT:
outlook issue , I did an update Windows and I have no more outlook on my notebook ? Please help !
Outlook
CATEGORY:
Mail
-------------------------------------------------------------------- TEXT:
Please relase blocked attachements from the mail I got from name.surname@company.com. These are data needed for social media marketing campaing.
CATEGORY:
Outlook
--------------------------------------------------------------------
TEXT:
Asana funktionierte nicht mehr, nachdem ich meinen Laptop neu gestartet hatte. Bitte helfen Sie.
CATEGORY:
Help Needed
--------------------------------------------------------------------
আমরা বুঝি যে আউটলুক এবং মেল বিভাগের টিকিটগুলি একই সমস্যার সাথে সম্পর্কিত, তাই আমরা এই 2টি বিভাগকে একত্রিত করব এবং আমাদের ভবিষ্যতের ML শ্রেণিবিন্যাস অ্যালগরিদমের ফলাফলগুলিকে উন্নত করব৷
mail_categories_to_merge = ["Outlook", "Mail"] sum_mail_cluster = 0
for x in mail_categories_to_merge: sum_mail_cluster += len(df[df["Category"] == x]) print("Number of categories to be merged into new cluster: ", len(mail_categories_to_merge))
print("Expected number of tickets in the new cluster: ", sum_mail_cluster) def rename_to_mail_cluster(category): if category in mail_categories_to_merge: category = "Mail_CLUSTER" else: category = category return category df["Category"] = df["Category"].apply(rename_to_mail_cluster) df.Category.value_counts()
Number of categories to be merged into new cluster: 2
Expected number of tickets in the new cluster: 33
Mail_CLUSTER 33
Discord 15
CRM 14
Internet Browser 12
Keyboard 11
Asana 10
Mouse 10
Help Needed 9
Name: Category, dtype: int64
শেষ, কিন্তু অন্তত নয়, আমরা মেটা বিভাগ "হেল্প নিডেড" থেকে কিছু টিকিটকে যথাযথ বিভাগে রিলেবল করতে চাই।
df.loc[(df["Category"] == "Help Needed") & ([set(x).intersection(words_categories) for x in df["Text"].str.lower().str.replace("[^ws]", "", regex=True).str.split()]), "Category"] = "Change" def cat_name_change(cat, keywords): if cat == "Change": cat = keywords else: cat = cat return cat df["Category"] = df.apply(lambda x: cat_name_change(x.Category, x.Keywords), axis=1)
df["Category"] = df["Category"].replace({"Crm":"CRM"}) df.Category.value_counts(dropna=False)
Mail_CLUSTER 33
Discord 16
CRM 15
Internet Browser 12
Asana 11
Keyboard 11
Mouse 10
Help Needed 6
Name: Category, dtype: int64
আমরা আমাদের ডেটা রিলেবেলিং এবং পরিষ্কার করেছি কিন্তু যদি আমরা অন্তত একটি বৈজ্ঞানিক পরীক্ষা না করি এবং চূড়ান্ত শ্রেণিবিন্যাসে আমাদের কাজের প্রভাব পরীক্ষা না করি তবে আমাদের নিজেদেরকে ডেটা বিজ্ঞানী বলা উচিত নয়। আমরা sklearn-এ The Complement Naive Bayes classifier প্রয়োগ করে তা করব। নির্দ্বিধায় অন্যান্য, আরও জটিল অ্যালগরিদম চেষ্টা করুন। এছাড়াও, সচেতন থাকুন যে আরও ডেটা পরিষ্কার করা যেতে পারে - উদাহরণস্বরূপ, আমরা "সহায়তা প্রয়োজন" বিভাগে বাকি সমস্ত টিকিটও ফেলে দিতে পারি।
model = make_pipeline(TfidfVectorizer(), ComplementNB()) # old df
df_o = pd.read_excel("ITSM_data.xlsx") important_categories = ["Text", "Category"]
for cat in important_categories: df_o.drop(df_o[df_o[cat].isna()].index, inplace=True) df_o.name = "dataset just without missing"
df.name = "dataset after deeper cleaning" for dataframe in [df_o, df]: # Split dataset into training set and test set X_train, X_test, y_train, y_test = train_test_split(dataframe.Text, dataframe.Category, test_size=0.2, random_state=1) # Training the model with train data model.fit(X_train, y_train) # Predict the response for test dataset y_pred = model.predict(X_test) print(f"Accuracy of Complement Naive Bayes classifier model on {dataframe.name} is: {round(metrics.accuracy_score(y_test, y_pred),2)}")
Accuracy of Complement Naive Bayes classifier model on dataset just without missing is: 0.48
Accuracy of Complement Naive Bayes classifier model on dataset after deeper cleaning is: 0.65
বেশ চিত্তাকর্ষক, তাই না? আমরা যে ডেটাসেটটি ব্যবহার করেছি তা ছোট (উদ্দেশ্যে, তাই আপনি সহজেই প্রতিটি ধাপে কী ঘটছে তা দেখতে পারেন) তাই বিভিন্ন র্যান্ডম বীজ বিভিন্ন ফলাফল দিতে পারে, তবে বেশিরভাগ ক্ষেত্রে, মডেলটি তুলনামূলকভাবে পরিষ্কার করার পরে ডেটাসেটে উল্লেখযোগ্যভাবে ভাল কাজ করবে মূল ডেটাসেটে। আমরা একটি ভাল কাজ করেছি!
নিকোলা গ্রেব চার বছরেরও বেশি সময় ধরে কোডিং করছেন, এবং গত দুই বছর ধরে তিনি এনএলপিতে বিশেষায়িত হয়েছেন। ডেটা সায়েন্সে যাওয়ার আগে তিনি সেলস, এইচআর, লেখালেখি এবং দাবাতে সফল ছিলেন।
- এসইও চালিত বিষয়বস্তু এবং পিআর বিতরণ। আজই পরিবর্ধিত পান।
- প্লেটোব্লকচেন। Web3 মেটাভার্স ইন্টেলিজেন্স। জ্ঞান প্রসারিত. এখানে প্রবেশ করুন.
- অ্যাড্রিয়েন অ্যাশলির সাথে ভবিষ্যত মিন্টিং। এখানে প্রবেশ করুন.
- উত্স: https://www.kdnuggets.com/2023/04/dealing-noisy-labels-text-data.html?utm_source=rss&utm_medium=rss&utm_campaign=dealing-with-noisy-labels-in-text-data
- : আছে
- : হয়
- :না
- :কোথায়
- 1
- 10
- 100
- 11
- 2%
- 7
- 8
- 9
- a
- সম্পর্কে
- হিসাব
- সঠিকতা
- পর
- প্রতিনিধি
- অ্যালগরিদম
- আলগোরিদিম
- সব
- এছাড়াও
- যদিও
- an
- এবং
- রয়েছি
- AS
- At
- সহজলভ্য
- ভিত্তি
- মৌলিক
- BE
- কারণ
- হয়েছে
- আগে
- নিচে
- উত্তম
- অবরুদ্ধ
- ব্রাউজার
- নির্মাণ করা
- ভবন
- ব্যবসায়
- কিন্তু
- by
- কল
- CAN
- বহন
- কেস
- মামলা
- ক্যাট
- দঙ্গল
- বিভাগ
- বিভাগ
- পরিবর্তন
- দাবা
- শ্রেণীবিন্যাস
- শ্রেণীবদ্ধ
- শ্রেণীভুক্ত করা
- পরিস্কার করা
- গুচ্ছ
- কোড
- কোডিং
- স্তম্ভ
- কলাম
- এর COM
- সাধারণ
- কোম্পানি
- তুলনা
- পূরক
- জটিল
- সংযোগ করা
- সংযোগ
- ধারণ
- পারা
- সৃষ্টি
- নির্মিত
- সিআরএম
- উপাত্ত
- ডেটা প্রস্তুতি
- তথ্য বিজ্ঞান
- ডেটাবেস
- লেনদেন
- ডিলিং
- সিদ্ধান্ত নেন
- গভীর
- বর্ণিত
- DID
- বিভিন্ন
- অনৈক্য
- বিতরণ
- do
- ডন
- ড্রপ
- প্রতি
- সহজে
- কার্যকর
- সক্ষম করা
- প্রবেশ
- থার (eth)
- ঠিক
- উদাহরণ
- উদাহরণ
- বিদ্যমান
- প্রত্যাশিত
- পরীক্ষা
- ব্যাখ্যা
- চোখ
- সম্মুখ
- কয়েক
- ক্ষেত্র
- ক্ষেত্রসমূহ
- চূড়ান্ত
- আবিষ্কার
- প্রথম
- অনুসরণ
- জন্য
- চার
- বিনামূল্যে
- থেকে
- ক্রিয়া
- অধিকতর
- ভবিষ্যৎ
- জার্মান
- পাওয়া
- দাও
- দেয়
- Go
- ভাল
- এরকম
- আছে
- he
- হেডফোন
- সাহায্য
- আঘাত
- কিভাবে
- hr
- HTTPS দ্বারা
- HubSpot
- i
- ভাবমূর্তি
- প্রভাব
- বাস্তবায়ন
- আমদানি
- গুরুত্বপূর্ণ
- চিত্তাকর্ষক
- উন্নত করা
- in
- সূচক
- তথ্য
- পরিবর্তে
- স্বার্থ
- Internet
- মধ্যে
- সমস্যা
- IT
- আইটি পরিষেবা
- মাত্র
- শুধু একটি
- কেডনুগেটস
- রাখা
- রকম
- লেবেল
- লেবেলগুলি
- ভাষা
- ল্যাপটপ
- বড়
- বৃহত্তর
- লাইব্রেরি
- লাইসেন্স
- মত
- LINK
- লিঙ্কডইন
- তালিকা
- দেখুন
- খুঁজছি
- সৌন্দর্য
- ভালবাসা
- প্রণীত
- সংখ্যাগুরু
- ব্যবস্থাপনা
- অনেক
- Marketing
- মিডিয়া
- সদস্য
- স্মৃতি
- উল্লিখিত
- মার্জ
- মেটা
- ছন্দোবিজ্ঞান
- হতে পারে
- অনুপস্থিত
- মিশ্র
- ML
- মডেল
- অধিক
- সেতু
- বহু
- নাম
- প্রাকৃতিক
- স্বভাবিক ভাষা
- স্বাভাবিক ভাষা প্রক্রিয়াকরণ
- প্রয়োজন
- নিরপেক্ষ
- নতুন
- NLP
- নোটবই
- এখন
- সংখ্যা
- অসাড়
- লক্ষ্য
- of
- দপ্তর
- পুরাতন
- on
- ONE
- পছন্দ
- or
- ক্রম
- মূল
- অন্যান্য
- আমাদের
- চেহারা
- আউটপুট
- পান্ডাস
- গত
- PC
- সম্পাদন করা
- পাইপলাইন
- Plato
- প্লেটো ডেটা ইন্টেলিজেন্স
- প্লেটোডাটা
- দয়া করে
- বিন্দু
- সম্ভব
- সম্ভাব্য
- অনুশীলন
- ভবিষ্যদ্বাণী করা
- সম্ভবত
- সমস্যা
- সমস্যা
- পদ্ধতি
- প্রক্রিয়া
- প্রক্রিয়াজাতকরণ
- উৎপাদন করা
- সঠিক
- উদ্দেশ্য
- গুণ
- এলোমেলো
- বাস্তব জগতে
- সংশ্লিষ্ট
- প্রতিনিধিত্ব করে
- প্রয়োজন
- প্রতিক্রিয়া
- ফলাফল
- প্রত্যাবর্তন
- পরিত্রাণ
- উঠন্ত
- সারিটি
- বিক্রয়
- একই
- পরিস্থিতিতে
- বিজ্ঞান
- বিজ্ঞানীরা
- দেখ
- বীজ
- মনে হয়
- সেবা
- সেট
- উচিত
- প্রদর্শনী
- উল্লেখযোগ্যভাবে
- অনুরূপ
- সহজ
- থেকে
- ছোট
- So
- সামাজিক
- সামাজিক মাধ্যম
- সফটওয়্যার
- সমাধান
- কিছু
- শব্দ
- বিশেষজ্ঞ
- নির্দিষ্ট
- বিভক্ত করা
- শুরু
- শুরু হচ্ছে
- থাকা
- ধাপ
- বন্ধ
- সোজা
- স্ট্রিং
- সফল
- অনুমিত
- সন্দেহজনক
- গ্রহণ করা
- আলাপ
- কথা বলা
- টীম
- দলের সদস্যরা
- পরীক্ষা
- চেয়ে
- যে
- সার্জারির
- তথ্য
- তাদের
- তাহাদিগকে
- সেখানে।
- এইগুলো
- তারা
- কিছু
- এই
- টিকিট
- টিকেট
- সময়
- থেকে
- অত্যধিক
- বিষয়
- মোট
- রেলগাড়ি
- প্রশিক্ষণ
- বাঁক
- অভিভাবকসংবঁধীয়
- বোঝা
- আপডেট
- আপডেট
- us
- ব্যবহার
- ব্যবহার
- ব্যবহৃত
- ব্যবহারকারী
- ব্যবহার
- সাধারণত
- মানগুলি
- সুবিশাল
- খুব
- মাধ্যমে
- প্রাচীর
- ছিল
- we
- কি
- কখন
- যে
- যে কেউ
- ইচ্ছা
- জানালা
- সঙ্গে
- ছাড়া
- শব্দ
- শব্দ
- হয়া যাই ?
- কাজ
- would
- লেখা
- লিখিত
- X
- বছর
- আপনি
- নিজেকে
- zephyrnet