# ৩.২ঃ এনএলপি (Natural Language Processing)

### - কি এবং কেন

এনএলপি তথা ন্যাচারাল ল্যাংগুয়েজ প্রসেসিং মূলত আলাদা একটা গবেষনার ফিল্ড হলেও আমি এটা আর্টিফিসিয়াল ইন্টেলিজেন্স ফিল্ডের সাব-ফিল্ড হিসেবেই কনসিডার করছি, কেননা এতদিন এনএলপির কাজকর্ম সব রুল বেজডই বেশি করা হত। কিন্তু বর্তমানে প্রায় সকল কাজই মেশিন লার্নিং, ডিপ লার্নিং অ্যাপ্রোচে সলভ করা হয়ে থাকে।&#x20;

অর্থাৎ আমাদের কাছে অনেক অনেক ল্যাংগুয়েজ ডেটা থাকে, হতে পারে সেটা টেক্সট, ভয়েস বা লেখা। সেগুলো এনালাইজ করে মেশিনকে মানুষের মত ভাষা-জ্ঞান প্রদান করা হয়। আর এটাই হল এনএলপি বা ন্যাচারাল ল্যাংগুয়েজ প্রসেসিং।&#x20;

১৯৫২ সালে আমাদের বাংলা ভাষা অর্জিত হলেও, এখন পর্যন্ত কম্পিউটারকে এই ভাষা আমরা শেখাতে পারিনি। যেজন্য কিনা ওয়েবে আমাদের ভাষা খুব একটা সমৃদ্ধ নয়। তাই বলবো বাংলা ভাষা প্রসেসিং তথা বাংলা ভাষা নিয়ে কাজ করার অনেক বড় স্কোপ এখন পর্যন্ত বিদ্যমান।&#x20;

ভাষার যেমন নিজস্ব রূপ রয়েছে, কিছু নিয়মকানুন মেনে চলে। একইভাবে এনএলপি বা ন্যাচারাল ল্যাংগুয়েজ প্রসেসিং করতে গেলেও ঐসকল নিয়মকানুনের বিকল্প বানাতে হয়। এগুলোকে আমরা এনএলপির টুলস বলতে পারি। এনএলপির বেসিক টুলসগুলোর মধ্যে অন্যতম হল-

### - এনএলপির টুলস

* **করপাস (Corpus)**
* **পজ ট্যাগার (Parts of speech tagger)**
* **ডিজিটাল ডিকশনারী (Dictionary)**
* **স্টেমার (Stemmer)**
* **ওয়ার্ডনেট (WordNet)**
* **টোকেনাইজার (Tokenizer)**

এগুলোকে টুলস বলার কারন হল, এগুলো কাজে লাগিয়ে ল্যাঙ্গুয়েজ প্রসেস করা হয়। এগুলো ছাড়া ল্যাংগুয়েজ প্রসেসিং এর কাজ আসলে সম্ভব নয়। আর এসকল টুলসগুলো মূলত ভাষার নিয়মকানুন মোতাবেগই তৈরি করা হয়ে থাকে।

হয়তো কাজ ভেদে বিভিন্ন টুলস বিভিন্ন সময় কাজে লাগবে। তাই কাজ শুরু করার আগে আমার কাজ করতে কি কি টুলস লাগতে পারে সে অনুযায়ী আমাকে টুলসগুলো বানিয়ে নিতে হবে অথবা অন্য কেউ বানিয়ে থাকলে সেগুলো ইউজ করা যেতে পারে।&#x20;

কিন্তু আমাদের বাংলার জন্য তেমন উন্নত টুলস এভেইলেবল না দেখে বাংলায় এনএলপির কাজ এখনো অনেকটা পিছিয়ে আছে। এই টুলসগুলো বানানোই এখন অনেক বড় চ্যালেন্জ। এই টুলসগুলো বানাতে যেটা লাগবে তা হলো অনেক অনেক ডেটাসেট- হতে পারে সেটা টেক্সট, ভয়েস বা লিখিত ডেটা।&#x20;

এই টুলসগুলো দিয়ে এনএলপির যেসকল কাজ করা হচ্ছে সেগুলো হল-

### - বাস্তব প্রয়োগ

* টেক্সট থেকে স্পিস (TTS)
* হার্ড ডকুমেন্ট থেকে টেক্সট (OCR)
* সেন্টিমেন্ট এনালাইসিস (Sentiment Analysis)
* ইশারা ভাষা থেকে টেক্সট বা স্পিস (Sign Language Recognition)&#x20;
* ভুয়া নিউজ যাচাই করা (Fake News Detection)&#x20;
* কম্পিউটারকে দিয়ে সাইনবোর্ড, বিলবোর্ড পড়ানো (OCR)
* প্রোডাক্ট রিভিউ এনালাইসিস করা (Review Analysis)
* অটোমেটিক টেক্সট জেনারেট করা (Text Generator)
* ভার্চুয়াল অ্যাসিসট্যান্ট বানানো (Virtual Assistant)&#x20;
* চ্যাটবট তৈরি করা (ChatBot)
* টেক্সট সামারাইজিং (Text Summarizer)&#x20;
* লেখার টাইটেল প্রেডিকশন (Title Prediction)
* ট্রান্সলেটর তৈরি করা (Translator)&#x20;

এই সব কাজই বর্তমানে মেশিন লার্নিং, ডিপ লার্নিং এলগোরিদম অ্যাপ্লাই করা হয়। তাই কাজের শুরুতে আমাদের উচিৎ হবে এগুলোর ডেটাসেট কালেক্ট করা এবং সেগুলো প্রসেস করা। এরপর সেই ডেটাসমূহ দিয়ে কম্পিউটারকে মানুষের মত ভাষা শেখানো, এটাই এনএলপির মূল কাজ।&#x20;

### - প্রয়োজনীয় টুলস

#### পাইথন লাইব্রেরী

* NLTK
* Googletrans
* PyAudioAnalysis
* AI এর প্রয়োজনীয় লাইব্রেরী


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://howtoresearch.gitbook.io/home/fields/nlp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
