سؤال

أنا أقرأ هذا الكتاب (NLTK) و هو مربكة. الكون هو تعريف:

الكون هو مجموع احتمال كل تسمية مرات سجل احتمال أن نفس التسمية

كيف يمكنني التقدم بطلب الكون و أقصى الكون حيث نص التعدين ؟ شخص ما يمكن أن تعطيني سهلة وبسيطة سبيل المثال (البصرية)?

هل كانت مفيدة؟

المحلول

أفترض أن انتروبيا ذكر في سياق البناء أشجار القرار.

لتوضيح، تخيل مهمة التعلم ل تصنيف الأسماء الأولى في مجموعات الذكور / الإناث. التي تعطى قائمة بالأسماء التي تسمى كل منها إما m أو f, ونحن نريد أن نتعلم نموذج يناسب البيانات ويمكن استخدامه للتنبؤ بنوع النوع الأول غير المرئي الجديد.

name       gender
-----------------        Now we want to predict 
Ashley        f              the gender of "Amro" (my name)
Brian         m
Caroline      f
David         m

الخطوة الأولى هي اتخاذ قرار بشأنه ماذا او ما الميزات من البيانات ذات صلة بالطبقة المستهدفة التي نريد التنبؤ بها. تشمل بعضها من بعض الميزات: الحرف الأول / آخر، طول، عدد الحروف الحروفية، هل ينتهي مع حرف علة، وما إلى ذلك. لذلك بعد استخراج الميزات، تبدو بياناتنا:

# name    ends-vowel  num-vowels   length   gender
# ------------------------------------------------
Ashley        1         3           6        f
Brian         0         2           5        m
Caroline      1         4           8        f
David         0         2           5        m

الهدف هو بناء شجرة القرار. وبعد مثال على شجرة سيكون:

length<7
|   num-vowels<3: male
|   num-vowels>=3
|   |   ends-vowel=1: female
|   |   ends-vowel=0: male
length>=7
|   length=5: male

أساسا تمثل كل عقدة اختبار يؤديها في سمة واحدة، ونحن نذهب إلى اليسار أو اليمين حسب نتيجة الاختبار. نستمر في اجتياز الشجرة حتى نصل إلى عقدة ورقة تحتوي على التنبؤ في الفصل (m أو f)

لذلك إذا كنا نفد الاسم عمرو أسفل هذه الشجرة، نبدأ عن طريق الاختبار "هو الطول <7؟" والجواب هو نعم, ، لذلك نذهب إلى أسفل هذا الفرع. بعد الفرع، الاختبار التالي "هو عدد حروف العلة <3؟"مرة أخرى تقيم ل حقيقي. وبعد هذا يؤدي إلى عقدة ورقة المسمى m, ، وبالتالي التنبؤ هو الذكر (الذي صادفته، لذلك تنبأ الشجرة النتيجة بشكل صحيح).

شجرة القرار هي بنيت بطريقة من أعلى إلى أسفل, ، ولكن السؤال هو كيف يمكنك اختيار أي سمة للانقسام في كل عقدة؟ يجد الإجابة الميزة التي تنفصل أفضل الفئة المستهدفة إلى أنقى عقد الأطفال المحتملين (أي: العقد التي لا تحتوي على مزيج من كل من الذكور والإناث، العقد النقية إلى حد ما مع فئة واحدة فقط).

هذا مقياس نقاء يسمى معلومة. وبعد يمثل ذلك مُتوقع مبلغ معلومة ستكون هناك حاجة لتحديد ما إذا كان يجب تصنيف مثيل جديد (الاسم الأول) الذكور أو الإناث، بالنظر إلى المثال الذي وصل إلى العقدة. نقوم بحسابها بناء على عدد الطبقات الذكور والإناث في العقدة.

غير قادر علي من ناحية أخرى هو مقياس نجاسة (المقابل). يتم تعريفه ل الطبقة الثنائية مع القيم a/b مثل:

Entropy = - p(a)*log(p(a)) - p(b)*log(p(b))

هذه وظيفة الانتروبيا الثنائية يصور في الشكل أدناه (متغير عشوائي يمكن أن يأخذ واحدة من قيمين). يصل الحد الأقصى عندما يكون الاحتمال p=1/2, ، وهذا يعني أن p(X=a)=0.5 أو بالمثلp(X=b)=0.5 وجود فرصة 50٪ / 50٪ من كونها أيضا a أو b (عدم اليقين هو بحد أقصى). وظيفة Entropy هي في صفر الحد الأدنى عند الاحتمال p=1 أو p=0 مع اليقين الكامل (p(X=a)=1 أو p(X=a)=0 على التوالي، وهذا يعني p(X=b)=1).

https://en.wikipedia.org/wiki/File:Binary_entropy_plot.svg

بالطبع يمكن تعيين تعريف Entropy لمتغير عشوائي منفصل X مع نتائج N (وليس فقط):

entropy

(ال log في الصيغة عادة ما تؤخذ كما لوغاريتم إلى القاعدة 2)


العودة إلى مهمتنا من تصنيف الاسم، دعنا ننظر إلى مثال. تخيل في مرحلة ما أثناء عملية بناء الشجرة، كنا نفكر في الانقسام التالي:

     ends-vowel
      [9m,5f]          <--- the [..,..] notation represents the class
    /          \            distribution of instances that reached a node
   =1          =0
 -------     -------
 [3m,4f]     [6m,1f]

كما ترون، قبل الانقسام كان لدينا 9 ذكور و 5 إناث، أي P(m)=9/14 و P(f)=5/14. وبعد وفقا لتعريف entropy:

Entropy_before = - (5/14)*log2(5/14) - (9/14)*log2(9/14) = 0.9403

بعد ذلك، نقارنه مع محسوب انتروبيا بعد النظر في الانقسام من خلال النظر إلى فروع طفلين. في الفرع الأيسر من ends-vowel=1, ، نملك:

Entropy_left = - (3/7)*log2(3/7) - (4/7)*log2(4/7) = 0.9852

والفرع المناسب ends-vowel=0, ، نملك:

Entropy_right = - (6/7)*log2(6/7) - (1/7)*log2(1/7) = 0.5917

نحن نجمع بين الانترذيب الأيسر / الأيمن باستخدام عدد المثيلات لأسفل كل فرع عامل الوزن (ذهبت 7 مثيلات اليسار، وذهب 7 مثيلات إلى اليمين)، والحصول على الانتروبي النهائي بعد الانقسام:

Entropy_after = 7/14*Entropy_left + 7/14*Entropy_right = 0.7885

الآن من خلال مقارنة الانتروبي قبل وبعد الانقسام، نحصل على مقياس كسب المعلومات, ، أو مقدار المعلومات التي اكتسبناها عن طريق القيام بالانقسام باستخدام هذه الميزة المعينة:

Information_Gain = Entropy_before - Entropy_after = 0.1518

يمكنك تفسير الحساب أعلاه على النحو التالي: عن طريق القيام بالانقسام مع end-vowels ميزة، تمكنا من الحد من عدم اليقين في نتيجة تنبؤ الأشجار الفرعية بمبلغ صغير من 0.1518 (تقاس بت مثل وحدات المعلومات).

في كل عقدة من الشجرة، يتم تنفيذ هذا الحساب لكل ميزة، والميزة مع أكبر كسب المعلومات يتم اختياره للانقسام في جشع الطريقة (وبالتالي تفضيل الميزات التي تنتج نقي الانشقاقات مع عدم اليقين المنخفض / انتروبيا). يتم تطبيق هذه العملية متكررة من عقدة الجذر، وتتوقف عند وجود عقدة ورقة تحتوي على مثيلات جميع الفئة نفسها (لا حاجة لتقسيمها أكثر).

لاحظ أنني تخطيت أكثر من بعض تفاصيل التي تتجاوز نطاق هذا المنصب، بما في ذلك كيفية التعامل مع ميزات رقمية, قيم مفقودة, overfitting. و تشذيب الأشجار، إلخ ..

نصائح أخرى

لتبدأ، سيكون من الأفضل فهمه the measure of information.

كيف يمكننا measure المعلومات؟

عندما يحدث شيء غير مرجح، نقول إنه أخبار كبيرة. أيضا، عندما نقول شيئا يمكن التنبؤ به، ليس مثيرا للاهتمام حقا. لذلك لتحديد هذا interesting-ness, ، يجب أن تلبي الوظيفة

  • إذا كان احتمال الحدث 1 (يمكن التنبؤ به)، فإن الوظيفة تعطي 0
  • إذا كان احتمال الحدث قريبا من 0، فيجب أن تعطي الوظيفة رقما عاليا
  • إذا حدث احتمال 0.5 الأحداث تعطيه one bit المعلومات.

واحد قياس طبيعي يرضي القيود

I(X) = -log_2(p)

أين ب هو احتمال الحدث X. وبعد والوحدة في bit, ، يستخدم نفس الكمبيوتر قليلا. 0 أو 1.

مثال 1

الوجه المعتاد الوجه:

ما مقدار المعلومات التي يمكن أن نحصل عليها من فليب عملة واحدة؟

إجابه : -log(p) = -log(1/2) = 1 (bit)

مثال 2

إذا ضرب النيزك الأرض غدا، p=2^{-22} ثم يمكننا الحصول على 22 بت من المعلومات.

إذا تشرقت الشمس غدا، p ~ 1 ثم هو 0 بت من المعلومات.

غير قادر علي

لذلك إذا التوقعنا على interesting-ness من حدث Y, ، ثم هو الانتروبيا. أي انتروبيا هي قيمة متوقعة للاهتمام من الحدث المثير للاهتمام.

H(Y) = E[ I(Y)]

أكثر رسميا، فإن الانتروبيا هو العدد المتوقع من البتات من الحدث.

مثال

Y = 1: يحدث حدث X مع احتمال P

Y = 0: الحدث X لا يحدث مع احتمال 1-P

H(Y) = E[I(Y)] = p I(Y==1) + (1-p) I(Y==0) 
     = - p log p - (1-p) log (1-p)

سجل قاعدة 2 لجميع السجل.

لا أستطيع أن أعطيك الرسومات, ولكن ربما كنت يمكن أن تعطي تفسيرا واضحا.

لنفترض أن لدينا معلومات القناة ، مثل ضوء يومض مرة واحدة كل يوم إما أحمر أو أخضر.كم من المعلومات لا ينقل ؟ أول تخمين قد يكون بت واحد في اليوم الواحد.ولكن ماذا لو أضفنا الأزرق ، بحيث المرسل لديه ثلاثة خيارات ؟ ونود أن يكون هناك قدر من المعلومات التي يمكن التعامل مع أمور أخرى من القوى اثنين ولكن لا يزال المضافة (طريقة ضرب عدد ممكن من الرسائل من قبل اثنين من يضيف بت واحد).يمكننا القيام بذلك عن طريق أخذ السجل2(عدد ممكن من الرسائل) ، ولكن اتضح ان هناك ؟

لنفترض أننا عدنا إلى الأحمر/الأخضر ، ولكن لمبة حمراء قد احترقت (هذا هو المعروف) بحيث المصباح يجب دائما فلاش الأخضر.قناة الآن غير مجدية ، نحن نعلم ما القادم سوف يكون فلاش حتى ومضات ينقل أي معلومات ، أي أخبار.ونحن الآن إصلاح لمبة ولكن فرض قاعدة أن لمبة حمراء لا يجوز فلاش مرتين في صف واحد.عندما يومض مصباح أحمر ، ونحن نعلم ما القادم فلاش سوف يكون.إذا كنت تحاول إرسال تيار بت من خلال هذه القناة سوف تجد أنه يجب ترميز مع ومضات من البتات (50 ٪ أكثر من ذلك ، في الواقع).و إذا أردت أن تصف سلسلة من الهبات ، يمكنك أن تفعل ذلك مع عدد أقل من القطع.وينطبق الشيء نفسه إذا كان كل فلاش مستقلة (الخالية من السياق) ، ولكن الأخضر ومضات هي أكثر شيوعا من الأحمر:أكثر منحرفة احتمال أقل بت تحتاج لوصف تسلسل و أقل المعلومات التي يحتوي كل الطريق إلى الأخضر ، لمبة محترقة الحد.

اتضح أن هناك وسيلة لقياس كمية المعلومات في إشارة على أساس الاحتمالات من رموز مختلفة.إذا كان احتمال الحصول على الرمز xأنا هو pأنا, ثم النظر في الكمية

-log pأنا

أصغر pأنا, زادت هذه القيمة.إذا كان xأنا يصبح ضعف المرجح وتزيد هذه القيمة من خلال مبلغ ثابت (log(2)).هذا يجب أن أذكرك إضافة الشيء إلى رسالة.

إذا كنا لا نعرف ما الرمز سوف يكون (ولكن نحن نعرف الاحتمالات) ثم يمكننا حساب متوسط هذه القيمة ، كم نحن سوف تحصل على, طريق جمع أكثر الاحتمالات المختلفة:

I = -Σ pأنا log(pأنا)

هذا هو محتوى المعلومات في ومضة واحدة.

Red bulb burnt out: pالأحمر = 0, pالأخضر=1, I = -(0 + 0)  = 0
Red and green equiprobable: pالأحمر = 1/2, pالأخضر = 1/2, I = -(2 * 1/2 * log(1/2)) = log(2)
Three colors, equiprobable: pأنا=1/3, I = -(3 * 1/3 * log(1/3)) = log(3)
Green and red, green twice as likely: pالأحمر=1/3, pالأخضر=2/3, I = -(1/3 log(1/3) + 2/3 log(2/3)) = log(3) - 2/3 log(2)

هذا هو محتوى المعلومات أو الكون ، من الرسالة.فمن القصوى عندما رموز مختلفة هي equiprobable.إذا كنت فيزيائي يمكنك استخدام سجل الطبيعية, إذا كنت عالم الكمبيوتر يمكنك استخدام تسجيل الدخول2 والحصول على البتات.

أنا أوصي حقا قرأت نظرية المعلومات، وأساليب بايز وفاوز. المكان المناسب للبدء هو كتاب (بحرية المتاحة عبر الإنترنت) بواسطة David Mackay:

http://www.inference.phy.cam.ac.uk/mackay/itila/

هذه طرق الاستدلال أكثر عميقا حقا أكثر من مجرد تعدين النص ولا يمكنني حقا وضع كيف يتعلم المرء كيفية تطبيق هذا إلى NLP دون تعلم بعض الأساسيات العامة الواردة في هذا الكتاب أو غيرها من الكتب التمهيدية على التعلم الآلي والبيازي ماكسين أساليب.

الاتصال بين نظرية الانتروبيا والاحتمال لمعالجة المعلومات والتخزين هو حقا عميق حقا. لإعطاء طعمها، هناك نظرية بسبب Shannon تنص على أن الحد الأقصى لمقدار المعلومات التي يمكنك تمريرها دون خطأ من خلال قناة اتصال صاخبة تساوي انتروبيا لعملية الضوضاء. هناك أيضا نظرية يربط مقدار ما تستطيع ضغط قطعة من البيانات لاحتلال الحد الأدنى من الذاكرة الممكنة في جهاز الكمبيوتر الخاص بك إلى Interpy of the Process الذي ولدت البيانات.

لا أعتقد أنه من الضروري حقا أن تتعلم بكل هذه النظرية في نظرية الاتصال، لكن من غير الممكن تعلم ذلك دون تعلم الأساسيات حول ما هو انتروبيا، وكيف يتم حسابها، ما هي العلاقة مع المعلومات والاستماع إليها، إلخ ...

عندما كنت أقوم بتنفيذ خوارزمية لحساب انتروبيا لصورة وجدت هذه الروابط، انظر هنا و هنا.

هذا هو رمز الزائفة التي استخدمتها، ستحتاج إلى تكييفها للعمل مع النص بدلا من الصور ولكن المبادئ يجب أن تكون هي نفسها.

//Loop over image array elements and count occurrences of each possible
//pixel to pixel difference value. Store these values in prob_array
for j = 0, ysize-1 do $
    for i = 0, xsize-2 do begin
       diff = array(i+1,j) - array(i,j)
       if diff lt (array_size+1)/2 and diff gt -(array_size+1)/2 then begin
            prob_array(diff+(array_size-1)/2) = prob_array(diff+(array_size-1)/2) + 1
       endif
     endfor

//Convert values in prob_array to probabilities and compute entropy
n = total(prob_array)

entrop = 0
for i = 0, array_size-1 do begin
    prob_array(i) = prob_array(i)/n

    //Base 2 log of x is Ln(x)/Ln(2). Take Ln of array element
    //here and divide final sum by Ln(2)
    if prob_array(i) ne 0 then begin
        entrop = entrop - prob_array(i)*alog(prob_array(i))
    endif
endfor

entrop = entrop/alog(2)

حصلت على هذا الرمز من مكان ما، لكنني لا أستطيع أن أحفر الرابط.

غير رسمي

غير قادر علي هل توفر المعلومات أو المعرفة، إن الافتقار إلى المعلومات سيؤدي إلى صعوبات في التنبؤ بالمستقبل الذي يعد الانتروبيا العالي (التنبؤ بالكلمة التالية في مجال التعدين النصي) ويوفرنا المعلومات / المعرفة ستساعدنا على التنبؤ الأكثر واقعية في المستقبل (انتروبيا منخفض).

ستقلل المعلومات ذات الصلة من أي نوع من الانتروبي وتساعدنا على التنبؤ بمستقبل أكثر واقعية، وأن هذه المعلومات يمكن أن تكون كلمة "اللحوم" موجودة في الجملة أو كلمة "اللحوم" غير موجودة. هذا يسمي كسب المعلومات


رسميا

غير قادر علي هو عدم وجود ترتيب من الحل

كما تقرأ كتابا عن NLTK سيكون مثيرا للاهتمام، فأنت تقرأ عن وحدة مصنف Maxent http://www.nltk.org/api/nltk.classify.html#module-nltk.classify.maxent.

بالنسبة لتصنيف التعدين النصي، يمكن أن تكون الخطوات: ما قبل المعالجة (التزخم، تبخير، اختيار ميزة مع كسب المعلومات ...)، التحول إلى رقمي (تردد أو TF-IDF) (أعتقد أن هذه هي الخطوة الرئيسية لفهمها عند استخدامها عند استخدامها النص كمدخلات إلى خوارزمية تقبل فقط رقمي) ثم تصنف مع Maxent، تأكد من أن هذا مجرد مثال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top