تقنية معالجة اللغات الطبيعية

Azure AI services
Azure Databricks
Azure HDInsight
Azure Synapse Analytics

معالجة اللغة الطبيعية (NLP) لها العديد من الاستخدامات: تحليل المشاعر، والكشف عن الموضوع، واكتشاف اللغة، واستخراج العبارة الرئيسية، وتصنيف المستندات.

على وجه التحديد، يمكنك استخدام NLP من أجل:

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

Apache®‎ وApache Spark وشعار flame هي علامات تجارية مسجلة أو علامات تجارية لـ Apache Software Foundation في الولايات المتحدة و/أو البلدان الأخرى. لا توجد موافقة ضمنية من Apache Software Foundation باستخدام هذه العلامات.

حالات الاستخدام المحتملة

تتضمن سيناريوهات الأعمال التي يمكن أن تستفيد من البرمجة اللغوية العصبية المخصصة ما يلي:

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

Apache Spark كإطار عمل NLP مخصص

Apache Spark إطار معالجة متوازٍ يدعم المعالجة داخل الذاكرة لتعزيز أداء تطبيقات تحليل البيانات الضخمة. توفر Azure Synapse Analytics وAzure HDInsight وAzure Databricks الوصول إلى Spark والاستفادة من قوة المعالجة الخاصة بها.

بالنسبة لأحمال عمل NLP المخصصة، يعمل Spark NLP كإطار عمل فعال لمعالجة كمية كبيرة من النص. توفر مكتبة NLP مفتوحة المصدر مكتبات Python وJava وSc scala التي توفر الوظائف الكاملة لمكتبات NLP التقليدية مثل spaCy وNLTK وستانفورد CoreNLP وOpen NLP. يوفر Spark NLP أيضا وظائف مثل التدقيق الإملائي وتحليل التوجه وتصنيف المستندات. يحسن Spark NLP من الجهود السابقة من خلال توفير أحدث الدقة والسرعة وقابلية التوسع.

رسم تخطيطي يوضح مناطق وظائف N L P مثل التعرف على الكيان. تسرد مربعات مختلفة التعليقات التوضيحية N L P والنماذج واللغات المدعومة.

تظهر المعايير العامة الأخيرة Spark NLP على أنها أسرع ب 38 و80 مرة من spaCy، مع دقة قابلة للمقارنة لتدريب النماذج المخصصة. Spark NLP هي المكتبة الوحيدة مفتوحة المصدر التي يمكنها استخدام مجموعة Spark الموزعة. Spark NLP هو امتداد أصلي ل Spark ML يعمل مباشرة على إطارات البيانات. ونتيجة لذلك، تؤدي السرعات على نظام المجموعة إلى ترتيب آخر من حجم مكاسب الأداء. نظرا لأن كل مسار Spark NLP هو مسار Spark ML، فإن Spark NLP مناسب تماما لبناء مسارات البرمجة اللغوية العصبية والتعلم الآلي الموحدة مثل تصنيف المستندات والتنبؤ بالمخاطر ومسارات التوصية.

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

قامت المكتبة بتحسين إصدارات وحدات المعالجة المركزية ووحدات معالجة الرسومات وأحدث شرائح Intel Xeon. يمكنك توسيع نطاق عمليات التدريب والاستدلال للاستفادة من مجموعات Spark. يمكن تشغيل هذه العمليات في الإنتاج في جميع منصات التحليلات الشائعة.

التحديات

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

معايير تحديد المفتاح

في Azure، توفر خدمات Spark مثل Azure Databricks وAzure Synapse Analytics وAzure HDInsight وظائف NLP عند استخدامها مع Spark NLP. تعد خدمات Azure الذكاء الاصطناعي خيارا آخر لوظائف NLP. لتحديد الخدمة التي يجب استخدامها، ضع في اعتبارك هذه الأسئلة:

  • هل تريد استخدام نماذج مسبقة الإنشاء أو مدربة مسبقا؟ إذا كانت الإجابة بنعم، ففكر في استخدام واجهات برمجة التطبيقات التي تقدمها خدمات Azure الذكاء الاصطناعي. أو قم بتنزيل النموذج الذي تختاره من خلال Spark NLP.

  • هل تحتاج إلى تدريب نماذج مخصصة مقابل مجموعة كبيرة من البيانات النصية؟ إذا كانت الإجابة بنعم، ففكر في استخدام Azure Databricks أو Azure Synapse Analytics أو Azure HDInsight مع Spark NLP.

  • هل تحتاج إلى قدرات NLP منخفضة المستوى مثل الرمز المميز، والتفرع والفهرسة وتردد المصطلح/تكرار المستند العكسي (TF/IDF)؟ إذا كانت الإجابة بنعم، ففكر في استخدام Azure Databricks أو Azure Synapse Analytics أو Azure HDInsight مع Spark NLP. أو استخدم مكتبة برامج مفتوحة المصدر في أداة المعالجة التي تختارها.

  • هل تحتاج إلى قدرات NLP بسيطة وعالية المستوى مثل تحديد الكيان والهدف أو الكشف عن الموضوع أو التدقيق الإملائي أو تحليل التوجه؟ إذا كانت الإجابة بنعم، ففكر في استخدام واجهات برمجة التطبيقات التي تقدمها خدمات Azure الذكاء الاصطناعي. أو قم بتنزيل النموذج الذي تختاره من خلال Spark NLP.

مصفوفة الإمكانات

تلخص الجداول التالية الاختلافات الرئيسية في قدرات خدمات NLP.

الإمكانات العامة

الإمكانية خدمة Spark (Azure Databricks وAzure Synapse Analytics وAzure HDInsight) مع Spark NLP خدماتالذكاء الاصطناعي في Azure
يوفر نماذج مدربة مسبقا كخدمة ‏‏نعم‬ ‏‏نعم‬
واجهة برمجة تطبيقات REST ‏‏نعم‬ ‏‏نعم‬
قابلية البرمجة Python, Scala للحصول على اللغات المدعومة، راجع موارد إضافية
يدعم معالجة مجموعات البيانات الضخمة والمستندات الكبيرة ‏‏نعم‬ لا

قدرات NLP منخفضة المستوى

قدرة التعليقات التوضيحية خدمة Spark (Azure Databricks وAzure Synapse Analytics وAzure HDInsight) مع Spark NLP خدماتالذكاء الاصطناعي في Azure
كاشف الجملة ‏‏نعم‬ لا
كاشف الجملة العميقة ‏‏نعم‬ ‏‏نعم‬
الرمز المميز ‏‏نعم‬ ‏‏نعم‬
مولد N-gram ‏‏نعم‬ لا
تجزئة Word ‏‏نعم‬ ‏‏نعم‬
التفرع ‏‏نعم‬ لا
الفهرس ‏‏نعم‬ لا
وضع علامات على جزء من الكلام ‏‏نعم‬ لا
محلل التبعية ‏‏نعم‬ لا
الترجمة‬ ‏‏نعم‬ لا
إيقاف نظافة كلمة المرور ‏‏نعم‬ لا
تصحيح إملائي ‏‏نعم‬ لا
تطبيع ‏‏نعم‬ ‏‏نعم‬
مطابق النص ‏‏نعم‬ لا
TF/IDF ‏‏نعم‬ لا
مطابق التعبير العادي ‏‏نعم‬ مضمن في خدمة فهم اللغة (LUIS). غير معتمد في Conversational Language Understanding (CLU)، الذي يحل محل LUIS.
مطابق التاريخ ‏‏نعم‬ ممكن في LUIS وCLU من خلال أداة التعرف على DateTime
تشونكر ‏‏نعم‬ لا

قدرات NLP عالية المستوى

الإمكانية خدمة Spark (Azure Databricks وAzure Synapse Analytics وAzure HDInsight) مع Spark NLP خدماتالذكاء الاصطناعي في Azure
التدقيق الإملائي ‏‏نعم‬ لا
تلخيص ‏‏نعم‬ ‏‏نعم‬
الإجابة على الأسئلة  ‏‏نعم‬ ‏‏نعم‬
الكشف عن التوجه ‏‏نعم‬ ‏‏نعم‬
الكشف عن المشاعر ‏‏نعم‬ يدعم التنقيب عن الآراء
تصنيف الرمز المميز ‏‏نعم‬ نعم، من خلال نماذج مخصصة
تصنيف النصوص ‏‏نعم‬ نعم، من خلال نماذج مخصصة
تمثيل النص ‏‏نعم‬ لا
NER ‏‏نعم‬ نعم - توفر تحليلات النص مجموعة من NER، والنماذج المخصصة في التعرف على الكيان
التعرف على الوحدة ‏‏نعم‬ نعم، من خلال نماذج مخصصة
اكتشاف اللغة ‏‏نعم‬ ‏‏نعم‬
يدعم اللغات إلى جانب اللغة الإنجليزية نعم، يدعم أكثر من 200 لغة نعم، يدعم أكثر من 97 لغة

إعداد Spark NLP في Azure

لتثبيت Spark NLP، استخدم التعليمات البرمجية التالية، ولكن استبدل <version> بأحدث رقم إصدار. لمزيد من المعلومات، راجع وثائق Spark NLP.

# Install Spark NLP from PyPI.
pip install spark-nlp==<version>

# Install Spark NLP from Anacodna or Conda.
conda install -c johnsnowlabs spark-nlp

# Load Spark NLP with Spark Shell.
spark-shell --packages com.johnsnowlabs.nlp:spark-nlp_<version>

# Load Spark NLP with PySpark.
pyspark --packages com.johnsnowlabs.nlp:spark-nlp_<version>

# Load Spark NLP with Spark Submit.
spark-submit --packages com.johnsnowlabs.nlp:spark-nlp_<version>

# Load Spark NLP as an external JAR after compiling and building Spark NLP by using sbt assembly.
spark-shell --jars spark-nlp-assembly-3 <version>.jar

تطوير مسارات NLP

بالنسبة لترتيب تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية ل NLP، يتبع Spark NLP نفس مفهوم التطوير مثل نماذج التعلم الآلي التقليدية من Spark ML. ولكن Spark NLP يطبق تقنيات NLP.

رسم تخطيطي يوضح مراحل البنية الأساسية لبرنامج ربط العمليات التجارية N L P، مثل تجميع المستندات، والكشف عن الجملة، والرمز المميز، والتطبيع، وتضمين الكلمات.

المكونات الأساسية لمسار Spark NLP هي:

  • DocumentAssembler: محول يقوم بإعداد البيانات عن طريق تغييرها إلى تنسيق يمكن ل Spark NLP معالجته. هذه المرحلة هي نقطة الإدخال لكل مسار Spark NLP. يمكن ل DocumentAssembler قراءة عمود String أو Array[String]. يمكنك استخدام setCleanupMode لمعالجة النص مسبقا. بشكل افتراضي، يكون هذا الوضع متوقفا عن التشغيل.

  • SentenceDetector: تعليق توضيحي يكتشف حدود الجملة باستخدام النهج الذي يتم منحه. يمكن لهذا التعليق التوضيحي إرجاع كل جملة مستخرجة Arrayفي . يمكن أيضا إرجاع كل جملة في صف مختلف، إذا قمت بتعيين explodeSentences إلى صحيح.

  • Tokenizer: تعليق توضيحي يفصل النص الخام إلى رموز مميزة، أو وحدات مثل الكلمات والأرقام والرموز، ويعيد الرموز المميزة في TokenizedSentence بنية. هذه الفئة غير مجهزة. إذا كنت تتناسب مع الرمز المميز، فإن الداخلي RuleFactory يستخدم تكوين الإدخال لإعداد قواعد الرمز المميز. يستخدم Tokenizer معايير مفتوحة لتحديد الرموز المميزة. إذا كانت الإعدادات الافتراضية لا تلبي احتياجاتك، يمكنك إضافة قواعد لتخصيص Tokenizer.

  • Normalizer: تعليق توضيحي ينظف الرموز المميزة. يتطلب Normalizer ينبع. يستخدم Normalizer التعبيرات العادية والقاموس لتحويل النص وإزالة الأحرف المتسخة.

  • WordEmbeddings: تعليقات توضيحية للبحث تعين الرموز المميزة إلى المتجهات. يمكنك استخدام setStoragePath لتحديد قاموس بحث عن رمز مميز مخصص للتضمينات. يحتاج كل سطر من قاموسك إلى احتواء رمز مميز وتمثيل متجهه، مفصولة بمسافات. إذا لم يتم العثور على رمز مميز في القاموس، تكون النتيجة متجه صفر من نفس البعد.

يستخدم Spark NLP مسارات Spark MLlib، والتي يدعمها MLflow أصلا. MLflow هو نظام أساسي مفتوح المصدر لدورة حياة التعلم الآلي (ML). وتشمل مكوناته ما يلي:

  • MLflow Tracking: يسجل التجارب ويوفر طريقة للاستعلام عن النتائج.
  • MLflow Projects: يجعل من الممكن تشغيل التعليمات البرمجية لعلوم البيانات على أي نظام أساسي.
  • نماذج MLflow: ينشر النماذج في بيئات متنوعة.
  • Model Registry: يدير النماذج التي تقوم بتخزينها في مستودع مركزي.

تم دمج MLflow في Azure Databricks. يمكنك تثبيت MLflow في أي بيئة أخرى تستند إلى Spark لتتبع تجاربك وإدارتها. يمكنك أيضا استخدام سجل نموذج MLflow لتوفير النماذج لأغراض الإنتاج.

المساهمون

تحتفظ Microsoft بهذه المقالة. وهي مكتوبة في الأصل من قبل المساهمين التاليين.

الكتاب الرئيسيون:

الخطوات التالية