Header Ads

Header ADS

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 চাও


Powered by Blogger.