Tokenization এবং Text Cleaning Techniques গাইড ও নোট

Computer Programming - আর প্রোগ্রামিং (R Programming) - Text Mining এবং Natural Language Processing (টেক্সট মাইনিং এবং প্রাকৃতিক ভাষা প্রক্রিয়াকরণ)
287

Tokenization এবং Text Cleaning Techniques in R

Tokenization এবং Text Cleaning হল প্রাক-প্রসেসিং এর গুরুত্বপূর্ণ অংশ, যা Natural Language Processing (NLP) বা Text Mining এর জন্য অত্যন্ত গুরুত্বপূর্ণ। এই ধাপগুলো ডেটাকে বিশ্লেষণযোগ্য এবং প্রক্রিয়া করার জন্য প্রস্তুত করে।

1. Tokenization:

Tokenization হল প্রক্রিয়া যার মাধ্যমে একটি টেক্সট ডকুমেন্টকে ছোট ছোট অংশে (tokens) বিভক্ত করা হয়। সাধারণত টোকেন গুলি শব্দ (words), বাক্য (sentences), অথবা আরও ছোট উপাদান (characters) হতে পারে।

Types of Tokenization:

  1. Word Tokenization: একটি টেক্সটকে শব্দগুলোতে বিভক্ত করা।
  2. Sentence Tokenization: একটি টেক্সটকে বাক্যে বিভক্ত করা।
  3. Character Tokenization: একটি টেক্সটকে অক্ষরের মধ্যে বিভক্ত করা।

Tokenization Example in R:

Using tidytext and tm package:

# প্রয়োজনীয় প্যাকেজ ইনস্টল এবং লোড করা
install.packages("tidytext")
install.packages("dplyr")
library(tidytext)
library(dplyr)

# টেক্সট ডেটা
text_data <- data.frame(text = c("Hello, how are you?", "This is an example sentence!"))

# শব্দ অনুযায়ী টোকেনাইজেশন
word_tokens <- text_data %>%
  unnest_tokens(word, text)

print(word_tokens)

এখানে, unnest_tokens() ফাংশনটি ব্যবহার করা হয়েছে, যা টেক্সটকে শব্দের মধ্যে বিভক্ত করে। প্রতিটি শব্দ একটি পৃথক রো হিসেবে বের হবে।

Using stringr package for sentence tokenization:

# stringr প্যাকেজ লোড করা
install.packages("stringr")
library(stringr)

# টেক্সট ডেটা
text_data <- "Hello world. How are you today? This is a test sentence."

# বাক্যে টোকেনাইজেশন
sentences <- str_split(text_data, pattern = "\\.", simplify = TRUE)
print(sentences)

এখানে, str_split() ফাংশনটি পিরিয়ড (".") চিহ্ন দিয়ে টেক্সটকে বাক্যগুলোতে বিভক্ত করেছে।


2. Text Cleaning Techniques:

Text cleaning হল সেই প্রক্রিয়া যা প্রাক-প্রসেসিং স্টেপের অংশ হিসেবে অপ্রয়োজনীয় বা অতিরিক্ত উপাদানগুলি (যেমন স্টপওয়ার্ড, পাংশ, বিশেষ চিহ্ন) সরিয়ে ফেলতে ব্যবহৃত হয়। এটি মডেলিংয়ের জন্য টেক্সট ডেটাকে প্রস্তুত করে। টেক্সট ক্লিনিং এর মধ্যে কিছু সাধারণ ধাপ রয়েছে:

  1. Lowercasing: সমস্ত টেক্সটকে ছোট অক্ষরে রূপান্তর করা যাতে বড়/ছোট অক্ষরের পার্থক্য না থাকে।
  2. Removing Punctuation: যেসব বিশেষ চিহ্ন বা পাংশ টেক্সটের জন্য গুরুত্বপূর্ণ নয়, তা সরিয়ে ফেলা।
  3. Removing Stopwords: সাধারণ শব্দ যেগুলি তথ্য বহন করে না, যেমন "the", "is", "at", "an" ইত্যাদি সরিয়ে ফেলা।
  4. Removing Numbers: যদি ডেটায় সংখ্যা থাকে যা প্রাসঙ্গিক না হয় তবে তা সরিয়ে ফেলা।
  5. Stemming: শব্দের মূল রূপে রূপান্তর করা (যেমন, "running" কে "run" এ রূপান্তর করা)।
  6. Lemmatization: শব্দকে এর আসল রূপে পরিবর্তন করা (যেমন, "better" কে "good" এ রূপান্তর করা)।

Text Cleaning Example in R:

# প্রয়োজনীয় প্যাকেজ ইনস্টল করা
install.packages("tm")
library(tm)

# টেক্সট ডেটা
text_data <- c("Hello, this is an Example! 123", "Text cleaning is fun!!")

# টেক্সট ক্লিনিং: Lowercasing, Remove punctuation, Remove numbers, Remove stopwords
cleaned_text <- tolower(text_data)  # Lowercase
cleaned_text <- removePunctuation(cleaned_text)  # Remove punctuation
cleaned_text <- removeNumbers(cleaned_text)  # Remove numbers
cleaned_text <- removeWords(cleaned_text, stopwords("en"))  # Remove stopwords

# Cleaned Text দেখানো
print(cleaned_text)

এখানে:

  • tolower() ব্যবহার করে সমস্ত টেক্সটকে ছোট অক্ষরে রূপান্তরিত করা হয়েছে।
  • removePunctuation() ব্যবহার করে বিশেষ চিহ্ন (punctuation) সরানো হয়েছে।
  • removeNumbers() ব্যবহার করে সংখ্যা সরানো হয়েছে।
  • removeWords() ব্যবহার করে স্টপওয়ার্ডস সরানো হয়েছে।

Stemming Example:

# SnowballC প্যাকেজ ব্যবহার করে Stemming
install.packages("SnowballC")
library(SnowballC)

# Stemming Example
text <- c("running", "runner", "runs", "easily")
stemmed_text <- wordStem(text)
print(stemmed_text)

এখানে, "running", "runner", এবং "runs" শব্দগুলির সমস্ত রূপকে মূল রূপে "run" এ রূপান্তর করা হয়েছে।

Lemmatization Example:

# textstem প্যাকেজ ব্যবহার করে Lemmatization
install.packages("textstem")
library(textstem)

# Lemmatization Example
text <- c("better", "running")
lemmatized_text <- lemmatize_words(text)
print(lemmatized_text)

এখানে, "better" শব্দটিকে "good" এবং "running" শব্দটিকে "run" এ রূপান্তর করা হয়েছে।


3. Putting It All Together: Tokenization and Cleaning

টোকেনাইজেশন এবং টেক্সট ক্লিনিং একত্রে ব্যবহার করে আপনি আরও পরিষ্কার এবং সুসংগঠিত ডেটা তৈরি করতে পারেন যা মডেল ট্রেনিং এবং বিশ্লেষণে সহায়ক হবে।

Full Example: Tokenization and Cleaning

# প্যাকেজ লোড করা
library(tm)
library(tidytext)

# টেক্সট ডেটা
text_data <- c("This is an example!! Text processing is fun. 123")

# টেক্সট ক্লিনিং: Lowercase, Remove punctuation, Remove stopwords
cleaned_text <- tolower(text_data)  # Lowercasing
cleaned_text <- removePunctuation(cleaned_text)  # Remove punctuation
cleaned_text <- removeNumbers(cleaned_text)  # Remove numbers
cleaned_text <- removeWords(cleaned_text, stopwords("en"))  # Remove stopwords

# টোকেনাইজেশন
tokens <- unnest_tokens(tidytext::as_tibble(data.frame(text = cleaned_text)), word, text)

# ফলাফল দেখানো
print(tokens)

এখানে, ডেটা ক্লিনিংয়ের পরে টোকেনাইজেশন করা হয়েছে যাতে শব্দগুলোর মধ্যে বিভাজন করা যায়।


Summary

  1. Tokenization: একটি টেক্সটকে ছোট ছোট টুকরো (tokens) এ বিভক্ত করার প্রক্রিয়া, যেমন শব্দ বা বাক্য।
  2. Text Cleaning: টেক্সট ডেটা থেকে অপ্রয়োজনীয় উপাদান সরানোর প্রক্রিয়া, যেমন লোয়ারকেসিং, পাঞ্চুয়েশন সরানো, স্টপওয়ার্ডস সরানো, স্টেমিং, এবং লেমাটাইজেশন।
  3. R এ টেক্সট ক্লিনিং এবং টোকেনাইজেশন করার জন্য tm, tidytext, stringr, SnowballC, এবং textstem এর মতো প্যাকেজ ব্যবহার করা হয়।

এভাবে, টোকেনাইজেশন এবং টেক্সট ক্লিনিং মডেল তৈরি এবং প্রক্রিয়া করার জন্য ডেটাকে প্রস্তুত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...