Main Content

normalizeWords

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

설명

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 = 
  2x1 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 = 1x6 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 = 
  2x1 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 = 
  2x1 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 = 
  4x1 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 = 
  2x1 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형 배열, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 반환됩니다. wordsupdatedWords는 데이터형이 동일합니다.

알고리즘

모두 축소

언어 세부 정보

tokenizedDocument 객체에는 언어 세부 정보를 포함하여 토큰에 대한 세부 정보가 포함됩니다. 입력 문서의 언어 세부 정보에 따라 normalizeWords의 동작이 달라집니다. tokenizedDocument 함수는 기본적으로 입력 텍스트의 언어를 자동으로 검출합니다. 언어 세부 정보를 수동으로 지정하려면 tokenizedDocumentLanguage 옵션을 사용하십시오. 토큰 세부 정보를 보려면 tokenDetails 함수를 사용하십시오.

버전 내역

R2017b에 개발됨

모두 확장