Key Word Extract
🧠 ১️.TF-IDF (Term Frequency–Inverse Document Frequency)
👉 উদ্দেশ্য:
TF-IDF কোনো টেক্সট থেকে “কোন শব্দগুলো সবচেয়ে গুরুত্বপূর্ণ” তা বের করে।
ধরা যাক তোমার কাছে অনেক ইভেন্টের description আছে। TF-IDF সেই description গুলোর মধ্যে তুলনা করে বলে দেয় —
কোন word টি নির্দিষ্ট ইভেন্টে বেশি গুরুত্বপূর্ণ আর বাকিগুলোতে কম দেখা যায়।
👉 কাজ করার পদ্ধতি:
-
TF (Term Frequency): শব্দটি description-এ কতবার এসেছে।
-
IDF (Inverse Document Frequency): শব্দটি সব description-এর মধ্যে কতটা বিরল।
-
TF-IDF Score = TF × IDF
যে word-এর score সবচেয়ে বেশি → সেই word কে গুরুত্বপূর্ণ keyword ধরা হয়।
⚙️ Node.js Implementation (TF-IDF)
তুমি npm-এ natural নামে একটা জনপ্রিয় NLP লাইব্রেরি ব্যবহার করতে পারো।
npm install natural
তারপর কোড 👇
import natural from 'natural';
// সব ইভেন্টের description লিস্ট আকারে
const documents = [
"EWU programming club going to arrange a seminar on MERN stack development.",
"AI club organizing a session about machine learning and neural networks.",
"Robotics team will conduct a workshop on autonomous vehicles."
];
// TF-IDF মডেল তৈরি
const TfIdf = natural.TfIdf;
const tfidf = new TfIdf();
// সব description যোগ করা
documents.forEach(doc => tfidf.addDocument(doc));
// ধরো আমরা প্রথম description (index 0) এর keywords বের করতে চাই
tfidf.listTerms(0).slice(0, 10).forEach(item => {
console.log(`${item.term} : ${item.tfidf}`);
});
Output (example):
mern : 0.45
stack : 0.43
development : 0.41
programming : 0.38
seminar : 0.36
📊 এভাবে তুমি টপ ৫ বা টপ ১০ keyword নিতে পারবে —
এগুলোই তোমার ইভেন্টের important keywords হবে যা recommendation matching এ কাজে লাগবে।
🧠 ২️.RAKE (Rapid Automatic Keyword Extraction)
👉 উদ্দেশ্য:
RAKE algorithm টেক্সটের মধ্যে যেসব phrase বা শব্দের মিল আছে সেগুলো বের করে দেয় —
যেমন “web development”, “mern stack development”, “machine learning” ইত্যাদি।
অর্থাৎ শুধু single word না, বরং meaningful phrases বের করে দেয়।
⚙️ Node.js Implementation (RAKE)
RAKE এর জন্য তুমি rake-js লাইব্রেরি ব্যবহার করতে পারো:
npm install rake-js
তারপর কোড 👇
import rake from "rake-js";
const text = `EWU programming club going to arrange a seminar on MERN stack development.
Nowadays web development is an increasing profession. Instructor Anisul Islam will discuss
JavaScript, HTML, CSS.`;
const keywords = rake.generate(text);
console.log(keywords);
Output:
[
'mern stack development',
'web development',
'programming club',
'seminar',
'javascript',
'html',
'css'
]
দেখো, এখানে RAKE শুধু single words না, বরং meaningful phrases দিচ্ছে —
যা event recommendation এর জন্য অনেক বেশি accurate।
💡 Summary
| Algorithm | কী দেয় | কবে ব্যবহার করবে |
|---|---|---|
| TF-IDF | গুরুত্বপূর্ণ single words | অনেক ইভেন্ট থাকলে (comparison দরকার হলে) |
| RAKE | meaningful multi-word phrases | যদি তুমি শুধু একেকটা description থেকে keyword চাও |