본문으로 바로가기
본문으로 바로가기

자연어 처리(NLP) 함수

Experimental feature. Learn more.
Not supported in ClickHouse Cloud
참고

현재 개발 중인 실험적 기능으로, 일반 사용을 위한 준비가 되어 있지 않습니다. 향후 릴리스에서 예측할 수 없는 방식으로 변경될 수 있으며, 하위 호환성이 보장되지 않습니다. 활성화하려면 allow_experimental_nlp_functions = 1로 설정하십시오.

detectCharset

도입 버전: v22.2.0

UTF-8로 인코딩되지 않은 입력 문자열의 문자 집합을 감지합니다.

구문

detectCharset(s)

인수

  • s — 분석할 텍스트. String

반환 값

감지된 문자 인코딩의 코드를 포함하는 문자열을 반환합니다. String

예시

기본 사용법

SELECT detectCharset('Ich bleibe für ein paar Tage.')
WINDOWS-1252

detectLanguage

도입 버전: v22.2.0

UTF-8로 인코딩된 입력 문자열의 언어를 감지합니다. 이 FUNCTION은 감지를 위해 CLD2 라이브러리를 사용하며 2자리 ISO 언어 코드를 반환합니다.

입력 문자열이 길수록 언어 감지 결과가 더 정확해집니다.

구문

detectLanguage(s)

인자

  • text_to_be_analyzed — 분석할 텍스트입니다. String

반환 값

감지된 언어의 2글자 ISO 코드를 반환합니다. 그 외 가능한 결과: un = 알 수 없음, 어떤 언어도 감지할 수 없음, other = 감지된 언어에 해당하는 2글자 코드가 없음. String

예시

혼합 언어 텍스트

SELECT detectLanguage('Je pense que je ne parviendrai jamais à parler français comme un natif. Where there\'s a will, there\'s a way.')
fr

detectLanguageMixed

도입 버전: v22.2.0

detectLanguage 함수와 비슷하지만, detectLanguageMixed는 텍스트에서 각 언어가 차지하는 비율을 값으로 하는 2글자 언어 코드의 Map(맵)을 반환합니다.

구문

detectLanguageMixed(s)

인수

  • s — 분석할 텍스트 String

반환 값

2자리 ISO 코드인 키와 해당 언어로 감지된 텍스트 비율(%)을 값으로 가지는 맵을 반환합니다 Map(String, Float32)

예시

혼합 언어

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

detectLanguageUnknown

도입된 버전: v22.2.0

detectLanguage 함수와 유사하지만, detectLanguageUnknown 함수는 UTF-8 이외의 인코딩이 사용된 문자열에서도 동작합니다. 문자 집합이 UTF-16 또는 UTF-32인 경우 이 버전을 사용하는 것이 좋습니다.

구문

detectLanguageUnknown('s')

인수

  • s — 분석할 텍스트입니다. String

반환 값

감지된 언어의 두 글자짜리 ISO 코드를 반환합니다. 반환 가능한 다른 값: un = 알 수 없음, 어떤 언어도 감지할 수 없음, other = 감지된 언어에 두 글자 코드가 없음. String

예시

기본 사용 예

SELECT detectLanguageUnknown('Ich bleibe für ein paar Tage.')
de

detectProgrammingLanguage

도입 버전: v22.2.0

주어진 소스 코드 조각에서 프로그래밍 언어를 판별합니다.

구문

detectProgrammingLanguage('source_code')

인자

  • source_code — 분석할 소스 코드를 나타내는 문자열입니다. String

반환 값

프로그래밍 언어를 나타내는 String을 반환합니다.

예시

C++ 코드 탐지

SELECT detectProgrammingLanguage('#include <iostream>')
C++

detectTonality

도입 버전: v22.2.0

제공된 텍스트 데이터의 감성을 판별합니다.

Limitation

이 FUNCTION은 현재 내장된 감정 딕셔너리를 사용하므로 러시아어 텍스트에만 적용 가능합니다.

구문

detectTonality(s)

인수

  • s — 분석할 텍스트입니다. String

반환 값

텍스트에 포함된 단어들의 평균 감성 점수를 반환합니다. Float32

예시

러시아어 텍스트 감성 분석

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

lemmatize

도입 버전: v21.9.0

지정된 단어에 대한 표제어 추출(lemmatization)을 수행합니다. 이 함수가 동작하려면 딕셔너리가 필요하며, GitHub에서 가져올 수 있습니다. 로컬 파일에서 딕셔너리를 로드하는 방법에 대한 자세한 내용은 "딕셔너리 정의하기" 페이지를 참조하십시오. 이 함수가 작동하려면 딕셔너리가 필요하며, GitHub에서 얻을 수 있습니다. 로컬 파일에서 딕셔너리를 로드하는 방법에 대한 자세한 내용은 「Defining Dictionaries」 페이지를 참조하십시오.

구문

lemmatize(lang, word)

인수

  • lang — 규칙이 적용될 언어. String
  • word — 표제어 추출이 필요한 소문자 단어. String

반환 값

단어의 표제어 형태를 반환합니다. String

예시

영어 표제어 처리

SELECT lemmatize('en', 'wolves')
wolf

stem

도입된 버전: v21.9.0

지정된 단어에 어간 추출을 수행합니다.

구문

stem(lang, word)

인수(Arguments)

  • lang — 규칙이 적용될 언어입니다. 두 글자의 ISO 639-1 코드를 사용합니다. String
  • word — 어간 추출이 필요한 소문자로 된 단어입니다. String

반환 값(Returned value)

어간이 추출된 단어 형태를 반환합니다. String

예시(Examples)

영어 어간 추출(English stemming)

SELECT arrayMap(x -> stem('en', x),
['I', 'think', 'it', 'is', 'a', 'blessing', 'in', 'disguise']) AS res
['I','think','it','is','a','bless','in','disguis']

synonyms

도입 버전: v21.9.0

지정한 단어의 동의어를 찾습니다.

동의어 확장에는 다음 두 가지 유형이 있습니다:

  • plain
  • wordnet

plain 확장 유형을 사용할 때는 각 줄이 하나의 동의어 집합에 해당하는 단순 텍스트 파일의 경로를 지정해야 합니다. 각 줄의 단어는 공백 또는 탭 문자로 구분되어야 합니다.

wordnet 확장 유형을 사용할 때는 WordNet 시소러스가 들어 있는 디렉터리 경로를 지정해야 합니다. 이 시소러스에는 WordNet sense 인덱스가 포함되어 있어야 합니다.

구문

synonyms(ext_name, word)

인자

  • ext_name — 검색을 수행할 확장 기능의 이름입니다. String
  • word — 확장 기능에서 검색할 단어입니다. String

반환 값

지정된 단어에 대한 동의어 배열을 반환합니다. Array(String)

예시

동의어 찾기

SELECT synonyms('list', 'important')
['important','big','critical','crucial']