Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

دوال معالجة اللغة الطبيعية (NLP)

detectCharset

أُضيف في: v22.2.0

ميزة تجريبية
غير مدعوم في ClickHouse Cloud

يكتشف مجموعة المحارف لسلسلة إدخال غير مرمّزة بترميز UTF8.

البنية

detectCharset(s)

المعاملات

  • s — النص المراد تحليله. String

القيمة المُعادة

يعيد سلسلة نصية تحتوي على رمز مجموعة المحارف المُكتشفة String

أمثلة

الاستخدام الأساسي

SET allow_experimental_nlp_functions = 1;
SELECT detectCharset('Ich bleibe für ein paar Tage.')
WINDOWS-1252

detectLanguage

أُضيفت في: v22.2.0

ميزة تجريبية
غير مدعوم في ClickHouse Cloud

تكتشف هذه الدالة لغة سلسلة الإدخال المرمّزة بترميز UTF8. تستخدم الدالة مكتبة CLD2 لاكتشاف اللغة، وتُرجع رمز لغة ISO مكوّنًا من حرفين.

كلما كان الإدخال أطول، زادت دقة اكتشاف اللغة.

البنية

detectLanguage(s)

المعاملات

  • text_to_be_analyzed — النص المراد تحليله. String

القيمة المُعادة

تُرجع رمز ISO المكوَّن من حرفين للغة المكتشفة. ومن النتائج الأخرى المحتملة: un = غير معروف، وتعذّر اكتشاف أي لغة، other = اللغة المكتشفة لا تملك رمزًا من حرفين. String

أمثلة

الاستخدام الأساسي

SET allow_experimental_nlp_functions = 1;
SELECT detectLanguage('Je pense que je ne parviendrai jamais à parler français comme un natif.')
fr

detectLanguageMixed

أُضيف v22.2.0

ميزة تجريبية
غير مدعوم في ClickHouse Cloud

تشبه الدالة detectLanguage، لكن detectLanguageMixed تُرجع Map من رموز اللغات المكوّنة من حرفين، تكون مرتبطة بالنسبة المئوية لكل لغة في النص.

البنية

detectLanguageMixed(s)

المعاملات

  • s — النص المراد تحليله String

القيمة المُعادة

يعيد خريطةً بمفاتيح تمثل رموز ISO مكوّنة من حرفين، وبقيمٍ مقابلة تمثل النسبة المئوية للنص المكتشف لكل لغة Map(String, Float32)

أمثلة

لغات مختلطة

SET allow_experimental_nlp_functions = 1;
SELECT detectLanguageMixed('二兎を追う者は一兎をも得ず二兎を追う者は一兎をも得ず A vaincre sans peril, on triomphe sans gloire.')
{'ja':0.62,'fr':0.36}

detectLanguageUnknown

أُضيف v22.2.0

ميزة تجريبية
غير مدعوم في ClickHouse Cloud

تشبه الدالة detectLanguage‎، باستثناء أن الدالة detectLanguageUnknown تعمل مع السلاسل النصية غير المرمّزة بترميز UTF8. يُفضَّل استخدام هذا الإصدار عندما تكون مجموعة المحارف لديك UTF-16 أو UTF-32.

البنية

detectLanguageUnknown('s')

المعاملات

  • s — النص المطلوب تحليله. String

القيمة المُعادة

يعيد رمز ISO المكوّن من حرفين للغة المكتشفة. النتائج الأخرى المحتملة: un = غير معروف، وتعني تعذّر اكتشاف أي لغة، other = اللغة المكتشفة ليس لها رمز مكوّن من حرفين. String

أمثلة

الاستخدام الأساسي

SET allow_experimental_nlp_functions = 1;
SELECT detectLanguageUnknown('Ich bleibe für ein paar Tage.')
de

detectTonality

أُضيف في: v22.2.0

ميزة تجريبية
غير مدعوم في ClickHouse Cloud

يحدّد الطابع العاطفي لبيانات النص المقدَّمة.

تستخدم الدالة قاموسًا عاطفيًا مضمَّنًا ولا تعمل حاليًا إلا مع اللغة الروسية.

البنية

detectTonality(s)

المعاملات

  • s — النص المراد تحليله. String

القيمة المُعادة

يعيد متوسط قيمة المشاعر للكلمات في النص Float32

أمثلة

تحليل المشاعر باللغة الروسية

SET allow_experimental_nlp_functions = 1;

SELECT
    detectTonality('Шарик - хороший пёс'),
    detectTonality('Шарик - пёс'),
    detectTonality('Шарик - плохой пёс')
0.44445	0	-0.3

lemmatize

أُضيفت في: v21.9.0

ميزة تجريبية
غير مدعوم في ClickHouse Cloud

تُجري إرجاع الكلمة المعطاة إلى أصلها المعجمي. تتطلب هذه الدالة قواميس للعمل، ويمكن الحصول عليها من github. لمزيد من التفاصيل حول تحميل قاموس من ملف محلي، راجع صفحة "تعريف القواميس".

البنية

lemmatize(lang, word)

المعاملات

  • lang — اللغة التي ستُطبَّق قواعدها. String
  • word — كلمة مكتوبة بأحرف صغيرة يلزم إرجاعها إلى أصلها الصرفي. String

القيمة المُعادة

يعيد الصيغة المُرجَعة إلى أصلها الصرفي للكلمة. String

أمثلة

إرجاع الكلمات الإنجليزية إلى أصلها الصرفي

SET allow_experimental_nlp_functions = 1;
SELECT lemmatize('en', 'wolves')
wolf

stem

استُحدثت في: v21.9.0

تُجري استخراج الجذر لكلمة أو Array من الكلمات باستخدام خوارزميات Snowball. يجب أن تكون كل سلسلة إدخال كلمة واحدة بحروف صغيرة فقط — فالسلاسل التي تحتوي على مسافات بيضاء تؤدي إلى حدوث Exception. يؤدي تمرير أحرف كبيرة إلى نتائج undefined. تعيد String للمدخلات scalar (بما في ذلك FixedString) وArray(String) لمدخلات المصفوفات. تتوفّر أيضًا متغيرات Nullable وLowCardinality من String وFixedString. تتوفر قائمة معرّفات اللغات المدعومة في system.stemmers.

البنية

stem(word, language)

المعاملات

  • word — كلمة واحدة مكتوبة بأحرف صغيرة (أو مصفوفة من الكلمات) لتجذيرها. يجب أن تكون بأحرف صغيرة — إذ تؤدي الأحرف الكبيرة إلى نتائج غير محددة. يقبل String و FixedString و Array(String) و Array(FixedString) و Array(Nullable(String)) أو Array(Nullable(FixedString)). String أو FixedString أو Array(String) أو Array(FixedString)
  • language — اللغة التي ستُطبَّق قواعد التجذير الخاصة بها. تُدرَج المعرّفات القياسية في system.stemmers (مثل 'english' و 'german' و 'porter'). يقبل Snowball أيضًا رموز ISO 639 المكوّنة من حرفين أو ثلاثة (مثل 'en' و 'eng') كأسماء مستعارة حيثما كانت معرّفة، لكن التغطية تختلف باختلاف اللغة — لذا يُفضَّل استخدام الأسماء من system.stemmers لضمان قابلية النقل. String

القيمة المعادة

الصيغة المُجذَّرة للكلمة (String)، أو مصفوفة من الكلمات المُجذَّرة (Array(String)). String أو Array(String)

أمثلة

تجذير كلمة واحدة

SELECT stem('blessing', 'en') AS res
bless

اختزال مصفوفة من الكلمات إلى جذورها

SELECT stem(['blessing', 'disguise'], 'en') AS res
['bless','disguis']

تجذير قيمة FixedString

SELECT stem(toFixedString('blessing', 10), 'en') AS res
bless

استخراج جذر كلمة من النوع Nullable

SELECT stem(toNullable('blessing'), 'en') AS res
bless

synonyms

أُضيفت في: v21.9.0

ميزة تجريبية
غير مدعوم في ClickHouse Cloud

تعثر على مرادفات لكلمة معيّنة.

هناك نوعان من امتدادات المرادفات:

  • plain
  • wordnet

مع نوع الامتداد plain، تحتاج إلى توفير مسار إلى ملف نصي بسيط، حيث يمثّل كل سطر مجموعة معيّنة من المرادفات. يجب فصل الكلمات في هذا السطر بمسافات أو بمحارف جدولة.

مع نوع الامتداد wordnet، تحتاج إلى توفير مسار إلى دليل يحتوي على معجم المرادفات WordNet. يجب أن يحتوي معجم المرادفات على فهرس معاني WordNet.

البنية

synonyms(ext_name, word)

المعاملات

  • ext_name — اسم الامتداد الذي سيُجرى البحث فيه. String
  • word — الكلمة المطلوب البحث عنها في الامتداد. String

القيمة المعادة

تُرجع مصفوفة من المرادفات للكلمة المحددة. Array(String)

أمثلة

العثور على المرادفات

SET allow_experimental_nlp_functions = 1;
SELECT synonyms('en', 'important')
['important','big','critical','crucial','essential']
Navigation