Kneser-Ney স্মুথিংয়ে, অদেখা শব্দগুলি কীভাবে পরিচালনা করা হয়?


15

আমি যা দেখেছি তা থেকে, (দ্বিতীয়-ক্রম) কানসার-নে স্মুথিং সূত্রটি কোনও উপায়ে বা অন্য হিসাবে দেওয়া হয়েছে

PKN2(wn|wn1)=max{C(wn1,wn)D,0}wC(wn1,w)+λ(wn1)×Pcont(wn)

নর্মালাইজিং ফ্যাক্টর সহ λ(wn1) হিসাবে দেওয়া হয়েছে

λ(wn1)=DwC(wn1,w)×N1+(wn1)

এবং ধারাবাহিকতা সম্ভাবনা Pcont(wn) একটি শব্দের wn

Pcont(wn)=N1+(wn)wN1+(w)

যেখানে N1+(w) প্রেক্ষিতে সংখ্যা w বা, simplier দেখা গেল, স্বতন্ত্র শব্দের সংখ্যা প্রদত্ত শব্দ আগে বসে w । আমি যা বুঝেছি সে থেকে সূত্রটি পুনরাবৃত্তভাবে প্রয়োগ করা যেতে পারে।

এখন এটি বিভিন্ন অ-গ্রাম দৈর্ঘ্যের জন্য অজানা প্রেক্ষাপটে পরিচিত শব্দগুলিকে পরিচালনা করে, তবে এটি কী ব্যাখ্যা করে না যে যখন অভিধানের বাইরে শব্দ থাকে তখন কী করা উচিত। আমি নিম্নলিখিত চেষ্টা এই উদাহরণে যা যে unigrams জন্য recursion পদক্ষেপে, । ডকুমেন্ট তারপর এই ব্যবহার করে - চেন ও গুডম্যান উদ্ধৃত - উপরের হিসাবে সূত্র ন্যায্যতা । পি 1 কে এন (ডাব্লু)=পিসিএনটি(ডাব্লু)Pcont(/)=PKN0(/)=1VPKN1(w)=Pcont(w)

যদিও এটি অজানা শব্দের উপস্থিতিতে । এর বাইরে কাজ করে তা দেখতে আমি ব্যর্থ । এই ক্ষেত্রে যেহেতু, স্পষ্টতই, অজানা শব্দটি প্রশিক্ষণের সেট সম্পর্কিত কিছু চালিয়ে যায় না। তেমনি এন-গ্রাম গণনা হতে ।পি সি এন টি ( অজানা ) = 0w=unknown সি(ডাব্লুএন-1,অজানা)=0Pcont(unknown)=0somethingC(wn1,unknown)=0

তদুপরি, পুরো শব্দটি শূন্য হতে পারে যদি অজানা শব্দের ক্রম - বলে, OOD শব্দের একটি ট্রিগার দেখা দেয়।wC(wn1,w)

আমি কী মিস করছি?


আমিও কেএন এর সাথে লড়াই করছি। আমি মনে করি যে একটি অদেখা বিগ্রাম পি (ডাব্লু 1 ডাব্লু 2) এর সম্ভাবনাটি শেষ ইউনিগ্রাম ডাব্লু 2 এর ধারাবাহিকতা সম্ভাবনার পিছনে ফিরে আসতে পারে। যখন আপনি একটি অদেখা ইউনিগ্রাম রেখে যান তখন আপনার কিছুই ছিল না। পরবর্তী কি করতে হবে? আমি জানি না।
মোমোবো

আমি এই মুহূর্তে নিজেকে কেএন বাস্তবায়নের চেষ্টা করছি এবং এই একই সমস্যাটিতে আটকে আছি। আপনারা দুজনেই কি কোনও সমাধান খুঁজে বের করার ব্যবস্থা করেছিলেন?
জাবায়েটার

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

উত্তর:


6

ড্যান জুরাফস্কি এন-গ্রাম মডেলগুলির উপর একটি অধ্যায় প্রকাশ করেছেন যা এই সমস্যা সম্পর্কে কিছুটা আলোচনা করে:

পুনরাবৃত্তি সমাপ্তির সময়, ইউনিগ্রামগুলি অভিন্ন বিতরণের সাথে বিভক্ত হয়:

PKN(w)=max(cKN(w)d,0)wcKN(w)+λ(ϵ)1|V|

যদি আমরা কোনও অজানা শব্দ অন্তর্ভুক্ত করতে চাই তবে <UNK>এটি কেবল গণনা শূন্যের সাথে একটি নিয়মিত শব্দভাণ্ডারের প্রবেশ হিসাবে অন্তর্ভুক্ত রয়েছে, এবং তাই এর সম্ভাব্যতাটি হবে:

λ(ϵ)|V|

আমি কি এই মানে খুঁজে বের করতে চেষ্টা করেছি, কিন্তু নিশ্চিত না হলে মাত্র উপায়ে । যদি এটি হয় এবং আপনি ধরে নেন যে গণনাটি শূন্যের দিকে চলে যায়, তবে সম্ভবত যায় :lim x 0 x λ ( ϵ ) dϵlimx0xλ(ϵ)d

λ(wi1)=dc(wi1)|{w:c(wi1,w)>0}|

তারপরে অজানা শব্দটি কেবল ছাড়ের একটি ভগ্নাংশ নির্ধারিত হবে, যেমন:

λ(ϵ)|V|=d|V|

আমি এই উত্তরটি সম্পর্কে মোটেও আত্মবিশ্বাসী নই, তবে এটি আরও কিছু চিন্তাভাবনা ছড়িয়ে দিলে সেখান থেকে এটি বের করতে চেয়েছিলাম।

আপডেট: আরও কিছু খনন করার পরে, মনে হয় সাধারণত খালি স্ট্রিং ("") বোঝাতে ব্যবহৃত হয়, তবে এটি কীভাবে গণনার উপর প্রভাব তা এখনও পরিষ্কার নয় । still এখনও আমার সেরা অনুমানϵλd|V|


2
ভাল উত্তর তবে আপনার মতো আমি এতে 100% আত্মবিশ্বাসী নই। আমি Perl স্ক্রিপ্ট এর একটি সংস্করণ বাস্তবায়ন research.microsoft.com/en-us/um/redmond/groups/srg/papers/... পাইথন মধ্যে - কিন্তু বুঝতে পেরেছি এটা কেবলমাত্র তখনই কাজ হিসাবে হলে আপনি একটি বদ্ধ শব্দভান্ডার আছে (0 PROB ইস্যু ) - অর্থাত্ সমস্ত পরীক্ষার ইউনিগ্রামগুলিও ট্রেনে রয়েছে। জান lagunita.stanford.edu/c4x/Engineering/CS-224N/asset/slp4.pdf দ্বারা প্রস্তাবিত হিসাবে আমি প্রসেসিংয়ের সময় প্রতিটি শব্দের প্রথম উদাহরণ <ইউ কে> দিয়ে প্রতিস্থাপন করেছি। যাইহোক, বিভাজন করার সময়, কিছু টেস্ট ইউনিগ্রাম রয়েছে "গোফিডআপ" এর মতো ট্রেনে নেই। সুতরাং আমি d / | V | ব্যবহার করেছি এখানে. ধন্যবাদ!
জোশ মোরেল 21'16

1

কোনও মডেলকে প্রশিক্ষণের অনেকগুলি উপায় রয়েছে <UNK>যদিও জুরাফস্কি প্রশিক্ষণে খুব কম সময়ে ঘটে যাওয়া সেই শব্দগুলি বেছে নেওয়ার এবং সেগুলিতে পরিবর্তন করার পরামর্শ দেয় <UNK>

তারপরে আপনার সম্ভাব্যতাগুলি সাধারণভাবে প্রশিক্ষণ দিন।

3:40 এ শুরু হওয়া এই ভিডিওটি দেখুন -

https://class.coursera.org/nlp/lecture/19

আরেকটি পদ্ধতির মধ্যে কেবল কোনও শব্দটিকে <UNK>প্রশিক্ষণে দেখা প্রথমবার হিসাবে বিবেচনা করা হয়, যদিও আমার অভিজ্ঞতা থেকে এই পদ্ধতির সম্ভাবনা ভরকে খুব বেশি বরাদ্দ করা হয় <UNK>


0

মাত্র কয়েকটা চিন্তাভাবনা, আমি এই বিষয়ে বিশেষজ্ঞ হতে অনেক দূরে তাই আমি প্রশ্নের উত্তর দেওয়ার চেষ্টা করি না বরং এটি বিশ্লেষণ করি।

করণীয় সহজ জিনিসটি হবে যোগফলকে এক হিসাবে জোর করে গণনা করা। এটি যুক্তিযুক্ত যেহেতু প্রশিক্ষণ সংকলনে খালি স্ট্রিংটি কখনই দেখা যায় না (কোনও কিছুই বাইরে থেকে ভবিষ্যদ্বাণী করা যায় না) এবং যোগফলটি একটি হতে হবে। এই যদি হয় তাহলে, দ্বারা নির্ণয় করা যায়: মনে রাখবেন যে এখানে মডেল থেকে প্রাপ্ত fromλ(ϵ)λ(ϵ)

λ(ε)=1-ΣWমিএকটিএক্স(সিকেএন(W)-,0)ΣW'সিকেএন(W)
সিকেএন(W)

আরেকটি বিকল্প <unk>হ'ল র্যান্ডির দ্বারা উল্লিখিত পদ্ধতিগুলির সাথে সম্ভাব্যতাটি অনুমান করা এবং এটি নিয়মিত টোকেন হিসাবে বিবেচনা করা।

আমি মনে করি যে সূত্রগুলি সামঞ্জস্যপূর্ণ তা নিশ্চিত করার জন্য এই পদক্ষেপটি করা হয়েছে। লক্ষ্য করুন যে শব্দটি the প্রসঙ্গের উপর নির্ভর করে না এবং প্রতিটি টোকেনের সম্ভাব্যতার জন্য নির্দিষ্ট মান নির্ধারণ করে। আপনি যদি পরবর্তী শব্দটির পূর্বাভাস দিতে চান তবে আপনি এই শব্দটি প্রিসিন্ড করতে পারেন, অন্যদিকে আপনি যদি কানস - Ney সম্ভাবনাটি প্রতিটি টোকনে নির্ধারিত দুটি বা তারও বেশি বিভিন্ন প্রেক্ষাপটে নির্ধারণ করতে চান তবে আপনি এটি ব্যবহার করতে চাইতে পারেন।λ(ϵ)|V|


উত্তরগুলি প্রকৃত উত্তরের জন্য বলে মনে করা হয়।
মাইকেল আর চেরনিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.