ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

wordcloud

テキスト データからワード クラウド チャートを作成

構文

wc = wordcloud(tbl,wordVar,sizeVar)
wc = wordcloud(words,sizeData)
wc = wordcloud(C)
wc = wordcloud(parent,___)
wc = wordcloud(___,Name,Value)

説明

wc = wordcloud(tbl,wordVar,sizeVar) は、テーブル tbl からワード クラウド チャートを作成します。table の変数である wordVarsizeVar で単語とワード サイズをそれぞれ指定します。

wc = wordcloud(words,sizeData) は、SizeData で指定されたワード サイズを使用して、words の要素からワード クラウド チャートを作成します。

wc = wordcloud(C) は、頻度数に対応するサイズを使用して、categorical 配列 C の一意の要素からワード クラウド チャートを作成します。Text Analytics Toolbox™ がある場合は、C に string 配列、文字ベクトル、文字ベクトルの cell 配列を指定できます。

wc = wordcloud(parent,___) は、parent で指定された Figure、パネルまたはタブにワード クラウドを作成します。

wc = wordcloud(___,Name,Value) は、名前と値のペアの引数を 1 つ以上使用して、追加の WordCloudChart プロパティを指定します。

メモ

Text Analytics Toolbox は、MATLAB® 関数 wordcloud の機能を拡張します。これにより、string 配列からのワード クラウドの直接作成、および bag of words モデル、bag of n gram モデル、LDA トピックからのワード クラウドの作成のサポートが追加されます。 wordcloud (Text Analytics Toolbox) リファレンス ページについては、wordcloud を参照してください。

すべて折りたたむ

サンプル データ sonnetsTable を読み込みます。table tbl には、変数 Word に単語のリストが格納され、対応する頻度数が変数 Count に格納されています。

load sonnetsTable
head(tbl)
ans=8x2 table
      Word       Count
    _________    _____

    '''tis'        1  
    ''Amen''       1  
    ''Fair'        2  
    ''Gainst'      1  
    ''Since'       1  
    ''This'        2  
    ''Thou'        1  
    ''Thus'        1  

table データを wordcloud を使用してプロットします。単語と対応するワード サイズを変数 Word と変数 Count にそれぞれ指定します。

figure
wordcloud(tbl,'Word','Count');
title("Sonnets Word Cloud")

Text Analytics Toolbox™ がインストールされている場合は、string 配列から直接ワード クラウドを作成できます。詳細については、wordcloud(Text Analytics Toolbox) を参照してください。Text Analytics Toolbox がない場合は、テキスト データの前処理を手動で行わなければなりません。

この例では、プレーン テキストから string 配列に読み取り、前処理して、それを関数 wordcloud に渡して、ワード クラウドを作成する方法を示します。

関数 fileread を使用して、シェークスピアのソネットからテキストを読み取り、string に変換します。

sonnets = string(fileread('sonnets.txt'));
extractBefore(sonnets,"II")
ans = 
    "THE SONNETS
     
     by William Shakespeare
     
     
     
     
       I
     
       From fairest creatures we desire increase,
       That thereby beauty's rose might never die,
       But as the riper should by time decease,
       His tender heir might bear his memory:
       But thou, contracted to thine own bright eyes,
       Feed'st thy light's flame with self-substantial fuel,
       Making a famine where abundance lies,
       Thy self thy foe, to thy sweet self too cruel:
       Thou that art now the world's fresh ornament,
       And only herald to the gaudy spring,
       Within thine own bud buriest thy content,
       And tender churl mak'st waste in niggarding:
         Pity the world, or else this glutton be,
         To eat the world's due, by the grave and thee.
     
       "

sonnets を、個々の単語を要素として含む string 配列に分割します。これを行うには、句読点を削除し、すべての string 要素を 1 行 1 列の string に結合してから、空白文字の位置で分割します。その後、5 文字未満の単語を削除し、単語を小文字に変換します。

punctuationCharacters = ["." "?" "!" "," ";" ":"];
sonnets = replace(sonnets,punctuationCharacters," ");
words = split(join(sonnets));
words(strlength(words)<5) = [];
words = lower(words);
words(1:10)
ans = 10x1 string array
    "sonnets"
    "william"
    "shakespeare"
    "fairest"
    "creatures"
    "desire"
    "increase"
    "thereby"
    "beauty's"
    "might"

sonnets を categorical 配列に変換して、wordcloud を使用してプロットします。この関数は C の一意の要素を、その頻度数に対応するサイズでプロットします。

C = categorical(words);
figure
wordcloud(C);
title("Sonnets Word Cloud")

プレーン テキストから string 配列に読み取り、前処理して、それを関数 wordcloud に渡して、ワード クラウドを作成します。

関数 fileread を使用して、シェークスピアのソネットからテキストを読み取り、string に変換します。

sonnets = string(fileread('sonnets.txt'));
extractBefore(sonnets,"II")
ans = 
    "THE SONNETS
     
     by William Shakespeare
     
     
     
     
       I
     
       From fairest creatures we desire increase,
       That thereby beauty's rose might never die,
       But as the riper should by time decease,
       His tender heir might bear his memory:
       But thou, contracted to thine own bright eyes,
       Feed'st thy light's flame with self-substantial fuel,
       Making a famine where abundance lies,
       Thy self thy foe, to thy sweet self too cruel:
       Thou that art now the world's fresh ornament,
       And only herald to the gaudy spring,
       Within thine own bud buriest thy content,
       And tender churl mak'st waste in niggarding:
         Pity the world, or else this glutton be,
         To eat the world's due, by the grave and thee.
     
       "

sonnets を、個々の単語を要素として含む string 配列に分割します。これを行うには、句読点を削除し、すべての string 要素を 1 行 1 列の string に結合してから、空白文字の位置で分割します。その後、5 文字未満の単語を削除し、単語を小文字に変換します。

punctuationCharacters = ["." "?" "!" "," ";" ":"];
sonnets = replace(sonnets,punctuationCharacters," ");
words = split(join(sonnets));
words(strlength(words)<5) = [];
words = lower(words);
words(1:10)
ans = 10x1 string array
    "sonnets"
    "william"
    "shakespeare"
    "fairest"
    "creatures"
    "desire"
    "increase"
    "thereby"
    "beauty's"
    "might"

sonnets の一意の単語を検索し、出現頻度をカウントします。頻度数をサイズ データとして使用して、ワード クラウドを作成します。

[numOccurrences,uniqueWords] = histcounts(categorical(words));
figure
wordcloud(uniqueWords,numOccurrences);
title("Sonnets Word Cloud")

サンプル データ sonnetsTable を読み込みます。table tbl には、変数 Word に単語のリストが格納され、対応する頻度数が変数 Count に格納されています。

load sonnetsTable
head(tbl)
ans=8×2 table
      Word       Count
    _________    _____

    '''tis'        1  
    ''Amen''       1  
    ''Fair'        2  
    ''Gainst'      1  
    ''Since'       1  
    ''This'        2  
    ''Thou'        1  
    ''Thus'        1  

table データを wordcloud を使用してプロットします。単語と対応するワード サイズを変数 Word と変数 Count にそれぞれ指定します。単語の色を乱数値に設定するには、'Color' を単語ごとに 1 つの行をもつ乱数行列または RGB 3 成分に設定します。

numWords = size(tbl,1);
colors = rand(numWords,3);
figure
wordcloud(tbl,'Word','Count','Color',colors);
title("Sonnets Word Cloud")

Text Analytics Toolbox がインストールされている場合は、string 配列から直接ワード クラウドを作成できます。Text Analytics Toolbox がない場合は、テキスト データの前処理を手動で行わなければなりません。Text Analytics Toolbox なしでワード クラウドを作成する方法の例については、ワード クラウドのテキスト データの準備を参照してください。

extractFileText を使用して sonnets.txt からテキストを抽出します。

str = extractFileText("sonnets.txt");
extractBefore(str,"II")
ans = 

    "THE SONNETS
     
     by William Shakespeare
     
     
     
     
       I
     
       From fairest creatures we desire increase,
       That thereby beauty's rose might never die,
       But as the riper should by time decease,
       His tender heir might bear his memory:
       But thou, contracted to thine own bright eyes,
       Feed'st thy light's flame with self-substantial fuel,
       Making a famine where abundance lies,
       Thy self thy foe, to thy sweet self too cruel:
       Thou that art now the world's fresh ornament,
       And only herald to the gaudy spring,
       Within thine own bud buriest thy content,
       And tender churl mak'st waste in niggarding:
         Pity the world, or else this glutton be,
         To eat the world's due, by the grave and thee.
     
       "

ソネットの単語をワード クラウドで表示します。

figure
wordcloud(str);

入力引数

すべて折りたたむ

単語とワード サイズを指定する列を含む入力 table。入力引数の wordVarsizeVar で指定される変数で単語と対応するワード サイズをそれぞれ指定します。

データ型: table

単語データの table 変数。string スカラー、文字ベクトル、数値インデックス、または logical ベクトルとして指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

サイズ データの table 変数。string スカラー、文字ベクトル、数値インデックス、または logical ベクトルとして指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

入力 categorical データ。categorical 配列として指定します。この関数は、C の一意の各要素を、histcounts(C) に対応するサイズでプロットします。

データ型: categorical

入力語。string ベクトル、または文字ベクトルの cell 配列として指定します。

データ型: string | cell

ワード サイズ データ。数値ベクトルとして指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

親。Figure、パネルまたはタブとして指定します。

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前/値のペア引数を、任意の順番で指定できます。

例: 'HighlightColor','red' は強調表示の色を赤に設定します。

ここでは、WordCloudChart プロパティの一部だけを紹介しています。完全な一覧については、WordCloudChart のプロパティを参照してください。

表示する単語の最大数。非負の整数として指定します。最大 MaxDisplayWords の数の単語が表示されます。

単語の色。RGB 3 成分、色名を含む文字ベクトル、または N 行 3 列の行列 (NWordData の長さ) として指定します。Color が行列の場合、各行は WordData の対応する単語の RGB 3 成分に対応します。

RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、色の完全名および省略名のオプションと、等価の RGB 3 成分の値を示します。

オプション説明等価の RGB 3 成分
'red' または 'r'[1 0 0]
'green' または 'g'[0 1 0]
'blue' または 'b'[0 0 1]
'yellow' または 'y'[1 1 0]
'magenta' または 'm'マゼンタ[1 0 1]
'cyan' または 'c'シアン[0 1 1]
'white' または 'w'[1 1 1]
'black' または 'k'[0 0 0]

例: 'blue'

例: [0 0 1]

単語の強調表示の色。RGB 3 成分、または色名を含む文字ベクトルとして指定します。サイズが最も大きい単語がこの色で強調表示されます。

RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、色の完全名および省略名のオプションと、等価の RGB 3 成分の値を示します。

オプション説明等価の RGB 3 成分
'red' または 'r'[1 0 0]
'green' または 'g'[0 1 0]
'blue' または 'b'[0 0 1]
'yellow' または 'y'[1 1 0]
'magenta' または 'm'マゼンタ[1 0 1]
'cyan' または 'c'シアン[0 1 1]
'white' または 'w'[1 1 1]
'black' または 'k'[0 0 0]

例: 'blue'

例: [0 0 1]

ワード クラウド チャートの形状。'oval' または 'rectangle' として指定します。

例: 'rectangle'

単語配置レイアウト。非負の整数として指定します。同じ入力を使用して wordcloud を繰り返し呼び出すと、単語配置レイアウトは毎回同じになります。別の単語配置レイアウトを取得するには、異なる LayoutNum 値を使用します。

出力引数

すべて折りたたむ

WordCloudChart オブジェクト。WordCloudChart の作成後にプロパティを変更することができます。詳細については、WordCloudChart のプロパティ を参照してください。

ヒント

Text Analytics Toolbox は、MATLAB 関数 wordcloud の機能を拡張します。これにより、string 配列からのワード クラウドの直接作成、および bag of words モデル、bag of n gram モデル、LDA トピックからのワード クラウドの作成のサポートが追加されます。 wordcloud (Text Analytics Toolbox) リファレンス ページについては、wordcloud を参照してください。

R2017b で導入