> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-3a82795f.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>
            Not supported in 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>
            Experimental feature. <u><a href="/docs/beta-and-experimental-features#experimental-features">Learn more.</a></u>
        </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`](/ko/reference/data-types/string)

**반환 값**

감지된 문자 집합의 코드를 담은 문자열을 반환합니다. [`String`](/ko/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 library](https://github.com/CLD2Owners/cld2)를 사용하며, 2자리 ISO 언어 코드를 반환합니다.

입력이 길수록 언어 감지 정확도가 높아집니다.

<Warning>
  이 함수는 Experimental 기능이며, 향후 release에서 예측할 수 없고 하위 호환되지 않는 방식으로 변경될 수 있습니다.
  사용하려면 `allow_experimental_nlp_functions = 1`로 설정하십시오.
</Warning>

**구문**

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

**인수**

* `text_to_be_analyzed` — 분석할 텍스트입니다. [`String`](/ko/reference/data-types/string)

**반환 값**

감지된 언어의 2자리 ISO 코드를 반환합니다. 그 밖에 가능한 결과는 다음과 같습니다. `un` = 알 수 없음(언어를 감지할 수 없음), `other` = 감지된 언어에 2자리 코드가 없음. [`String`](/ko/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`는 텍스트에서 각 언어가 차지하는 비율에 매핑된 2자리 언어 코드의 `Map`을 반환합니다.

<Warning>
  이 함수는 실험적 기능이며, 향후 릴리스에서 예측할 수 없고 하위 호환되지 않는 방식으로 변경될 수 있습니다.
  사용하려면 `allow_experimental_nlp_functions = 1`로 설정하세요.
</Warning>

**구문**

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

**인수**

* `s` — 분석할 텍스트 [`String`](/ko/reference/data-types/string)

**반환 값**

키는 2자리 ISO 코드이고 값은 해당 언어로 감지된 텍스트의 비율인 맵을 반환합니다 [`Map(String, Float32)`](/ko/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 함수는 UTF-8로 인코딩되지 않은 문자열에서도 작동합니다.
문자 집합이 UTF-16 또는 UTF-32인 경우에는 이 버전을 사용하는 것이 좋습니다.

<Warning>
  이 함수는 실험적 기능이며, 향후 릴리스에서 예측할 수 없고 하위 호환되지 않는 방식으로 변경될 수 있습니다.
  사용하려면 `allow_experimental_nlp_functions = 1`로 설정하십시오.
</Warning>

**구문**

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

**인수**

* `s` — 분석할 텍스트입니다. [`String`](/ko/reference/data-types/string)

**반환 값**

감지된 언어의 2자리 ISO 코드를 반환합니다. 그 밖에 가능한 결과는 다음과 같습니다. `un` = 알 수 없음(언어를 감지할 수 없음), `other` = 감지된 언어에 2자리 코드가 없음. [`String`](/ko/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`](/ko/reference/data-types/string)

**반환 값**

텍스트 내 단어들의 평균 감성 값을 반환합니다. [`Float32`](/ko/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

주어진 단어의 표제어 추출(lemmatization)을 수행합니다.
이 함수가 동작하려면 딕셔너리가 필요하며, [github](https://github.com/vpodpecan/lemmagen3/tree/master/src/lemmagen3/models)에서 가져올 수 있습니다.
로컬 파일에서 딕셔너리를 로드하는 방법에 대한 자세한 내용은 ["딕셔너리 정의하기"](/ko/reference/statements/create/dictionary/sources/local-file) 페이지를 참조하십시오.

<Warning>
  이 함수는 실험적 기능이며, 향후 릴리스에서 예측할 수 없고 하위 호환되지 않는 방식으로 변경될 수 있습니다.
  이를 활성화하려면 `allow_experimental_nlp_functions = 1`을 설정하십시오.
</Warning>

**구문**

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

**인수**

* `lang` — 규칙을 적용할 언어입니다. [`String`](/ko/reference/data-types/string)
* `word` — 표제어 추출이 필요한 소문자 단어입니다. [`String`](/ko/reference/data-types/string)

**반환 값**

단어의 표제어 형태를 [`String`](/ko/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

Snowball 알고리즘을 사용해 단어 또는 단어 배열의 어간을 추출합니다.
각 입력 문자열은 공백이 없는 단일 소문자 단어여야 하며, 공백 문자가 포함된 문자열은 예외를 발생시킵니다.
대문자가 포함되면 결과는 정의되지 않습니다.
스칼라 입력(고정 길이 문자열인 FixedString 포함)에는 String을 반환하고, 배열 입력에는 Array(String)을 반환합니다.
String 및 FixedString의 널 허용 및 LowCardinality 변형을 지원합니다.

**구문**

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

**인수**

* `word` — 어간 추출할 소문자 단어 하나(또는 단어 배열)입니다. 반드시 소문자여야 하며, 대문자가 포함되면 결과가 정의되지 않습니다. String, FixedString, Array(String), Array(FixedString), Array(Nullable(String)), 또는 Array(Nullable(FixedString))를 허용합니다. [`String`](/ko/reference/data-types/string) or [`FixedString`](/ko/reference/data-types/fixedstring) or [`Array(String)`](/ko/reference/data-types/array) or [`Array(FixedString)`](/ko/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`](/ko/reference/data-types/string)

**반환 값**

단어의 어간 추출 결과(String) 또는 어간이 추출된 단어 배열(Array(String))입니다. [`String`](/ko/reference/data-types/string) or [`Array(String)`](/ko/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
```

**널 허용 단어에 대한 어간 추출**

```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 sense index가 포함되어 있어야 합니다.

<Warning>
  이 함수는 실험적 기능이며, 향후 릴리스에서 예측할 수 없고 하위 호환되지 않는 방식으로 변경될 수 있습니다.
  사용하려면 `allow_experimental_nlp_functions = 1`로 설정하십시오.
</Warning>

**구문**

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

**인수**

* `ext_name` — 검색할 확장 기능의 이름입니다. [`String`](/ko/reference/data-types/string)
* `word` — 확장 기능에서 검색할 단어입니다. [`String`](/ko/reference/data-types/string)

**반환 값**

지정된 단어에 대한 동의어 배열을 반환합니다. [`Array(String)`](/ko/reference/data-types/array)

**예시**

**동의어 찾기**

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

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