সুপ্ত ডিরিচলেট বরাদ্দ ব্যবহার করে টপিকের পূর্বাভাস


17

আমি দলিলগুলির কর্পাসে এলডিএ ব্যবহার করেছি এবং কিছু বিষয় খুঁজে পেয়েছি। আমার কোডের আউটপুট সম্ভাব্যতা সহ দুটি ম্যাট্রিক রয়েছে; একটি ডক-বিষয় সম্ভাবনা এবং অন্য শব্দ-বিষয় সম্ভাবনা। তবে আমি কীভাবে এই ফলাফলগুলি নতুন ডকুমেন্টের বিষয় ভবিষ্যদ্বাণী করতে ব্যবহার করতে পারি তা আসলে জানি না। আমি গিবস স্যাম্পলিং ব্যবহার করছি। কেউ জানেন কীভাবে? ধন্যবাদ


1
"নতুন ডকুমেন্টের বিষয় ভবিষ্যদ্বাণী করে" বলতে কী বোঝ? এই ডকুমেন্টটি কোন একক বিষয় থেকে উত্পন্ন হয়েছিল তা আপনি সন্ধান করতে চান? আপনি কি নথির জন্য বিষয়গুলির একটি মিশ্রণ সন্ধান করতে চান? আপনি কি নতুন নথিতে প্রতিটি শব্দকে সেই শব্দটি এসেছে সেই বিষয়টি দ্বারা লেবেল করতে চান?
শেল্ডনকুপার

এই ডকুমেন্টটি কোন একক বিষয় থেকে উত্পন্ন হয়েছিল তা আপনি সন্ধান করতে চান? আপনি কি দস্তাবেজের জন্য বিষয়ের মিশ্রণটি খুঁজে পেতে চান? - আমি এই দুটি প্রশ্নেরই উত্তর দিতে চাইছি ... তবে আমার কর্পস সত্যিই বড়, তাই প্রতিবার নতুন নথিতে আমার সমস্ত মডেলকে পুনরায় প্রশিক্ষণ দেওয়ার সামর্থ নেই cannot পরীক্ষা করা হয়
হোসেইন

উত্তর:


21

আমি 'ভাঁজ করা' চেষ্টা করব। এটি একটি নতুন ডকুমেন্ট নেওয়া, এটি কর্পাসে যুক্ত করা এবং তারপরে পুরানো নথির বিষয়বস্তু একই রেখে গিবসকে সেই নতুন দস্তাবেজের শব্দের উপর নমুনা চালানো বোঝায় । এটি সাধারণত দ্রুত রূপান্তরিত হয় (সম্ভবত 5-10-20 পুনরাবৃত্তি), এবং আপনাকে আপনার পুরানো কর্পাসের নমুনা দেওয়ার প্রয়োজন নেই, তাই এটি দ্রুতও চলে। নতুন ডকুমেন্টের প্রতিটি শব্দের জন্য আপনার শেষে বিষয়বস্তু থাকবে। এটি আপনাকে সেই দস্তাবেজের বিষয়বস্তু বিতরণ করবে।

আপনার গীবস স্যাম্পলারে আপনার সম্ভবত নিম্নলিখিত কোডের মতো কিছু রয়েছে:

// This will initialize the matrices of counts, N_tw (topic-word matrix) and N_dt (document-topic matrix)
for doc = 1 to N_Documents
    for token = 1 to N_Tokens_In_Document
       Assign current token to a random topic, updating the count matrices
    end
end

// This will do the Gibbs sampling
for doc = 1 to N_Documents
    for token = 1 to N_Tokens_In_Document
       Compute probability of current token being assigned to each topic
       Sample a topic from this distribution
       Assign the token to the new topic, updating the count matrices
    end
end

ফোল্ডিং-ইন একই, আপনি বিদ্যমান ম্যাট্রিকগুলি দিয়ে শুরু না করে, তাদের সাথে নতুন ডকুমেন্টের টোকেন যুক্ত করুন এবং কেবলমাত্র নতুন টোকেনের জন্য নমুনা করুন। অর্থাৎ,

Start with the N_tw and N_dt matrices from the previous step

// This will update the count matrices for folding-in
for token = 1 to N_Tokens_In_New_Document
   Assign current token to a random topic, updating the count matrices
end

// This will do the folding-in by Gibbs sampling
for token = 1 to N_Tokens_In_New_Document
   Compute probability of current token being assigned to each topic
   Sample a topic from this distribution
   Assign the token to the new topic, updating the count matrices
end

পিWআমিWআমিW

ΠপিWআমি

তোমার উত্তর দেওয়ার জন্য ধন্যবাদ আমি কিছু স্টাফ পড়েছি তবে "ফোল্ডিং ইন" নিয়ে কিছুটা বিভ্রান্তি আছে। আপনি বলছেন যে আমার পুরানো নথির বিষয়বস্তুগুলি একই রকম রাখা উচিত, এর অর্থ শব্দ-বিষয়বস্তুগুলির অ্যাসাইনমেন্টগুলি পুনরায় গণনা করা উচিত? আপনার কি কি করা উচিত তার আরও বিশদ পদক্ষেপ আমাকে দেওয়া সম্ভব? অথবা সম্ভবত আমাকে একটি কাগজ বা এমন কোনও লিঙ্কের উল্লেখ করছেন যা আমাকে এই "ভাঁজটি" প্রক্রিয়াটি পরিষ্কার করতে সহায়তা করতে পারে। আমার প্রথম বিকল্পটি "ফোল্ডিং ইন" করা। যদি ব্যর্থ হয় তবে আমি প্রস্তাবিত দ্বিতীয় পদ্ধতিতে যাব (এটি নিশ্চিত না যে এটি ভাঁজ করার জন্য তুলনামূলকভাবে কতটা কার্যকর কাজ করে)) ধন্যবাদ।
হোসেইন

@ শেল্ডনকুপার: যদি আমি আপনাকে সঠিকভাবে বুঝতে পারি তবে আমি সন্দেহ করি যে এটিই এটিই উপায়: আপনি যা করেন তা হ'ল আপনি কোনও নতুন পরীক্ষার নমুনায় কোনও এসভিএমের পারফরম্যান্সটি অপ্টিমাইজেশান অ্যালগরিদম থেকে আরও কয়েকটি ধাপ দিয়ে মাপুন measure পরীক্ষার নমুনা সহ বর্তমান সমাধান এবং তারপরে এই নমুনার উপর এটি মূল্যায়ন করুন ... তবে: মেশিন লার্নিংয়ে আপনি কখনই আপনার প্রশিক্ষণ সেটে পরীক্ষা করতে পারবেন না ... এবং মডেলটিতে পরীক্ষার নমুনা অন্তর্ভুক্ত করে আপনি ঠিক এটি করেন: পরীক্ষার উপর একটি প্রশিক্ষণের নমুনা ...
ফ্যাবিয়ান ওয়ার্নার

@ ফ্যাবিয়ান ওয়ার্নার আমি বিশ্বাস করি যে সমাধানটি মূল প্রশিক্ষণ থেকে শব্দ-বিষয় ম্যাট্রিক্স আপডেট করে নি। এটি কেবল প্রশিক্ষিত ওয়ার্ড-টপিক ম্যাট্রিক্স দিয়ে শুরু করে একটি গিবস স্যাম্পলার পুনরায় চালায় এবং একটি নতুন নথি-বিষয় ম্যাট্রিক্স তৈরি করে। যে কোনও হারে, ওপি যা বলেছিল তা করার কোনও উপায় আপনি জানেন (বেশ কয়েক বছর আগে স্বীকার করেছেন)? আমি একই সমস্যা তাকান।
thecity2

@ thecity2 যদিও আমি কিছুক্ষণের জন্য এই সমস্যাটি সম্পর্কে অবাক হয়েছি, তবে দুঃখের সাথে অবশ্যই বলতে হবে যে আমার কাছে এখনও কোনও সমাধান নেই। যদি আপনি একটি সন্ধান করেন, তবে দয়া করে আমাকে জানান !!!
ফ্যাবিয়ান ওয়ার্নার

@ ফ্যাবিয়ান ওয়ার্নার এই সমস্যাটিতে আপনার কোনও ট্রেন এবং পরীক্ষা সেট নেই - আপনার মন্তব্য এখানে অপ্রাসঙ্গিক। এটি ক্লাস্টারিংয়ের মতো নিখরচায় শেখা।
ইমেম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.