سؤال

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

إذا كنا أين نظرا لعملية الجملة "القط أكل الكلب"، فيمكننا أن نبدأ بتعيين كل كلمة معرف (على سبيل المثال CAT-1، ATE-2، The-3، Dog-4) ثم ببساطة استبدال الكلمة عن طريق هو معرف إعطاء المتجه <3،1،2،3،4>.

بالنظر إلى هذه المعرفات، يمكننا أيضا إنشاء ناقل ثنائي من خلال منح كل كلمة أربع فتحات محتملة، ووضع الفتحة المقابلة لكلمة محددة مع واحدة، وإعطاء المتجاه <0،0،0،0،0،0،0،0،0،0 ، 0،1،0،0،0،0،0،10>. يشار إلى الطريقة الأخيرة، بقدر ما أعرف، عادة ما تكون طريقة حقيبة الكلمات.

الآن لسؤالي، ما هو أفضل طريقة ثنرز عندما يتعلق الأمر بوضح ميزات معالجة اللغة الطبيعية بشكل عام، ومقرها الانتقال تحليل التبعية (مع خوارزمية nivres) على وجه الخصوص؟

في هذا السياق، لا نريد أن ترميز الجملة بأكملها، بل الحالة الحالية للتحليل، على سبيل المثال الكلمة العلوية الموجودة على المكدس en الكلمة الأولى في قائمة انتظار الإدخال. نظرا لأن الطلب مهم للغاية، فإن هذا يطارد طريقة حقيبة الكلمات.

مع أفضل, ، أنا أشير إلى الطريقة التي تجعل البيانات الأكثر وضوحا للفصل، دون استخدام الذاكرة غير الضرورية. على سبيل المثال، لا أريد أن تستخدم كلمة bigram 400 مليون ميزات لكلمات فريدة من 20000، إذا كانت Bigrams فقط 2٪ موجودة بالفعل.

نظرا لأن الإجابة تعتمد أيضا على المصنف المعين، فأنا مهتم في الغالب بأقصى طراز Enterpy (Liblinear)، وآلات Vector Support (libsvm) و perceptrons، ولكن الإجابات التي تنطبق على النماذج الأخرى موضع ترحيب أيضا.

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

المحلول

هذا هو في الواقع سؤال معقد حقا. القرار الأول عليك أن تصنعه هو ما إذا كان lemmatize. الرموز الإدخال الخاصة بك (كلماتك). إذا قمت بذلك، فأنت تقلل بشكل كبير من عدد أنواعك، وتحليل بناء الجملة لديك أقل تعقيدا. ومع ذلك، يستغرق الأمر الكثير من العمل إلى Lemmatize tken. الآن، في لغة الكمبيوتر، يتم تقليل هذه المهمة إلى حد كبير، نظرا لأن معظم اللغات منفصلة عن الكلمات الرئيسية أو الأسماء المتغيرة مع مجموعة محددة جيدا من الرموز، مثل Whitespace أو فترة أو ما

القرار الحاسم الثاني هو ما ستفعله مع البيانات بعد الفععل. طريقة "كيس الكلمات"، في النموذج الثنائي الذي قدمته، يتجاهل ترتيب الكلمات، وهو أمر جيد تماما إذا كنت تفعل تلخيص النص أو ربما بحث على غرار Google حيث لا تهتم أين تظهر الكلمات، طالما ظهورها. إذا كنت، من ناحية أخرى، تقوم ببناء شيء مثل مترجم أو محلل، أمر مهم للغاية. يمكنك استخدام نهج Token-Vector (كما هو الحال في الفقرة الثانية)، أو يمكنك تمديد نهج كيس الكلمات بحيث يحتوي كل إدخال غير صفري في كيس من ناقل الكلمات على موقف المؤشر الخطي من الرمز المميز في العبارة.

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

هل تمانع إذا كنت أسأل عن مهمة محددة تعمل عليها؟

نصائح أخرى

Binarization هو فعل تحويل ميزات ملونة للكيان إلى ناقلات الأرقام، معظم الأحيان ناقلات ثنائية، لجعل أمثلة جيدة لخوارزميات المصنف.

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

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

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

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