Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

removeNgrams

bag-of-n-grams 모델에서 n-gram 제거

설명

예제

newBag = removeNgrams(bag,ngrams)는 bag-of-n-grams 모델 bag에서 지정된 n-gram을 제거합니다. 이 함수는 기본적으로 대/소문자를 구분합니다.

newBag = removeNgrams(bag,ngrams,'IgnoreCase',true)는 대/소문자를 구분하지 않고 n-gram을 제거합니다.

예제

newBag = removeNgrams(bag,idx)bag.Ngrams의 숫자형 또는 논리형 인덱스를 사용하여 n-gram을 지정합니다. 이 구문은 newBag = removeNgrams(bag,bag.Ngrams(idx,:))와 동일합니다.

예제

모두 축소

예제 데이터를 불러옵니다. 파일 sonnetsPreprocessed.txt에는 셰익스피어 소네트의 전처리된 버전이 들어 있습니다. 파일에는 한 줄에 하나씩 소네트가 들어 있으며 단어가 공백으로 구분되어 있습니다. sonnetsPreprocessed.txt에서 텍스트를 추출하고, 추출한 텍스트를 새 줄 문자에서 문서로 분할한 후 그 문서를 토큰화합니다.

filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);

bag-of-n-grams 모델을 만듭니다.

bag = bagOfNgrams(documents)
bag = 
  bagOfNgrams with properties:

          Counts: [154×8799 double]
      Vocabulary: [1×3092 string]
          Ngrams: [8799×2 string]
    NgramLengths: 2
       NumNgrams: 8799
    NumDocuments: 154

상위 5개의 n-gram을 표시합니다.

topkngrams(bag,5)
ans=5×3 table
         Ngram          Count    NgramLength
    ________________    _____    ___________

    "thou"    "art"      34           2     
    "mine"    "eye"      15           2     
    "thy"     "self"     14           2     
    "thou"    "dost"     13           2     
    "mine"    "own"      13           2     

n-gram ["thou" "art"]["thou" "dost"]를 모델에서 제거합니다. 새로운 상위 5개의 n-gram을 표시합니다.

ngrams = [...
    "thou" "art"
    "thou" "dost"];
bag = removeNgrams(bag,ngrams);
topkngrams(bag,5)
ans=5×3 table
          Ngram          Count    NgramLength
    _________________    _____    ___________

    "mine"    "eye"       15           2     
    "thy"     "self"      14           2     
    "mine"    "own"       13           2     
    "thy"     "sweet"     12           2     
    "thy"     "love"      11           2     

예제 데이터를 불러옵니다. 파일 sonnetsPreprocessed.txt에는 셰익스피어 소네트의 전처리된 버전이 들어 있습니다. 파일에는 한 줄에 하나씩 소네트가 들어 있으며 단어가 공백으로 구분되어 있습니다. sonnetsPreprocessed.txt에서 텍스트를 추출하고, 추출한 텍스트를 새 줄 문자에서 문서로 분할한 후 그 문서를 토큰화합니다.

filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);

bag-of-n-grams 모델을 만듭니다.

bag = bagOfNgrams(documents)
bag = 
  bagOfNgrams with properties:

          Counts: [154x8799 double]
      Vocabulary: [1x3092 string]
          Ngrams: [8799x2 string]
    NgramLengths: 2
       NumNgrams: 8799
    NumDocuments: 154

모델에 있는 처음 10개의 n-gram을 표시합니다.

bag.Ngrams(1:10,:)
ans = 10x2 string
    "fairest"      "creatures"
    "creatures"    "desire"   
    "desire"       "increase" 
    "increase"     "thereby"  
    "thereby"      "beautys"  
    "beautys"      "rose"     
    "rose"         "might"    
    "might"        "never"    
    "never"        "die"      
    "die"          "riper"    

9번째와 10번째 n-gram을 모델에서 제거합니다. 처음 10개의 n-gram의 새로운 목록을 표시합니다.

idx = [9 10];
bag = removeNgrams(bag,idx);
bag.Ngrams(1:10,:)
ans = 10x2 string
    "fairest"      "creatures"
    "creatures"    "desire"   
    "desire"       "increase" 
    "increase"     "thereby"  
    "thereby"      "beautys"  
    "beautys"      "rose"     
    "rose"         "might"    
    "might"        "never"    
    "riper"        "time"     
    "time"         "decease"  

입력 인수

모두 축소

입력 bag-of-n-grams 모델로, bagOfNgrams 객체로 지정됩니다.

제거할 n-gram으로, string형 배열, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다.

ngrams가 string형 배열 또는 셀형 배열인 경우 크기는 NumNgrams×maxN입니다. 여기서 NumNgrams는 n-gram의 개수이고, maxN은 가장 큰 n-gram의 길이입니다. ngrams가 문자형 벡터인 경우 이는 단일 단어(유니그램(unigram))를 나타냅니다.

ngrams(i,j)의 값은 i번째 n-gram 중 j번째 단어입니다. i번째 n-gram의 단어 수가 maxN보다 작은 경우 ngramsi번째 행의 나머지 요소는 비어 있습니다.

예: ["An" ""; "An example"; "example" ""]

데이터형: string | char | cell

제거할 n-gram의 인덱스로, 숫자형 인덱스로 구성된 벡터 또는 논리형 인덱스로 구성된 벡터로 지정됩니다. idx의 인덱스는 bag.Ngrams의 행에 해당합니다.

예: [1 5 10]

R2018a에 개발됨