Main Content

addSentenceDetails

문서에 문장 번호 추가

설명

addSentenceDetails를 사용하여 문서에 문장 정보를 추가합니다.

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

예제

updatedDocuments = addSentenceDetails(documents)documents에서 문장 경계를 검출하고 토큰 세부 정보를 업데이트합니다. updatedDocuments에서 문장 세부 정보를 가져오려면 tokenDetails를 사용하십시오.

updatedDocuments = addSentenceDetails(documents,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 옵션을 추가로 지정합니다.

addSentenceDetails 함수는 lower, upper, erasePunctuation, normalizeWords, removeWords, removeStopWords 함수에 의해 제거되는 정보를 사용하기 때문에 이러한 함수를 사용하기 전에 addSentenceDetails 함수를 먼저 사용해야 합니다.

예제

모두 축소

토큰화된 문서 배열을 만듭니다.

str = [ ...
    "This is an example document. It has two sentences."
    "This document has one sentence."
    "Here is another example document. It also has two sentences."];
documents = tokenizedDocument(str);

addSentenceDetails를 사용하여 문장 세부 정보를 문서에 추가합니다. 이 함수는 tokenDetails에서 반환된 테이블에 문장 번호를 추가합니다. 처음 몇 개 토큰에 대해 업데이트된 토큰 세부 정보를 표시합니다.

documents = addSentenceDetails(documents);
tdetails = tokenDetails(documents);
head(tdetails)
      Token       DocumentNumber    SentenceNumber    LineNumber       Type        Language
    __________    ______________    ______________    __________    ___________    ________

    "This"              1                 1               1         letters           en   
    "is"                1                 1               1         letters           en   
    "an"                1                 1               1         letters           en   
    "example"           1                 1               1         letters           en   
    "document"          1                 1               1         letters           en   
    "."                 1                 1               1         punctuation       en   
    "It"                1                 2               1         letters           en   
    "has"               1                 2               1         letters           en   

세 번째 문서의 두 번째 문장에 대한 토큰 세부 정보를 표시합니다.

idx = tdetails.DocumentNumber == 3 & ...
    tdetails.SentenceNumber == 2;
tdetails(idx,:)
ans=6×6 table
       Token       DocumentNumber    SentenceNumber    LineNumber       Type        Language
    ___________    ______________    ______________    __________    ___________    ________

    "It"                 3                 2               1         letters           en   
    "also"               3                 2               1         letters           en   
    "has"                3                 2               1         letters           en   
    "two"                3                 2               1         letters           en   
    "sentences"          3                 2               1         letters           en   
    "."                  3                 2               1         punctuation       en   

입력 인수

모두 축소

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

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 각 이름과 값을 쉼표로 구분하고 Name을 따옴표로 묶으십시오.

예: 'Abbreviations',["cm" "mm" "in"]은 해당 약어 뒤에 마침표가 나오고 이어서 대문자로 된 문장 시작 부분이 나오면 문장 경계를 검출하도록 지정합니다.

약어 목록으로, string형 배열, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열 또는 테이블로 지정됩니다.

Abbreviations가 string형 배열, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열이면 함수는 이를 일반적인 약어로 처리합니다. 이어지는 단어가 대문자로 된 문장 시작 부분인 경우 함수는 후행 마침표에서 문장을 나눕니다. 이 함수는 약어의 대/소문자 구분을 무시합니다. Starters 이름-값 쌍을 사용하여 문장 시작 부분을 지정하십시오.

약어에서 문장을 나눌 때 다른 동작을 지정하려면 Abbreviations를 테이블로 지정합니다. 테이블에는 AbbreviationUsage라는 변수가 있어야 합니다. 여기서 Abbreviation에는 약어가 포함되고 Usage에는 각 약어의 유형이 포함됩니다. 다음 표에는 Usage가 가질 수 있는 값과 그러한 유형의 약어를 전달하는 경우 함수의 동작이 설명되어 있습니다.

사용법동작예제 약어예제 텍스트검출된 문장
regular다음 단어가 대문자로 된 문장 시작 부분인 경우 후행 마침표에서 문장을 나눕니다. 그 외의 경우에는 후행 마침표에서 문장을 나누지 않습니다."appt.""Book an appt. We'll meet then."

"Book an appt."

"We'll meet then."

"Book an appt. today.""Book an appt. today."
inner후행 마침표 다음에서 문장을 나누지 않습니다."Dr.""Dr. Smith.""Dr. Smith."
reference다음 토큰이 숫자가 아니면 후행 마침표에서 문장을 나눕니다. 다음 토큰이 숫자이면 후행 마침표에서 문장을 나누지 않습니다."fig.""See fig. 3.""See fig. 3."
"Try a fig. They are nice."

"Try a fig."

"They are nice."

unit앞 단어가 숫자이고 다음 단어가 대문자로 된 문장 시작 부분이면 후행 마침표에서 문장을 나눕니다."in.""The height is 30 in. The width is 10 in."

"The height is 30 in."

"The width is 10 in."

앞 단어가 숫자이고 다음 단어가 대문자가 아니면 후행 마침표에서 문장을 나누지 않습니다."The item is 10 in. wide.""The item is 10 in. wide."
앞 단어가 숫자가 아니면 후행 마침표에서 문장을 나눕니다."Come in. Sit down."

"Come in."

"Sit down."

디폴트 값은 abbreviations 함수의 출력값입니다. 한국어와 일본어 텍스트의 경우 대개 약어가 문장 검출에 영향을 주지 않습니다.

기본적으로 이 함수는 "V."와 같은 단일 문자 약어나 "U.S.A."와 같이 단일 문자와 마침표가 혼합된 토큰을 일반적인 약어로 처리합니다. Abbreviations에 이러한 약어를 포함할 필요가 없습니다.

예: ["cm" "mm" "in"]

데이터형: char | string | table | cell

문장을 시작하는 단어로, string형 배열, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 일반적인 약어 뒤에 대문자로 된 문장 시작 부분이 나오면 함수는 후행 마침표에서 문장 경계를 검출합니다. 이 함수는 문장 시작 부분의 대/소문자 구분을 무시합니다.

디폴트 값은 stopWords 함수의 출력값입니다.

데이터형: char | string | cell

이전에 계산된 세부 정보를 무시하고 다시 계산하는 옵션으로, true 또는 false로 지정됩니다.

데이터형: logical

출력 인수

모두 축소

업데이트된 문서로, tokenizedDocument 배열로 반환됩니다. updatedDocuments에서 토큰 세부 정보를 가져오려면 tokenDetails를 사용하십시오.

세부 정보

모두 축소

언어 고려 사항

addSentenceDetails 함수는 문장 부호와 줄 번호 정보를 기준으로 문장 경계를 검출합니다. 영어와 독일어 텍스트의 경우 이 함수는 함수로 전달된 약어 목록도 사용합니다.

다른 언어에서는 문장 검출을 위한 자체 약어 목록을 지정해야 할 수 있습니다. 이 작업을 수행하려면 addSentenceDetails'Abbreviations' 옵션을 사용하십시오.

알고리즘

이모티콘이나 이모지 문자가 종결 문장 부호 문자 뒤에 나오면, 이 함수는 이모티콘과 이모지 다음에서 문장을 분할합니다.

버전 내역

R2018a에 개발됨