Main Content

removeWords

文書または bag-of-words モデルからの選択単語の削除

説明

newDocuments = removeWords(documents,words) は、指定された単語を documents から削除します。既定では、関数は大文字と小文字を区別します。

newBag = removeWords(bag,words) は、bag-of-words モデル bag から指定された単語を削除します。既定では、関数は大文字と小文字を区別します。

newDocuments = removeWords(___,'IgnoreCase',true) は、前の構文のいずれかを使用して、大文字と小文字の区別なしで単語を削除します。

newDocuments = removeWords(documents,idx) は、documents.Vocabulary 内の単語の数値または logical のインデックス idx を指定して、単語を削除します。この構文は newDocuments = removeWords(documents,documents.Vocabulary(idx)) と同じです。

newBag = removeWords(bag,idx) は、bag.Vocabulary 内の単語の数値または logical のインデックス idx を指定して、単語を削除します。この構文は newBag = removeWords(bag,bag.Vocabulary(idx)) と同じです。

すべて折りたたむ

removeWords に単語の string 配列を入力して、文書の配列から単語を削除します。

トークン化された文書の配列を作成します。

documents = tokenizedDocument([
    "an example of a short sentence" 
    "a second short sentence"]);

単語 "short" と "second" を削除します。

words = ["short" "second"];
newDocuments = removeWords(documents,words)
newDocuments = 
  2x1 tokenizedDocument:

    5 tokens: an example of a sentence
    2 tokens: a sentence

文書の言語の詳細を使用してストップ ワードの既定のリストを削除するには、removeStopWordsを使用します。

ストップ ワードのカスタム リストを削除するには、関数 removeWords を使用します。関数 stopWords によって返されるストップ ワード リストを開始点として使用できます。

サンプル データを読み込みます。ファイル sonnetsPreprocessed.txt には、シェイクスピアのソネット集の前処理されたバージョンが格納されています。ファイルには、1 行に 1 つのソネットが含まれ、単語がスペースで区切られています。sonnetsPreprocessed.txt からテキストを抽出し、テキストを改行文字で文書に分割した後、文書をトークン化します。

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

最初のいくつかの文書を表示します。

documents(1:5)
ans = 
  5x1 tokenizedDocument:

    70 tokens: fairest creatures desire increase thereby beautys rose might never die riper time decease tender heir might bear memory thou contracted thine own bright eyes feedst thy lights flame selfsubstantial fuel making famine abundance lies thy self thy foe thy sweet self cruel thou art worlds fresh ornament herald gaudy spring thine own bud buriest thy content tender churl makst waste niggarding pity world else glutton eat worlds due grave thee
    71 tokens: forty winters shall besiege thy brow dig deep trenches thy beautys field thy youths proud livery gazed tatterd weed small worth held asked thy beauty lies treasure thy lusty days say thine own deep sunken eyes alleating shame thriftless praise praise deservd thy beautys thou couldst answer fair child mine shall sum count make old excuse proving beauty succession thine new made thou art old thy blood warm thou feelst cold
    65 tokens: look thy glass tell face thou viewest time face form another whose fresh repair thou renewest thou dost beguile world unbless mother fair whose uneard womb disdains tillage thy husbandry fond tomb selflove stop posterity thou art thy mothers glass thee calls back lovely april prime thou windows thine age shalt despite wrinkles thy golden time thou live rememberd die single thine image dies thee
    71 tokens: unthrifty loveliness why dost thou spend upon thy self thy beautys legacy natures bequest gives nothing doth lend frank lends free beauteous niggard why dost thou abuse bounteous largess thee give profitless usurer why dost thou great sum sums yet canst live traffic thy self alone thou thy self thy sweet self dost deceive nature calls thee gone acceptable audit canst thou leave thy unused beauty tombed thee lives th executor
    61 tokens: hours gentle work frame lovely gaze every eye doth dwell play tyrants same unfair fairly doth excel neverresting time leads summer hideous winter confounds sap checked frost lusty leaves quite gone beauty oersnowed bareness every summers distillation left liquid prisoner pent walls glass beautys effect beauty bereft nor nor remembrance flowers distilld though winter meet leese show substance still lives sweet

関数 stopWords の出力で始まるストップ ワードのリストを作成します。

customStopWords = [stopWords "thy" "thee" "thou" "dost" "doth"];

文書からカスタム ストップ ワードを削除し、最初のいくつかの文書を表示します。

documents = removeWords(documents,customStopWords);
documents(1:5)
ans = 
  5x1 tokenizedDocument:

    62 tokens: fairest creatures desire increase thereby beautys rose might never die riper time decease tender heir might bear memory contracted thine own bright eyes feedst lights flame selfsubstantial fuel making famine abundance lies self foe sweet self cruel art worlds fresh ornament herald gaudy spring thine own bud buriest content tender churl makst waste niggarding pity world else glutton eat worlds due grave
    61 tokens: forty winters shall besiege brow dig deep trenches beautys field youths proud livery gazed tatterd weed small worth held asked beauty lies treasure lusty days say thine own deep sunken eyes alleating shame thriftless praise praise deservd beautys couldst answer fair child mine shall sum count make old excuse proving beauty succession thine new made art old blood warm feelst cold
    52 tokens: look glass tell face viewest time face form another whose fresh repair renewest beguile world unbless mother fair whose uneard womb disdains tillage husbandry fond tomb selflove stop posterity art mothers glass calls back lovely april prime windows thine age shalt despite wrinkles golden time live rememberd die single thine image dies
    52 tokens: unthrifty loveliness why spend upon self beautys legacy natures bequest gives nothing lend frank lends free beauteous niggard why abuse bounteous largess give profitless usurer why great sum sums yet canst live traffic self alone self sweet self deceive nature calls gone acceptable audit canst leave unused beauty tombed lives th executor
    59 tokens: hours gentle work frame lovely gaze every eye dwell play tyrants same unfair fairly excel neverresting time leads summer hideous winter confounds sap checked frost lusty leaves quite gone beauty oersnowed bareness every summers distillation left liquid prisoner pent walls glass beautys effect beauty bereft nor nor remembrance flowers distilld though winter meet leese show substance still lives sweet

removeWords に数値インデックスのベクトルを入力して、文書から単語を削除します。

トークン化された文書の配列を作成します。

documents = tokenizedDocument([
    "I love MATLAB"
    "I love MathWorks"])
documents = 
  2x1 tokenizedDocument:

    3 tokens: I love MATLAB
    3 tokens: I love MathWorks

documents のボキャブラリを表示します。

documents.Vocabulary
ans = 1x4 string
    "I"    "love"    "MATLAB"    "MathWorks"

数値インデックス [1 3] を指定して、ボキャブラリの最初と 3 番目の単語を文書から削除します。

idx = [1 3];
newDocuments = removeWords(documents,idx)
newDocuments = 
  2x1 tokenizedDocument:

    1 tokens: love
    2 tokens: love MathWorks

あるいは、logical インデックスを指定できます。

idx = logical([1 0 1 0]);
newDocuments = removeWords(documents,idx)
newDocuments = 
  2x1 tokenizedDocument:

    1 tokens: love
    2 tokens: love MathWorks

removeWords にストップ ワードのリストを入力して、bag-of-words モデルからストップ ワードを削除します。ストップ ワードは、"a"、"the"、"in" などの単語で、解析前にテキストから削除されるのが一般的です。

documents = tokenizedDocument([
    "an example of a short sentence" 
    "a second short sentence"]);
bag = bagOfWords(documents);
newBag = removeWords(bag,stopWords)
newBag = 
  bagOfWords with properties:

          Counts: [2x4 double]
      Vocabulary: ["example"    "short"    "sentence"    "second"]
        NumWords: 4
    NumDocuments: 2

removeWords に数値インデックスのベクトルを入力して、bag-of-words モデルから単語を削除します。

トークン化された文書の配列を作成します。

documents = tokenizedDocument([
    "I love MATLAB"
    "I love MathWorks"]);
bag = bagOfWords(documents)
bag = 
  bagOfWords with properties:

          Counts: [2x4 double]
      Vocabulary: ["I"    "love"    "MATLAB"    "MathWorks"]
        NumWords: 4
    NumDocuments: 2

bag のボキャブラリを表示します。

bag.Vocabulary
ans = 1x4 string
    "I"    "love"    "MATLAB"    "MathWorks"

数値インデックス [1 3] を指定して、bag-of-words モデルからボキャブラリの最初と 3 番目の単語を削除します。

idx = [1 3];
newBag = removeWords(bag,idx)
newBag = 
  bagOfWords with properties:

          Counts: [2x2 double]
      Vocabulary: ["love"    "MathWorks"]
        NumWords: 2
    NumDocuments: 2

あるいは、logical インデックスを指定できます。

idx = logical([1 0 1 0]);
newBag = removeWords(bag,idx)
newBag = 
  bagOfWords with properties:

          Counts: [2x2 double]
      Vocabulary: ["love"    "MathWorks"]
        NumWords: 2
    NumDocuments: 2

入力引数

すべて折りたたむ

入力文書。tokenizedDocument 配列として指定します。

入力の bag-of-words モデル。bagOfWords オブジェクトとして指定します。

削除する単語。string ベクトル、文字ベクトル、または文字ベクトルの cell 配列として指定します。words を文字ベクトルとして指定した場合、関数はそれを 1 つの単語として扱います。

データ型: string | char | cell

削除する単語のインデックス。数値インデックスのベクトルまたは logical インデックスのベクトルとして指定します。idx のインデックスは、入力文書または bag-of-words モデルの Vocabulary プロパティ内の単語の位置に対応します。

例: [1 5 10]

出力引数

すべて折りたたむ

出力文書。tokenizedDocument 配列として返されます。

出力の bag-of-words モデル。bagOfWords オブジェクトとして返されます。

バージョン履歴

R2017b で導入