> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> توثيق دوال معالجة اللغة الطبيعية (NLP)

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

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            غير مدعوم في ClickHouse Cloud
        </div>;
};

export const ExperimentalBadge = () => {
  return <div className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            ميزة تجريبية. <u><a href="/docs/beta-and-experimental-features#experimental-features">تعرّف على المزيد.</a></u>
        </div>;
};

<div id="natural-language-processing-nlp-functions">
  # دوال معالجة اللغة الطبيعية
</div>

{/*AUTOGENERATED_START*/}

<div id="detectCharset">
  ## detectCharset
</div>

أُضيف في: v22.2.0

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

<Warning>
  هذه الدالة تجريبية، وقد تتغير بطرق غير متوقعة وغير متوافقة مع الإصدارات السابقة في الإصدارات المستقبلية.
  اضبط `allow_experimental_nlp_functions = 1` لتمكينها.
</Warning>

**البنية**

```sql theme={null}
detectCharset(s)
```

**المعاملات**

* `s` — النص المراد تحليله. [`String`](/ar/reference/data-types/string)

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

يعيد سلسلة نصية تحتوي على رمز مجموعة المحارف المُكتشفة [`String`](/ar/reference/data-types/string)

**أمثلة**

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

```sql title=Query theme={null}
SELECT detectCharset('Ich bleibe für ein paar Tage.')
```

```response title=Response theme={null}
WINDOWS-1252
```

<div id="detectLanguage">
  ## detectLanguage
</div>

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

تكتشف هذه الدالة لغة سلسلة الإدخال المرمّزة بترميز UTF8.
تستخدم الدالة مكتبة [CLD2](https://github.com/CLD2Owners/cld2) لاكتشاف اللغة، وتُرجع رمز لغة ISO مكوّنًا من حرفين.

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

<Warning>
  هذه الدالة تجريبية، وقد تتغير مستقبلاً بطرق غير متوقعة وغير متوافقة مع الإصدارات السابقة.
  اضبط `allow_experimental_nlp_functions = 1` لتمكينها.
</Warning>

**البنية**

```sql theme={null}
detectLanguage(s)
```

**الوسيطات**

* `text_to_be_analyzed` — النص المراد تحليله. [`String`](/ar/reference/data-types/string)

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

تُرجع رمز ISO المكوَّن من حرفين للغة المكتشفة. ومن النتائج الأخرى المحتملة: `un` = غير معروف، وتعذّر اكتشاف أي لغة، `other` = اللغة المكتشفة لا تملك رمزًا من حرفين. [`String`](/ar/reference/data-types/string)

**أمثلة**

**نص متعدد اللغات**

```sql title=Query theme={null}
SELECT detectLanguage('Je pense que je ne parviendrai jamais à parler français comme un natif. Where there\'s a will, there\'s a way.')
```

```response title=Response theme={null}
fr
```

<div id="detectLanguageMixed">
  ## detectLanguageMixed
</div>

تم تقديمها في: v22.2.0

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

<Warning>
  هذه الدالة تجريبية، وقد تتغير في الإصدارات المستقبلية بطرق غير متوقعة وغير متوافقة مع الإصدارات السابقة.
  اضبط `allow_experimental_nlp_functions = 1` لتمكينها.
</Warning>

**البنية**

```sql theme={null}
detectLanguageMixed(s)
```

**المعاملات**

* `s` — النص المراد تحليله [`String`](/ar/reference/data-types/string)

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

يعيد خريطةً بمفاتيح تمثل رموز ISO مكوّنة من حرفين، وبقيمٍ مقابلة تمثل النسبة المئوية للنص المكتشف لكل لغة [`Map(String, Float32)`](/ar/reference/data-types/map)

**أمثلة**

**لغات مختلطة**

```sql title=Query theme={null}
SELECT detectLanguageMixed('二兎を追う者は一兎をも得ず二兎を追う者は一兎をも得ず A vaincre sans peril, on triomphe sans gloire.')
```

```response title=Response theme={null}
{'ja':0.62,'fr':0.36}
```

<div id="detectLanguageUnknown">
  ## detectLanguageUnknown
</div>

قُدِّمت في: v22.2.0

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

<Warning>
  هذه الدالة تجريبية وقد تتغير في الإصدارات المستقبلية بطرق غير متوقعة وغير متوافقة مع الإصدارات السابقة.
  عيّن `allow_experimental_nlp_functions = 1` لتمكينها.
</Warning>

**البنية**

```sql theme={null}
detectLanguageUnknown('s')
```

**الوسائط**

* `s` — النص المطلوب تحليله. [`String`](/ar/reference/data-types/string)

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

يعيد رمز ISO المكوّن من حرفين للغة المكتشفة. النتائج الأخرى المحتملة: `un` = غير معروف، وتعني تعذّر اكتشاف أي لغة، `other` = اللغة المكتشفة ليس لها رمز مكوّن من حرفين. [`String`](/ar/reference/data-types/string)

**أمثلة**

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

```sql title=Query theme={null}
SELECT detectLanguageUnknown('Ich bleibe für ein paar Tage.')
```

```response title=Response theme={null}
de
```

<div id="detectTonality">
  ## detectTonality
</div>

أُضيف في: v22.2.0

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

<Info>
  **قيد**

  هذه الدالة محدودة في شكلها الحالي، إذ تستخدم القاموس العاطفي المضمَّن ولا تعمل إلا مع اللغة الروسية.
</Info>

<Warning>
  هذه الدالة تجريبية، وقد تتغير بطرق غير متوافقة مع الإصدارات السابقة وبشكل غير متوقع في الإصدارات المستقبلية.
  اضبط `allow_experimental_nlp_functions = 1` لتمكينها.
</Warning>

**الصياغة**

```sql theme={null}
detectTonality(s)
```

**الوسائط**

* `s` — النص المراد تحليله. [`String`](/ar/reference/data-types/string)

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

يعيد متوسط قيمة المشاعر للكلمات في النص [`Float32`](/ar/reference/data-types/float)

**أمثلة**

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

```sql title=Query theme={null}
SELECT
    detectTonality('Шарик - хороший пёс'),
    detectTonality('Шарик - пёс'),
    detectTonality('Шарик - плохой пёс')
```

```response title=Response theme={null}
0.44445, 0, -0.3
```

<div id="lemmatize">
  ## lemmatize
</div>

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

تُجري إرجاع الكلمة المعطاة إلى أصلها المعجمي.
تتطلب هذه الدالة قواميس للعمل، ويمكن الحصول عليها من [github](https://github.com/vpodpecan/lemmagen3/tree/master/src/lemmagen3/models).
لمزيد من التفاصيل حول تحميل قاموس من ملف محلي، راجع صفحة ["تعريف القواميس"](/ar/reference/statements/create/dictionary/sources/local-file).

<Warning>
  هذه الدالة تجريبية وقد تتغير بطرق غير متوقعة وغير متوافقة مع الإصدارات السابقة في الإصدارات المستقبلية.
  اضبط `allow_experimental_nlp_functions = 1` لتمكينها.
</Warning>

**الصيغة**

```sql theme={null}
lemmatize(lang, word)
```

**المعاملات**

* `lang` — اللغة التي ستُطبَّق قواعدها. [`String`](/ar/reference/data-types/string)
* `word` — كلمة مكتوبة بأحرف صغيرة يلزم إرجاعها إلى أصلها الصرفي. [`String`](/ar/reference/data-types/string)

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

يعيد الصيغة المُرجَعة إلى أصلها الصرفي للكلمة. [`String`](/ar/reference/data-types/string)

**أمثلة**

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

```sql title=Query theme={null}
SELECT lemmatize('en', 'wolves')
```

```response title=Response theme={null}
wolf
```

<div id="stem">
  ## stem
</div>

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

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

**البنية**

```sql theme={null}
stem(word, language)
```

**الوسيطات**

* `word` — كلمة واحدة مكتوبة بأحرف صغيرة (أو مصفوفة من الكلمات) لتجذيرها. يجب أن تكون بأحرف صغيرة — إذ تؤدي الأحرف الكبيرة إلى نتائج غير محددة. يقبل String و FixedString و Array(String) و Array(FixedString) و Array(Nullable(String)) أو Array(Nullable(FixedString)). [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring) أو [`Array(String)`](/ar/reference/data-types/array) أو [`Array(FixedString)`](/ar/reference/data-types/array)
* `language` — اللغة التي ستُطبَّق قواعد التجذير الخاصة بها. استخدم الرمز المكوَّن من حرفين وفق المعيار ISO 639-1 (مثل 'en' و 'de' و 'fr')، راجع [https://en.wikipedia.org/wiki/List\&#95;of\&#95;ISO\&#95;639\&#95;language\&#95;codes](https://en.wikipedia.org/wiki/List\&#95;of\&#95;ISO\&#95;639\&#95;language\&#95;codes). [`String`](/ar/reference/data-types/string)

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

الصيغة المُجذَّرة للكلمة (String)، أو مصفوفة من الكلمات المُجذَّرة (Array(String)). [`String`](/ar/reference/data-types/string) أو [`Array(String)`](/ar/reference/data-types/array)

**أمثلة**

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

```sql title=Query theme={null}
SELECT stem('blessing', 'en') AS res
```

```response title=Response theme={null}
bless
```

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

```sql title=Query theme={null}
SELECT stem(['blessing', 'disguise'], 'en') AS res
```

```response title=Response theme={null}
['bless','disguis']
```

**تجذير قيمة FixedString**

```sql title=Query theme={null}
SELECT stem(toFixedString('blessing', 10), 'en') AS res
```

```response title=Response theme={null}
bless
```

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

```sql title=Query theme={null}
SELECT stem(toNullable('blessing'), 'en') AS res
```

```response title=Response theme={null}
bless
```

<div id="synonyms">
  ## synonyms
</div>

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

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

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

* `plain`
* `wordnet`

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

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

<Warning>
  هذه الدالة تجريبية وقد تتغير بطرق غير متوقعة وغير متوافقة مع الإصدارات السابقة في الإصدارات المستقبلية.
  اضبط `allow_experimental_nlp_functions = 1` لتمكينها.
</Warning>

**البنية**

```sql theme={null}
synonyms(ext_name, word)
```

**الوسيطات**

* `ext_name` — اسم الامتداد الذي سيُجرى البحث فيه. [`String`](/ar/reference/data-types/string)
* `word` — الكلمة المطلوب البحث عنها في الامتداد. [`String`](/ar/reference/data-types/string)

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

تُرجع مصفوفة من المرادفات للكلمة المحددة. [`Array(String)`](/ar/reference/data-types/array)

**أمثلة**

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

```sql title=Query theme={null}
SELECT synonyms('list', 'important')
```

```response title=Response theme={null}
['important','big','critical','crucial']
```
