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)

और एक शब्द w_n की निरंतरता Pcont(wn)wn

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

जहां N1+(w) संदर्भों की संख्या है w या, सरल में देखा गया था, अलग शब्दों की संख्या कि दिए गए शब्द पूर्व में होना w । मैंने जो समझा है, उससे सूत्र को पुनरावर्ती रूप से लागू किया जा सकता है।

अब यह अलग-अलग n-ग्राम लंबाई के लिए अज्ञात संदर्भों में ज्ञात शब्दों को संभालता है, लेकिन यह स्पष्ट नहीं करता है कि जब आउट-ऑफ-डिक्शनरी शब्द होते हैं तो क्या करना है। मैंने इस उदाहरण का अनुसरण करने की कोशिश की, जिसमें कहा गया है कि यूनीग्राम्स के पुनरावर्तन चरण में, । दस्तावेज़ तब इसका उपयोग करता है - चेन और गुडमैन के हवाले से - उपरोक्त सूत्र को रूप में सही ठहराने के लिए । पी 1 के एन (डब्ल्यू)=पीसीएनटी(डब्ल्यू)Pcont(/)=PKN0(/)=1VPKN1(w)=Pcont(w)

मैं यह देखने में विफल हूं कि यह अज्ञात शब्द की उपस्थिति में कैसे काम करता है । इन मामलों में बाद से, जाहिर है, अज्ञात शब्द प्रशिक्षण सेट के संबंध में कुछ भी जारी नहीं रखता है। इसी तरह n- की गिनती ।पी सी एन टी ( अज्ञात ) = 0w=unknown C(wn-1,अज्ञात)=0Pcont(unknown)=0somethingC(wn1,unknown)=0

इसके अलावा, पूरे शब्द शून्य हो सकता है यदि अज्ञात शब्दों का एक अनुक्रम - कहते हैं, OOD शब्दों का एक ट्रिगर - सामना किया गया है।wC(wn1,w)

मुझे किसकी याद आ रही है?


मैं केएन के साथ भी संघर्ष कर रहा हूं। मुझे लगता है कि एक अनदेखे बीग्राम पी (डब्ल्यू 1 डब्ल्यू 2) की संभावना पिछले यूनीग्राम डब्ल्यू 2 की निरंतरता की संभावना को कम कर सकती है। जब आप एक अनदेखी यूनिग्राम के साथ छोड़ दिए जाते हैं तो आपके पास कुछ भी नहीं था। आगे क्या करना है? मुझे नहीं पता।
मोमोबो

मैं खुद केएन को इस समय लागू करने की कोशिश कर रहा हूं और इसी मुद्दे के साथ फंस गया हूं। क्या आप दोनों में से कोई एक समाधान खोजने के लिए प्रबंधन किया था?
जबिटर

मैं अनदेखा करने वाले unigrams (फ़्रीक्वेंसी और फ़्रीक्वेंसी-फ़्री-फ़्रीक्वेंसी के लिए एक पावर फंक्शन) के लिए गुड-ट्यूरिंग स्मूदी में वापस आ गया ... अलग-अलग परिणाम के साथ।
सूर्योदय से

जवाबों:


6

डैन जुराफस्की ने एन-ग्राम मॉडल पर एक अध्याय प्रकाशित किया है जो इस समस्या के बारे में थोड़ी बात करता है:

पुनरावर्तन की समाप्ति पर, यूनिग्राम को समान वितरण के साथ प्रक्षेपित किया जाता है:

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

यदि हम किसी अज्ञात शब्द को शामिल करना चाहते हैं <UNK>, तो इसे गिनती शून्य के साथ एक नियमित शब्दावली प्रविष्टि के रूप में शामिल किया जाता है, और इसलिए इसकी संभावना होगी:

λ(ϵ)|V|

मैंने यह पता लगाने की कोशिश की है कि इसका क्या मतलब है, लेकिन मुझे यकीन नहीं है कि अगर मतलब सिर्फ । यदि यह स्थिति है, और आप को लगता है कि के रूप में गिनती शून्य करने के लिए चला जाता है, हो सकता है को जाता है , के अनुसार:लिम x 0 x λ ( ϵ ) dϵlimx0xλ(ϵ)d

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

तब अज्ञात शब्द को केवल छूट का एक भाग दिया जाता है, अर्थात:

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

मैं इस जवाब के बारे में बिल्कुल भी आश्वस्त नहीं हूं, लेकिन कुछ और विचारों को सुलगाने के लिए इसे वहां से निकालना चाहता था।

अद्यतन: कुछ और के आसपास खुदाई, ऐसा लगता है जैसे कि का उपयोग आमतौर पर खाली स्ट्रिंग ("") को दर्शाने के लिए किया जाता है, लेकिन यह अभी भी स्पष्ट नहीं है कि यह की गणना को कैसे प्रभावित करता है । अभी भी मेरा सबसे अच्छा अनुमान हैϵλd|V|


2
अच्छा जवाब, लेकिन आप की तरह मैं इसमें 100% आश्वस्त नहीं हूं। मैंने पायथन में पर्ल स्क्रिप्ट रिसर्च का एक संस्करण कार्यान्वित किया है । Microsoft-en-us/um/redmond/groups/srg/papers/… अजगर में - लेकिन एहसास हुआ कि यह केवल तभी काम करता है, जब आपके पास एक बंद शब्दावली हो (0 अंक) ) - यानी सभी परीक्षण unigrams भी ट्रेन में हैं। जनवरी से सुझाव दिया lagunita.stanford.edu/c4x/Engineering/CS-224N/asset/slp4.pdf मैं पूर्व प्रसंस्करण के दौरान <UNK> के साथ प्रत्येक शब्द का पहला उदाहरण बदल दिया। हालांकि, विभाजन करते समय, कुछ परीक्षण यूनीग्राम ट्रेन में नहीं होते हैं जैसे "गूफेडअप"। इसलिए मैंने d / | V | यहाँ। धन्यवाद!
जोश मोरेल

1

एक मॉडल को प्रशिक्षित करने के कई तरीके हैं, <UNK>हालांकि जुराफस्की उन शब्दों को चुनने का सुझाव देते हैं जो प्रशिक्षण में बहुत कम बार आते हैं और बस उन्हें बदलते हैं <UNK>

फिर बस संभावनाओं को प्रशिक्षित करें जैसा कि आप सामान्य रूप से करेंगे।

देखिये यह वीडियो 3:40 से शुरू हुआ -

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

एक अन्य दृष्टिकोण यह है कि किसी शब्द को केवल <UNK>पहली बार प्रशिक्षण के दौरान देखा जाए, हालांकि मेरे अनुभव से यह दृष्टिकोण संभाव्यता द्रव्यमान के बहुत अधिक होने का संकेत देता है <UNK>


0

बस कुछ विचार, मैं इस मामले पर एक विशेषज्ञ होने से बहुत दूर हूं, इसलिए मेरा इरादा सवाल का जवाब देने का नहीं बल्कि उसका विश्लेषण करने का है।

साधारण बात यह है कि योग एक होने के लिए मजबूर करके गणना करना होगा । यह उचित है क्योंकि खाली स्ट्रिंग को प्रशिक्षण सेट में कभी नहीं देखा जाता है (कुछ भी नहीं भविष्यवाणी की जा सकती है) और योग एक होना चाहिए। यदि यह मामला है, तो का अनुमान लगाया जा सकता है: याद रखें कि यहाँ को बिग्राम मॉडल से प्राप्त किया गया है।λ(ϵ)λ(ϵ)

λ(ϵ)=1wmax(CKN(w)d,0)wCKN(w)
CKN(w)

एक अन्य विकल्प होगा <unk>कि रैंडी द्वारा बताए गए तरीकों से संभावना का अनुमान लगाया जाए और इसे नियमित टोकन माना जाए ।

मुझे लगता है कि यह कदम यह सुनिश्चित करने के लिए बना है कि सूत्र सुसंगत हैं। ध्यान दें कि शब्द संदर्भ पर निर्भर नहीं करता है और हर टोकन की संभावनाओं को निश्चित मान प्रदान करता है। यदि आप अगले शब्द की भविष्यवाणी करना चाहते हैं, तो आप इस शब्द को निर्धारित कर सकते हैं, दूसरी ओर यदि आप कांसर की तुलना करना चाहते हैं - दो या दो से अधिक अलग-अलग संदर्भों के तहत प्रत्येक टोकन को सौंपे गए संभावना को आप इसका उपयोग करना चाहते हैं।λ(ϵ)|V|


उत्तर वास्तविक उत्तरों के लिए माना जाता है।
माइकल आर। चेरिक जूल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.