주요 콘텐츠

normalizeWords

R2026b

단어의 어간 또는 표제어 추출

설명

normalizeWords를 사용하여 단어를 원형(root form)으로 줄입니다. 영어 단어의 표제어를 추출(사전에 등재된 형태로 줄임)하려면 'Style' 옵션을 'lemma'로 설정하십시오.

이 함수는 한국어, 영어, 일본어, 독일어 텍스트를 지원합니다.

updatedDocuments = normalizeWords(documents)는 documents에 있는 단어를 원형으로 줄입니다. 영어와 독일어 텍스트의 경우 이 함수는 기본적으로 영어와 독일어 텍스트에 각각 Porter 어간 추출기를 사용하여 단어의 어간을 추출합니다. 한국어와 일본어 텍스트의 경우 이 함수는 기본적으로 MeCab 토큰 추출기를 사용하여 단어의 표제어를 추출합니다.

예제

updatedWords = normalizeWords(words)는 string형 배열 words에 있는 각 단어를 원형으로 줄입니다.

예제

updatedWords = normalizeWords(words,'Language',language)는 단어를 줄이고 단어 언어도 지정합니다.

___ = normalizeWords(___,'Style',style)은 정규화 스타일도 지정합니다. 예를 들어 normalizeWords(documents,'Style','lemma')는 입력 문서에서 단어의 표제어를 추출합니다.

예제

예제

모두 축소

Porter 어간 추출기를 사용하여 문서 배열 내 단어의 어간을 추출합니다.

documents = tokenizedDocument([
    "a strongly worded collection of words"
    "another collection of words"]);
newDocuments = normalizeWords(documents)
newDocuments = 
  2×1 tokenizedDocument:

    6 tokens: a strongli word collect of word
    4 tokens: anoth collect of word

Porter 어간 추출기를 사용하여 string형 배열 내 단어의 어간을 추출합니다. string형 배열의 각 요소는 단일 단어여야 합니다.

words = ["a" "strongly" "worded" "collection" "of" "words"];
newWords = normalizeWords(words)
newWords = 1×6 string
    "a"    "strongli"    "word"    "collect"    "of"    "word"

문서 배열 내 단어의 표제어를 추출합니다.

documents = tokenizedDocument([
    "I am building a house."
    "The building has two floors."]);
newDocuments = normalizeWords(documents,'Style','lemma')
newDocuments = 
  2×1 tokenizedDocument:

    6 tokens: i be build a house .
    6 tokens: the build have two floor .

표제어 추출을 개선하려면 먼저 addPartOfSpeechDetails 함수를 사용하여 품사 세부 정보를 문서에 추가합니다. 예를 들어 문서에 품사 세부 정보가 포함되어 있는 경우 normalizeWords는 동사 "building"만 줄이고 명사인 "building"은 줄이지 않습니다.

documents = addPartOfSpeechDetails(documents);
newDocuments = normalizeWords(documents,'Style','lemma')
newDocuments = 
  2×1 tokenizedDocument:

    6 tokens: i be build a house .
    6 tokens: the building have two floor .

tokenizedDocument 함수를 사용하여 일본어 텍스트를 토큰화합니다. 이 함수는 일본어 텍스트를 자동으로 검출합니다.

str = [
    "空に星が輝き、瞬いている。"
    "空の星が輝きを増している。"
    "駅までは遠くて、歩けない。"
    "遠くの駅まで歩けない。"];
documents = tokenizedDocument(str);

normalizeWords를 사용하여 토큰의 표제어를 추출합니다.

documents = normalizeWords(documents)
documents = 
  4×1 tokenizedDocument:

    10 tokens: 空 に 星 が 輝く 、 瞬く て いる 。
    10 tokens: 空 の 星 が 輝き を 増す て いる 。
     9 tokens: 駅 まで は 遠い て 、 歩ける ない 。
     7 tokens: 遠く の 駅 まで 歩ける ない 。

tokenizedDocument 함수를 사용하여 독일어 텍스트를 토큰화합니다. 이 함수는 독일어 텍스트를 자동으로 검출합니다.

str = [
    "Guten Morgen. Wie geht es dir?"
    "Heute wird ein guter Tag."];
documents = tokenizedDocument(str);

normalizeWords를 사용하여 토큰의 어간을 추출합니다.

documents = normalizeWords(documents)
documents = 
  2×1 tokenizedDocument:

    8 tokens: gut morg . wie geht es dir ?
    6 tokens: heut wird ein gut tag .

입력 인수

모두 축소

입력 문서로, tokenizedDocument 배열로 지정됩니다.

입력 단어로, string형 벡터, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. words를 문자형 벡터로 지정할 경우 이 함수는 인수를 단일 단어로 처리합니다.

데이터형: string | char | cell

정규화 스타일로, 다음 중 하나로 지정됩니다.

  • 'stem' – Porter 어간 추출기를 사용하여 단어의 어간을 추출합니다. 이 옵션은 영어와 독일어 텍스트만 지원합니다. 영어와 독일어 텍스트의 경우 이 값이 디폴트입니다.

  • 'lemma' – 각 단어에서 사전에 등재된 형태를 추출합니다. 이 옵션은 한국어, 영어, 일본어 텍스트만 지원합니다. 단어가 내부 사전에 포함되어 있지 않은 경우 이 함수는 변경되지 않은 상태의 단어를 출력합니다. 영어 텍스트의 경우 출력값은 소문자입니다. 한국어와 일본어 텍스트의 경우 이 값이 디폴트입니다.

이 함수는 'letters' 및 'other' 유형의 토큰만 정규화합니다. 토큰 유형에 대한 자세한 내용은 tokenDetails 항목을 참조하십시오.

팁

영어 텍스트의 경우 문서 내 단어의 표제어 추출을 개선하려면 먼저 addPartOfSpeechDetails 함수를 사용하여 품사 세부 정보를 추가하십시오.

단어 언어로, 다음 중 하나로 지정됩니다.

  • 'en' – 영어

  • 'de' – 독일어

언어를 지정하지 않으면 언어가 자동으로 검출됩니다. 한국어와 일본어 텍스트에서 표제어를 추출하려면 tokenizedDocument 입력을 사용하십시오.

데이터형: char | string

출력 인수

모두 축소

업데이트된 문서로, tokenizedDocument 배열로 반환됩니다.

업데이트된 단어로, string형 배열, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 반환됩니다. words 및 updatedWords는 데이터형이 동일합니다.

알고리즘

모두 축소

버전 내역

R2017b에 개발됨

모두 확장