MATLAB ユーザーコミュニティー

MATLAB & Simulink ユーザーコミュニティー向け日本語ブログ

MATLAB R2022b の新機能:辞書型(dictionary)を触ってみよう

※この投稿は 2022 年 9 月 15 日に The MATLAB blog (Mike Croucher) に投稿されたものの抄訳です。
最近リリースされた MATLAB R2022b の注目の新機能といえば Dictionaries ですね。
この新しいデータ型の何が嬉しいのか、詳細に見ていきます。

辞書(ディクショナリ)はキーと値のペアの集まり

ディクショナリー(プログラミング言語によっては連想配列や連想リスト、辞書とも呼ばれます)は、キーと値のペアの集まりで、それぞれのキーが値に対応します。 例えば、Mike、Dave、Bob という 3 人の体重を記録するために、gym という辞書を使用するとします。MATLAB でこれを作成するにはどうしたらよいでしょうか?
names = [“Mike”,“Dave”,“Bob”];
weights = [89,75,68]; % 体重 (kg)
gym = dictionary(names,weights)
gym =

3 個のエントリをもつ dictionary (stringdouble):

“Mike” ⟼ 89
“Dave” ⟼ 75
“Bob” ⟼ 68

この辞書オブジェクトがあれば、関連するキー(この場合は人名)を指定することで、任意のエントリーの重さを確認することができます。
gym(“Dave”)
ans = 75
gym(“Bob”)
ans = 68
このルックアップ操作は、位置ではなく、ユニークなキーに依存し、辞書のうま味の鍵(ダジャレ感・・)となっています。 辞書は高速に検索できるように完全に最適化されており、定数時間(ビッグO表記だと O(1))で検索できます。つまり、10 要素の辞書の項目を検索するのも、1000 万要素の辞書と同じくらいの処理時間です(少なくとも理論上は!)。
また「辞書のキーは一意」であるという点が重要です。 この辞書でもう1つ 別の値を “Bob “に割り当てると、”Bob ” という 2 番目のエントリーを作成するのではなく、”Bob “がマッピングされていた値を上書きすることになります。
大事なのでもう一度言います。各キーは1つだけです。
gym(“Bob”)=110
gym =

3 個のエントリをもつ dictionary (stringdouble):

“Mike” ⟼ 89
“Dave” ⟼ 75
“Bob” ⟼ 110

キーが辞書になかったらどうなる?
あるキーが辞書に存在するかどうかは、isKey() 関数で確認できます。たとえば、キー “Michelle” は辞書 gym に存在しないので、isKey() で確認してみます。
isKey(gym,“Michelle”)
ans = logical
0
存在しないキーを検索しようとすると、エラーになります。
gym(“Michelle”)
次を使用中: ()
キーが見つかりません。
ただ、今度は存在しないキーに代入すると、そのキーと値のペアが辞書に挿入さることになります。
gym(“Michelle”) = 70
gym =

4 個のエントリをもつ dictionary (stringdouble):

“Mike” ⟼ 89
“Dave” ⟼ 75
“Bob” ⟼ 110
“Michelle” ⟼ 70

全部のキーと値を配列として取り出す

辞書からすべてのキーを取り出すには、keys 関数を使用します。 キーは文字列なので string 型の配列として結果が返ってきます。
gymkeys = keys(gym)
gymkeys = 4×1 string
“Mike”
“Dave”
“Bob”
“Michelle”
同様に、存在する値も value 関数で確認できます。
gymvalues = values(gym)
gymvalues = 4×1
89
75
110
70
gymkeys 配列の各要素は gymvalues 配列の各要素に対応していることに気が付かれたと思います。 例えば,”Bob” は gymkeys の 3 番目の要素であり,体重は gymvalues の 3 番目の要素ですね。 また、キーと値は、辞書に挿入されたのと同じ順序で返されます。 理論的には、辞書は順序のないオブジェクトですが、MATLABの実装では挿入順序が維持される点に注意ください。。

辞書を構築する 3 つの方法

MATLAB で辞書を作成するには、現在 3 つの方法があります。上で使った方法は、ある意味 MATLAB らしい方法=ベクトル化された方法です。キーの配列と値の配列をそれぞれ作成し、その両方を dictionary に渡すことで辞書を作成しました。こんな感じです。
ベクトル化
fruits = [“Apple”,“Pear”,“Banana”];
colours = [“Red”,“Green”,“Yellow”];
d1 = dictionary(fruits,colours)
d1 =

3 個のエントリをもつ dictionary (stringstring):

“Apple” ⟼ “Red”
“Pear” ⟼ “Green”
“Banana” ⟼ “Yellow”

キーと値を交互に入力する
別の方法として、次のようにキーと値を交互に入力する方法でも OK です。
d2 = dictionary(“Apple”,“Red”,
“Pear”,“Green”,
“Banana”,“Yellow”)
d2 =

3 個のエントリをもつ dictionary (stringstring):

“Apple” ⟼ “Red”
“Pear” ⟼ “Green”
“Banana” ⟼ “Yellow”

改行は読みやすさのためで、以下でも 大丈夫。
d2 = dictionary(“Apple”,“Red”,“Pear”,“Green”,“Banana”,“Yellow”)
d2 =

3 個のエントリをもつ dictionary (stringstring):

“Apple” ⟼ “Red”
“Pear” ⟼ “Green”
“Banana” ⟼ “Yellow”

空の辞書から始める
最後の方法は、空の辞書から始める方法です
d3 = dictionary()
d3 =
未設定のキー タイプおよび値タイプがある dictionary です。
空の辞書にキーと値のペアをひとつずつ追加していきます。
d3(“Apple”) = “Red”
d3 =

1 個のエントリをもつ dictionary (stringstring):

“Apple” ⟼ “Red”

d3(“Pear”) = “Green”
d3 =

2 個のエントリをもつ dictionary (stringstring):

“Apple” ⟼ “Red”
“Pear” ⟼ “Green”

d3(“Banana”) = “Yellow”
d3 =

3 個のエントリをもつ dictionary (stringstring):

“Apple” ⟼ “Red”
“Pear” ⟼ “Green”
“Banana” ⟼ “Yellow”

それぞれ処理速度に差はあるものの、結果として同じ辞書ができあがります。

辞書型がもつ項目数を数える

辞書の項目数を返すには、新しい関数 numEntries を使用します。
numEntries(d3)
ans = 3
初めて辞書を使ってみたときに代わりに numel を使ってみたのですが・・こんな結果でした。
numel(d3)
ans = 1
実はこれバグとして報告しちゃたんですが、ここでは d3 という 1 つの辞書がありその中にエントリーを含んでいると考えるのでので、結果が 1 というのは正しいんですね。

空の辞書について深掘り: isConfigured

空の辞書をもう少し詳しく見てみましょう。
newDict = dictionary()
newDict =
未設定のキー タイプおよび値タイプがある dictionary です。
newDict は空であるだけでなく、キーと値の型が両方とも未設定です。 この辞書は空であると同時に未設定であると言えます。設定状況は、isConfigured 関数を用いて確認することができます。
isConfigured(newDict)
ans = logical
0
未設定?それがどうした・・と思われるかもしれません。 未設定の辞書ではできないことがあります。 例えば、あるキーが存在するかどうかを確認することはできません。
isKey(newDict,“SomeKey”)
次を使用中: isKey
Unable to perform a lookup in a dictionary with unset key and value types. Add entries to the dictionary.

関連ドキュメンテーション
辞書を定義するには単にエントリーを追加するだけで OK。
newDict(datetime(“2022-09-06”)) = “today”
newDict =

1 個のエントリをもつ dictionary (datetimestring):

2022/09/06 ⟼ “today”

1 つのエントリを追加しすることで、キーが datetime 型、値が string 型になるように辞書 newDict が設定されました。
isConfigured(newDict)
ans = logical
1
では・・空だけど設定された辞書を持つにはどうしたらいいのか。 R2022b では必要な型の空の配列で辞書を作成すれば OK です。
emptyAndConfigured = dictionary(string.empty,double.empty)
emptyAndConfigured =
エントリのない dictionary (stringdouble)。
isConfigured(emptyAndConfigured)
ans = logical
1

もちろんベクトル処理可能

「MATLAB なんだから当然ベクトル化されてますよ!」というのが、この質問をしたときに開発から返ってきた答えでした。少し掘り下げてみます。
names = [“Mike”,“Dave”,“Bob”];
weights = [89,75,68]; % 体重 (kg)
gym = dictionary(names,weights)
gym =

3 個のエントリをもつ dictionary (stringdouble):

“Mike” ⟼ 89
“Dave” ⟼ 75
“Bob” ⟼ 68

ベクトル化された”割り当て”を行うことも当然できます。Mike と Bob の重みを同時に変えてみます。
gym([“Mike”,“Bob”]) = [80,73]
gym =

3 個のエントリをもつ dictionary (stringdouble):

“Mike” ⟼ 80
“Dave” ⟼ 75
“Bob” ⟼ 73

スカラー展開も大丈夫。 二人の双子がジムに入会し、体重が同じだった場合とか。
gym([“Twin 1”,“Twin 2”]) = 100
gym =

5 個のエントリをもつ dictionary (stringdouble):

“Mike” ⟼ 80
“Dave” ⟼ 75
“Bob” ⟼ 73
“Twin 1” ⟼ 100
“Twin 2” ⟼ 100

また、ベクトル化された”検索”も可能です。 返される値の配列の形は、キーのクエリと同じになります。
gym([“Mike”,“Bob”;“Twin 1”,“Dave”])
ans = 2×2
80 73
100 75
そうなると当然気になるのが・・“入力されたキーに存在しないものが入っていたらどうなるのか “ですね。
gym([“Mike”,“Bob”;“DoesNotExist”,“Dave”])
次を使用中: ()
Element 2 of the key array not found.
こうなります。エラーです。

辞書の出力・保存方法

辞書オブジェクトの保存方法ですが・・まずは .mat ファイル。行列やその他のものと同じように保存できます。
% gym を mydictionary.mat に保存
save(“mydictionary”,‘gym’)
辞書を .csv ファイルにエクスポートしたい場合、まず table に変換してから出力します。
entries 関数で辞書から table 型、構造体、セルへの変換できます。 例えば table の場合はこんな感じ。
gymTable = entries(gym,“table”)
gymTable = 5×2 table
Key Value
1 “Mike” 80
2 “Dave” 75
3 “Bob” 73
4 “Twin 1” 100
5 “Twin 2” 100
このテーブルの項目は、元の辞書に挿入された順番になっていることに注意してください。 これを.csvファイルに出力するには writetable ですね。
writetable(gymTable,“gym.csv”)

辞書の活用例:単語の出現回数

辞書の古典的な使い方の 1 つはファイル内の単語の出現回数でしょうか。MATLAB にも同梱されている、William Shakespeareの「The Sonnets」でやってみましょう。まず、テキストを読み込み不要な句読点を削除し、すべてを小文字に変換します。
sonnets = string(fileread(‘sonnets.txt’));
punctuationCharacters = [“.” “?” “!” “,” “;” “:”];
sonnets = replace(sonnets,punctuationCharacters,” “);
sonnets = lower(sonnets);
文字列を単語の配列に分割します。
words = split(sonnets);
全単語数と、ユニークな単語数を確認すると・・
numberOfWords = numel(words)
numberOfWords = 17712
numberOfUniqueWords = numel(unique(words))
numberOfUniqueWords = 3436
各単語の出現回数を数えるために、まず、キーが string、値が double の空の辞書を作成します。
d = dictionary(string.empty,double.empty);
次に、すべての単語を繰り返し処理します。 各単語について、それがすでに辞書に存在するかどうかを確認します。 存在する場合は、値を1つ増やし、存在しない場合は、値を 1 にして新しいエントリーを作成します。
for word = words’
if isKey(d,word) % 辞書に存在するかどうか
d(word) = d(word) +1; % したら値を +1
else
d(word) = 1; % しない場合は 1
end
end
d
d =

3436 個のエントリをもつ dictionary (stringdouble):

“the” ⟼ 436
“sonnets” ⟼ 1
“by” ⟼ 94
“william” ⟼ 1
“shakespeare” ⟼ 1
“i” ⟼ 341
“from” ⟼ 81
“fairest” ⟼ 5
“creatures” ⟼ 2
“we” ⟼ 15
“desire” ⟼ 11
“increase” ⟼ 4
“that” ⟼ 320
“thereby” ⟼ 2
“beauty’s” ⟼ 18
“rose” ⟼ 6
“might” ⟼ 26
“never” ⟼ 15
“die” ⟼ 12
“but” ⟼ 163
“as” ⟼ 121
“riper” ⟼ 2
“should” ⟼ 44
“time” ⟼ 53
“decease” ⟼ 3
“his” ⟼ 107
“tender” ⟼ 7
“heir” ⟼ 3
“bear” ⟼ 12
“memory” ⟼ 8
“thou” ⟼ 233
“contracted” ⟼ 2
“to” ⟼ 409
“thine” ⟼ 44
“own” ⟼ 30
“bright” ⟼ 11
“eyes” ⟼ 51
“feed’st” ⟼ 1
“thy” ⟼ 280
“light’s” ⟼ 1
“flame” ⟼ 3
“with” ⟼ 181
“self-substantial” ⟼ 1
“fuel” ⟼ 1
“making” ⟼ 12
“a” ⟼ 163
“famine” ⟼ 1
“where” ⟼ 41
“abundance” ⟼ 4
“lies” ⟼ 12
“self” ⟼ 36
“foe” ⟼ 1
“sweet” ⟼ 55
“too” ⟼ 18
“cruel” ⟼ 8
“art” ⟼ 51
“now” ⟼ 45
“world’s” ⟼ 5
“fresh” ⟼ 7
“ornament” ⟼ 5
“and” ⟼ 490
“only” ⟼ 6
“herald” ⟼ 1
“gaudy” ⟼ 1
“spring” ⟼ 5
“within” ⟼ 11
“bud” ⟼ 2
“buriest” ⟼ 1
“content” ⟼ 2
“churl” ⟼ 2
“mak’st” ⟼ 2
“waste” ⟼ 7
“in” ⟼ 321
“niggarding” ⟼ 1
“pity” ⟼ 8
“world” ⟼ 26
“or” ⟼ 79
“else” ⟼ 5
“this” ⟼ 103
“glutton” ⟼ 1
“be” ⟼ 141
“eat” ⟼ 3
“due” ⟼ 6
“grave” ⟼ 3
“thee” ⟼ 162
“ii” ⟼ 1
“when” ⟼ 106
“forty” ⟼ 1
“winters” ⟼ 2
“shall” ⟼ 59
“besiege” ⟼ 2
“brow” ⟼ 8
“dig” ⟼ 1
“deep” ⟼ 8
“trenches” ⟼ 1
“field” ⟼ 1
“youth’s” ⟼ 1
“proud” ⟼ 12
“livery” ⟼ 1
“so” ⟼ 145
“gazed” ⟼ 1
“on” ⟼ 80
“will” ⟼ 54
“tatter’d” ⟼ 2
“weed” ⟼ 3
“of” ⟼ 370
“small” ⟼ 2
“worth” ⟼ 18
“held” ⟼ 2
“then” ⟼ 73
“being” ⟼ 32
“asked” ⟼ 1
“all” ⟼ 116
“beauty” ⟼ 52
“treasure” ⟼ 9
“lusty” ⟼ 2
“days” ⟼ 17
“say” ⟼ 28
“sunken” ⟼ 1
“were” ⟼ 29
“an” ⟼ 17
“all-eating” ⟼ 1
“shame” ⟼ 10
“thriftless” ⟼ 1
“praise” ⟼ 28
“how” ⟼ 40
“much” ⟼ 17
“more” ⟼ 64
“deserv’d” ⟼ 1
“use” ⟼ 13
“if” ⟼ 68
“couldst” ⟼ 1
“answer” ⟼ 3
“‘this” ⟼ 2
“fair” ⟼ 41
“child” ⟼ 8
“mine” ⟼ 63
“sum” ⟼ 4
“my” ⟼ 371
“count” ⟼ 4
“make” ⟼ 43
“old” ⟼ 22
“excuse” ⟼ 7
“‘” ⟼ 16
“proving” ⟼ 1
“succession” ⟼ 1
“new” ⟼ 22
“made” ⟼ 19
“see” ⟼ 35
“blood” ⟼ 8
“warm” ⟼ 1
“feel’st” ⟼ 1
“it” ⟼ 104
“cold” ⟼ 7
“iii” ⟼ 1
“look” ⟼ 22
“glass” ⟼ 10
“tell” ⟼ 15
“face” ⟼ 19
“viewest” ⟼ 1
“is” ⟼ 168
“form” ⟼ 11
“another” ⟼ 9
“whose” ⟼ 19
“repair” ⟼ 3
“not” ⟼ 166
“renewest” ⟼ 1
“dost” ⟼ 29
“beguile” ⟼ 1
“unbless” ⟼ 1
“some” ⟼ 31
“mother” ⟼ 2
“for” ⟼ 171
“she” ⟼ 33
“unear’d” ⟼ 1
“womb” ⟼ 2
“disdains” ⟼ 1
“tillage” ⟼ 1
“husbandry” ⟼ 2
“who” ⟼ 29
“he” ⟼ 43
“fond” ⟼ 2
“tomb” ⟼ 5
“self-love” ⟼ 3
“stop” ⟼ 2
“posterity” ⟼ 3
“mother’s” ⟼ 3
“calls” ⟼ 5
“back” ⟼ 9
“lovely” ⟼ 8
“april” ⟼ 3
“her” ⟼ 51
“prime” ⟼ 4
“through” ⟼ 6
“windows” ⟼ 3
“age” ⟼ 15
“shalt” ⟼ 11
“despite” ⟼ 6
“wrinkles” ⟼ 5
“golden” ⟼ 5
“live” ⟼ 29
“remember’d” ⟼ 3
“single” ⟼ 4
“image” ⟼ 4
“dies” ⟼ 1
“iv” ⟼ 1
“unthrifty” ⟼ 1
“loveliness” ⟼ 1
“why” ⟼ 25
“spend” ⟼ 5
“upon” ⟼ 29
“legacy” ⟼ 1
“nature’s” ⟼ 6
“bequest” ⟼ 1
“gives” ⟼ 8
“nothing” ⟼ 19
“doth” ⟼ 88
“lend” ⟼ 5
“frank” ⟼ 1
“lends” ⟼ 4
“those” ⟼ 33
“are” ⟼ 69
“free” ⟼ 4
“beauteous” ⟼ 9
“niggard” ⟼ 2
“abuse” ⟼ 3
“bounteous” ⟼ 2
“largess” ⟼ 1
“given” ⟼ 4
“give” ⟼ 26
“profitless” ⟼ 1
“usurer” ⟼ 2
“great” ⟼ 10
“sums” ⟼ 1
“yet” ⟼ 51
“canst” ⟼ 7
“having” ⟼ 6
“traffic” ⟼ 1
“alone” ⟼ 19
“deceive” ⟼ 2
“nature” ⟼ 10
“gone” ⟼ 9
“what” ⟼ 70
“acceptable” ⟼ 1
“audit” ⟼ 3
“leave” ⟼ 10
“unused” ⟼ 4
“must” ⟼ 21
“tombed” ⟼ 1
“which” ⟼ 108
“used” ⟼ 1
“lives” ⟼ 9
“th'” ⟼ 2
“executor” ⟼ 1
“v” ⟼ 1
“hours” ⟼ 12
“gentle” ⟼ 14
“work” ⟼ 3
“did” ⟼ 26
“frame” ⟼ 4
“gaze” ⟼ 2
“every” ⟼ 30
“eye” ⟼ 37
“dwell” ⟼ 6
“play” ⟼ 5
“tyrants” ⟼ 1
“very” ⟼ 7
“same” ⟼ 6
“unfair” ⟼ 1
“fairly” ⟼ 1
“excel” ⟼ 1
“never-resting” ⟼ 1
“leads” ⟼ 2
“summer” ⟼ 8
“hideous” ⟼ 2
“winter” ⟼ 5
“confounds” ⟼ 3
“him” ⟼ 38
“there” ⟼ 18
“sap” ⟼ 2
“checked” ⟼ 2
“frost” ⟼ 1
“leaves” ⟼ 8
“quite” ⟼ 5
“o’er-snowed” ⟼ 1
“bareness” ⟼ 2
“summer’s” ⟼ 11
“distillation” ⟼ 1
“left” ⟼ 5
“liquid” ⟼ 1
“prisoner” ⟼ 1
“pent” ⟼ 2
“walls” ⟼ 2
“effect” ⟼ 3
“bereft” ⟼ 1
“nor” ⟼ 52
“no” ⟼ 77
“remembrance” ⟼ 2
“was” ⟼ 29
“flowers” ⟼ 8
“distill’d” ⟼ 3
“though” ⟼ 32
“they” ⟼ 52
“meet” ⟼ 2
“leese” ⟼ 1
“their” ⟼ 62
“show” ⟼ 23
“substance” ⟼ 4
“still” ⟼ 41
“vi” ⟼ 1
“let” ⟼ 26
“winter’s” ⟼ 3
“ragged” ⟼ 1
“hand” ⟼ 17
“deface” ⟼ 1
“ere” ⟼ 6
“vial” ⟼ 1
“place” ⟼ 10
“self-kill’d” ⟼ 1
“forbidden” ⟼ 1
“usury” ⟼ 1
“happies” ⟼ 1
“pay” ⟼ 3
“willing” ⟼ 2
“loan” ⟼ 1
“that’s” ⟼ 1
“breed” ⟼ 2
“ten” ⟼ 7
“times” ⟼ 9
“happier” ⟼ 3
“one” ⟼ 43
“than” ⟼ 48
“refigur’d” ⟼ 1
“could” ⟼ 10
“death” ⟼ 15
“do” ⟼ 84
“shouldst” ⟼ 6
“depart” ⟼ 2
“leaving” ⟼ 1
“living” ⟼ 7
“self-will’d” ⟼ 1
“death’s” ⟼ 4
“conquest” ⟼ 3
“worms” ⟼ 4
“vii” ⟼ 1
“lo” ⟼ 3
“orient” ⟼ 1
“gracious” ⟼ 5
“light” ⟼ 6
“lifts” ⟼ 1
“up” ⟼ 15
“burning” ⟼ 1
“head” ⟼ 6
“each” ⟼ 15
“under” ⟼ 6
“homage” ⟼ 1
“new-appearing” ⟼ 1
“sight” ⟼ 17
“serving” ⟼ 2
“looks” ⟼ 13
“sacred” ⟼ 2
“majesty” ⟼ 2
“climb’d” ⟼ 1
“steep-up” ⟼ 1
“heavenly” ⟼ 3
“hill” ⟼ 1
“resembling” ⟼ 2
“strong” ⟼ 9
“youth” ⟼ 15
“middle” ⟼ 1
“mortal” ⟼ 5
“adore” ⟼ 1
“attending” ⟼ 2
“pilgrimage” ⟼ 2
“highmost” ⟼ 1
“pitch” ⟼ 2
“weary” ⟼ 4
“car” ⟼ 1
“like” ⟼ 34
“feeble” ⟼ 1
“reeleth” ⟼ 1
“day” ⟼ 25
“‘fore” ⟼ 1
“duteous” ⟼ 1
“converted” ⟼ 2
“low” ⟼ 1
“tract” ⟼ 1
“way” ⟼ 6
“thyself” ⟼ 7
“outgoing” ⟼ 1
“noon” ⟼ 1
“unlook’d” ⟼ 2
“diest” ⟼ 1
“unless” ⟼ 6
“get” ⟼ 1
“son” ⟼ 3
“viii” ⟼ 1
“music” ⟼ 6
“hear” ⟼ 6
“hear’st” ⟼ 1
“sadly” ⟼ 1
“sweets” ⟼ 6
“war” ⟼ 6
“joy” ⟼ 8
“delights” ⟼ 2
“lov’st” ⟼ 6
“receiv’st” ⟼ 2
“gladly” ⟼ 1
“pleasure” ⟼ 11
“annoy” ⟼ 1
“true” ⟼ 37
“concord” ⟼ 2
“well-tuned” ⟼ 1
“sounds” ⟼ 2
“unions” ⟼ 1
“married” ⟼ 2
“offend” ⟼ 1
“ear” ⟼ 3
“sweetly” ⟼ 2
“chide” ⟼ 5
“singleness” ⟼ 1
“parts” ⟼ 7
“mark” ⟼ 4
“string” ⟼ 1
“husband” ⟼ 3
“strikes” ⟼ 1
“mutual” ⟼ 2
“ordering” ⟼ 1
“sire” ⟼ 1
“happy” ⟼ 11
“pleasing” ⟼ 2
“note” ⟼ 2
“sing” ⟼ 7
“speechless” ⟼ 2
“song” ⟼ 4
“many” ⟼ 13
“seeming” ⟼ 4
“sings” ⟼ 2
“‘thou” ⟼ 1
“wilt” ⟼ 14
“prove” ⟼ 12
“none” ⟼ 13
“ix” ⟼ 1
“fear” ⟼ 8
“wet” ⟼ 1
“widow’s” ⟼ 1
“consum’st” ⟼ 1
“life” ⟼ 23
“ah” ⟼ 7
“issueless” ⟼ 1
“hap” ⟼ 1
“wail” ⟼ 2
“makeless” ⟼ 1
“wife” ⟼ 1
“widow” ⟼ 2
“weep” ⟼ 3
“hast” ⟼ 16
“behind” ⟼ 4
“private” ⟼ 1
“well” ⟼ 22
“may” ⟼ 29
“keep” ⟼ 9
“children’s” ⟼ 1
“husband’s” ⟼ 1
“shape” ⟼ 5
“mind” ⟼ 16
“unthrift” ⟼ 1
“shifts” ⟼ 1
“enjoys” ⟼ 1
“hath” ⟼ 43
“end” ⟼ 10
“kept” ⟼ 3
“user” ⟼ 1
“destroys” ⟼ 1
“love” ⟼ 160
“toward” ⟼ 1
“others” ⟼ 11
“bosom” ⟼ 2
“sits” ⟼ 1
“himself” ⟼ 2
“such” ⟼ 30
“murd’rous” ⟼ 1
“commits” ⟼ 2
“x” ⟼ 1
“deny” ⟼ 2
“bear’st” ⟼ 1
“any” ⟼ 10
“unprovident” ⟼ 1
“grant” ⟼ 4
“belov’d” ⟼ 3
“most” ⟼ 27
“evident” ⟼ 1
“possess’d” ⟼ 2
“murderous” ⟼ 2
“hate” ⟼ 13
“‘gainst” ⟼ 6
“stick’st” ⟼ 1
“conspire” ⟼ 1
“seeking” ⟼ 1
“roof” ⟼ 1
“ruinate” ⟼ 1
“chief” ⟼ 2
“o” ⟼ 50
“change” ⟼ 12
“thought” ⟼ 18
“fairer” ⟼ 3
“lodg’d” ⟼ 1
“presence” ⟼ 2
“kind” ⟼ 11
“at” ⟼ 26
“least” ⟼ 5
“kind-hearted” ⟼ 1
“me” ⟼ 164
“xi” ⟼ 1
“fast” ⟼ 5
“wane” ⟼ 1
“grow’st” ⟼ 3
“departest” ⟼ 1
“youngly” ⟼ 1
“bestow’st” ⟼ 1
“mayst” ⟼ 12
“call” ⟼ 10
“convertest” ⟼ 1
“herein” ⟼ 1
“wisdom” ⟼ 1
“without” ⟼ 8
“folly” ⟼ 1
“decay” ⟼ 9
“minded” ⟼ 1
“cease” ⟼ 1
“threescore” ⟼ 1
“year” ⟼ 5
“would” ⟼ 21
“away” ⟼ 18
“whom” ⟼ 12
“store” ⟼ 9
“harsh” ⟼ 1
“featureless” ⟼ 1
“rude” ⟼ 4
“barrenly” ⟼ 1
“perish” ⟼ 1
“best” ⟼ 23
“endow’d” ⟼ 1
“gave” ⟼ 5
“gift” ⟼ 5
“bounty” ⟼ 2
“cherish” ⟼ 1
“carv’d” ⟼ 1
“seal” ⟼ 1
“meant” ⟼ 1
“print” ⟼ 1
“copy” ⟼ 2
“xii” ⟼ 1
“clock” ⟼ 2
“tells” ⟼ 2
“brave” ⟼ 3
“sunk” ⟼ 1
“night” ⟼ 22
“behold” ⟼ 7
“violet” ⟼ 2
“past” ⟼ 9
“sable” ⟼ 1
“curls” ⟼ 1
“silvered” ⟼ 1
“o’er” ⟼ 6
“white” ⟼ 7
“lofty” ⟼ 2
“trees” ⟼ 1
“barren” ⟼ 5
“erst” ⟼ 1
“heat” ⟼ 4
“canopy” ⟼ 2
“herd” ⟼ 1
“green” ⟼ 5
“girded” ⟼ 1
“sheaves” ⟼ 1
“borne” ⟼ 2
“bier” ⟼ 1
“bristly” ⟼ 1
“beard” ⟼ 1
“question” ⟼ 2
“among” ⟼ 3
“wastes” ⟼ 2
“go” ⟼ 6
“since” ⟼ 23
“beauties” ⟼ 4
“themselves” ⟼ 6
“forsake” ⟼ 2
“grow” ⟼ 8
“time’s” ⟼ 16
“scythe” ⟼ 4
“can” ⟼ 44
“defence” ⟼ 3
“save” ⟼ 9
“takes” ⟼ 3
“hence” ⟼ 6
“xiii” ⟼ 1
“you” ⟼ 111
“your” ⟼ 92
“longer” ⟼ 6
“yours” ⟼ 5
“here” ⟼ 4
“against” ⟼ 18
“coming” ⟼ 2
“prepare” ⟼ 2
“semblance” ⟼ 1
“other” ⟼ 16
“hold” ⟼ 13
“lease” ⟼ 4
“find” ⟼ 16
“determination” ⟼ 1
“yourself” ⟼ 7
“again” ⟼ 10
“after” ⟼ 10
“yourself’s” ⟼ 1
“issue” ⟼ 2
“lets” ⟼ 1
“house” ⟼ 1
“fall” ⟼ 3
“honour” ⟼ 7
“uphold” ⟼ 1
“stormy” ⟼ 1
“gusts” ⟼ 1
“rage” ⟼ 5
“eternal” ⟼ 6
“unthrifts” ⟼ 1
“dear” ⟼ 20
“know” ⟼ 17
“had” ⟼ 15
“father” ⟼ 2
“xiv” ⟼ 1
“stars” ⟼ 5
“judgement” ⟼ 2
“pluck” ⟼ 4
“methinks” ⟼ 4
“have” ⟼ 75
“astronomy” ⟼ 1
“good” ⟼ 15
“evil” ⟼ 4
“luck” ⟼ 1
“plagues” ⟼ 1
“dearths” ⟼ 1
“seasons'” ⟼ 1
“quality” ⟼ 1
“fortune” ⟼ 6
“brief” ⟼ 3
“minutes” ⟼ 4
“pointing” ⟼ 1
“thunder” ⟼ 1
“rain” ⟼ 3
“wind” ⟼ 2
“princes” ⟼ 2
“oft” ⟼ 5
“predict” ⟼ 1
“heaven” ⟼ 13
“knowledge” ⟼ 3
“derive” ⟼ 1
“constant” ⟼ 3
“them” ⟼ 17
“read” ⟼ 5
“‘truth” ⟼ 2
“together” ⟼ 1
“thrive” ⟼ 2
“wouldst” ⟼ 3
“convert'” ⟼ 1
“prognosticate” ⟼ 1
“‘thy” ⟼ 1
“truth’s” ⟼ 1
“doom” ⟼ 5
“date” ⟼ 5
“xv” ⟼ 1
“consider” ⟼ 1
“thing” ⟼ 11
“grows” ⟼ 4
“holds” ⟼ 5
“perfection” ⟼ 2
“little” ⟼ 2
“moment” ⟼ 1
“huge” ⟼ 2
“stage” ⟼ 2
“presenteth” ⟼ 1
“nought” ⟼ 3
“shows” ⟼ 6
“whereon” ⟼ 3
“secret” ⟼ 1
“influence” ⟼ 2
“comment” ⟼ 2
“perceive” ⟼ 1
“men” ⟼ 15
“plants” ⟼ 1
“cheered” ⟼ 1
“even” ⟼ 24
“self-same” ⟼ 1
“sky” ⟼ 1
“vaunt” ⟼ 1
“youthful” ⟼ 2
“height” ⟼ 3
“decrease” ⟼ 1
“wear” ⟼ 3
“state” ⟼ 14
“out” ⟼ 16
“conceit” ⟼ 3
“inconstant” ⟼ 2
“stay” ⟼ 9
“sets” ⟼ 2
“rich” ⟼ 10
“before” ⟼ 15
“wasteful” ⟼ 2
“debateth” ⟼ 1
“sullied” ⟼ 1
“engraft” ⟼ 1
“xvi” ⟼ 1
“wherefore” ⟼ 4
“mightier” ⟼ 1
“bloody” ⟼ 3
“tyrant” ⟼ 3
“fortify” ⟼ 2
“means” ⟼ 3
“blessed” ⟼ 7
“rhyme” ⟼ 4
“stand” ⟼ 8
“top” ⟼ 1
“maiden” ⟼ 3
“gardens” ⟼ 1
“unset” ⟼ 1
“virtuous” ⟼ 3
“wish” ⟼ 5
“liker” ⟼ 1
“painted” ⟼ 5
“counterfeit” ⟼ 2
“lines” ⟼ 8
“pencil” ⟼ 2
“pupil” ⟼ 1
“pen” ⟼ 10
“neither” ⟼ 2
“inward” ⟼ 4
“outward” ⟼ 7
“keeps” ⟼ 5
“drawn” ⟼ 3
“skill” ⟼ 8
“xvii” ⟼ 1
“believe” ⟼ 4
“verse” ⟼ 15
“come” ⟼ 15
“fill’d” ⟼ 3
“high” ⟼ 4
“deserts” ⟼ 2
“knows” ⟼ 11
“hides” ⟼ 1
“half” ⟼ 3
“write” ⟼ 10
“numbers” ⟼ 4
“number” ⟼ 3
“graces” ⟼ 5
“poet” ⟼ 2
“touches” ⟼ 4
“ne’er” ⟼ 3
“touch’d” ⟼ 1
“earthly” ⟼ 1
“faces” ⟼ 2
“papers” ⟼ 1
“yellow’d” ⟼ 1
“scorn’d” ⟼ 1
“less” ⟼ 7
“truth” ⟼ 21
“tongue” ⟼ 11
“rights” ⟼ 1
“term’d” ⟼ 1
“poet’s” ⟼ 2
“stretched” ⟼ 1
“metre” ⟼ 1
“antique” ⟼ 5
“alive” ⟼ 2
“twice” ⟼ 2
“–in” ⟼ 1
“xviii” ⟼ 1
“compare” ⟼ 5
“temperate” ⟼ 1
“rough” ⟼ 1
“winds” ⟼ 2
“shake” ⟼ 3
“darling” ⟼ 1
“buds” ⟼ 4
“short” ⟼ 4
“sometime” ⟼ 6
“hot” ⟼ 3
“shines” ⟼ 2
“often” ⟼ 2
“gold” ⟼ 2
“complexion” ⟼ 3
“dimm’d” ⟼ 1
“declines” ⟼ 1
“chance” ⟼ 1
“changing” ⟼ 2
“course” ⟼ 3
“untrimm’d” ⟼ 1
“fade” ⟼ 2
“lose” ⟼ 9
“possession” ⟼ 2
“ow’st” ⟼ 1
“brag” ⟼ 1
“wander’st” ⟼ 1
“shade” ⟼ 4
“long” ⟼ 11
“breathe” ⟼ 2
“xix” ⟼ 1
“devouring” ⟼ 1
“blunt” ⟼ 3
“lion’s” ⟼ 1
“paws” ⟼ 1
“earth” ⟼ 12
“devour” ⟼ 1
“brood” ⟼ 1
“keen” ⟼ 2
“teeth” ⟼ 1
“fierce” ⟼ 2
“tiger’s” ⟼ 1
“jaws” ⟼ 1
“burn” ⟼ 3
“long-liv’d” ⟼ 1
“phoenix” ⟼ 1
“glad” ⟼ 2
“sorry” ⟼ 1
“seasons” ⟼ 2
“fleets” ⟼ 1
“whate’er” ⟼ 2
“swift-footed” ⟼ 1
“wide” ⟼ 6
“fading” ⟼ 2
“forbid” ⟼ 3
“heinous” ⟼ 1
“crime” ⟼ 4
“carve” ⟼ 1
“love’s” ⟼ 27
“draw” ⟼ 3
“untainted” ⟼ 1
“allow” ⟼ 2
“pattern” ⟼ 2
“succeeding” ⟼ 1
“worst” ⟼ 7
“wrong” ⟼ 6
“ever” ⟼ 11
“young” ⟼ 4
“xx” ⟼ 1
“woman’s” ⟼ 3
“master” ⟼ 2
“mistress” ⟼ 4
“passion” ⟼ 1
“heart” ⟼ 50
“acquainted” ⟼ 2
“shifting” ⟼ 1
“false” ⟼ 18
“women’s” ⟼ 3
“fashion” ⟼ 2
“theirs” ⟼ 2
“rolling” ⟼ 1
“gilding” ⟼ 2
“object” ⟼ 1
“whereupon” ⟼ 1
“gazeth” ⟼ 1
“man” ⟼ 5
“hue” ⟼ 5
“‘hues'” ⟼ 1
“controlling” ⟼ 1
“steals” ⟼ 1
“men’s” ⟼ 5
“souls” ⟼ 1
“amazeth” ⟼ 1
“woman” ⟼ 3
“wert” ⟼ 3
“first” ⟼ 12
“created” ⟼ 2
“till” ⟼ 14
“wrought” ⟼ 2
“fell” ⟼ 5
“a-doting” ⟼ 1
“addition” ⟼ 2
“defeated” ⟼ 1
“adding” ⟼ 1
“purpose” ⟼ 5
“prick’d” ⟼ 1
“xxi” ⟼ 1
“muse” ⟼ 16
“stirr’d” ⟼ 1
“itself” ⟼ 7
“rehearse” ⟼ 4
“couplement” ⟼ 1
“compare'” ⟼ 1
“sun” ⟼ 11
“moon” ⟼ 3
“sea’s” ⟼ 1
“gems” ⟼ 1
“april’s” ⟼ 1
“first-born” ⟼ 1
“things” ⟼ 14
“rare” ⟼ 4
“heaven’s” ⟼ 6
“air” ⟼ 4
“rondure” ⟼ 1
“hems” ⟼ 1
“truly” ⟼ 5
“candles” ⟼ 1
“fix’d” ⟼ 2
“hearsay” ⟼ 1
“sell” ⟼ 1
“xxii” ⟼ 1
“persuade” ⟼ 1
“am” ⟼ 35
“furrows” ⟼ 1
“expiate” ⟼ 1
“cover” ⟼ 3
“seemly” ⟼ 1
“raiment” ⟼ 1
“breast” ⟼ 7
“elder” ⟼ 1
“therefore” ⟼ 17
“wary” ⟼ 1
“myself” ⟼ 20
“bearing” ⟼ 3
“chary” ⟼ 1
“nurse” ⟼ 1
“babe” ⟼ 4
“faring” ⟼ 1
“ill” ⟼ 18
“presume” ⟼ 1
“slain” ⟼ 2
“gav’st” ⟼ 3
“xxiii” ⟼ 1
“unperfect” ⟼ 1
“actor” ⟼ 1
“put” ⟼ 7
“beside” ⟼ 2
“part” ⟼ 20
“replete” ⟼ 2
“strength’s” ⟼ 1
“weakens” ⟼ 1
“trust” ⟼ 5
“forget” ⟼ 2
“perfect” ⟼ 2
“ceremony” ⟼ 1
“rite” ⟼ 1
“strength” ⟼ 5
“seem” ⟼ 12
“o’ercharg’d” ⟼ 1
“burthen” ⟼ 2
“eloquence” ⟼ 1
“dumb” ⟼ 6
“presagers” ⟼ 1
“speaking” ⟼ 4
“plead” ⟼ 2
“recompense” ⟼ 1
“express’d” ⟼ 3
“learn” ⟼ 2
“silent” ⟼ 2
“writ” ⟼ 6
“belongs” ⟼ 2
“fine” ⟼ 2
“wit” ⟼ 6
“xxiv” ⟼ 1
“play’d” ⟼ 1
“painter” ⟼ 2
“stell’d” ⟼ 1
“table” ⟼ 1
“body” ⟼ 4
“wherein” ⟼ 5
“’tis” ⟼ 11
“perspective” ⟼ 1
“painter’s” ⟼ 1
“pictur’d” ⟼ 1
“bosom’s” ⟼ 2
“shop” ⟼ 1
“hanging” ⟼ 1
“glazed” ⟼ 1
“turns” ⟼ 4
“done” ⟼ 5
“where-through” ⟼ 1
“peep” ⟼ 1
“therein” ⟼ 3
“cunning” ⟼ 3
“want” ⟼ 4
“grace” ⟼ 11
“xxv” ⟼ 1
“favour” ⟼ 3
“public” ⟼ 4
“titles” ⟼ 1
“boast” ⟼ 5
“whilst” ⟼ 13
“triumph” ⟼ 3
“bars” ⟼ 2
“princes'” ⟼ 1
“favourites” ⟼ 1
“spread” ⟼ 1
“marigold” ⟼ 1
“sun’s” ⟼ 1
“pride” ⟼ 11
“buried” ⟼ 5
“frown” ⟼ 3
“glory” ⟼ 8
“painful” ⟼ 1
“warrior” ⟼ 1
“famoused” ⟼ 1
“fight” ⟼ 3
“thousand” ⟼ 3
“victories” ⟼ 1
“once” ⟼ 10
“foil’d” ⟼ 1
“book” ⟼ 6
“razed” ⟼ 1
“rest” ⟼ 6
“forgot” ⟼ 4
“toil’d” ⟼ 1
“remove” ⟼ 2
“remov’d” ⟼ 3
“xxvi” ⟼ 1
“lord” ⟼ 1
“vassalage” ⟼ 1
“merit” ⟼ 5
“duty” ⟼ 3
“strongly” ⟼ 2
“knit” ⟼ 1
“send” ⟼ 2
“written” ⟼ 1
“embassage” ⟼ 1
“witness” ⟼ 3
“poor” ⟼ 15
“bare” ⟼ 4
“wanting” ⟼ 2
“words” ⟼ 10
“hope” ⟼ 6
“soul’s” ⟼ 2
“naked” ⟼ 1
“bestow” ⟼ 1
“whatsoever” ⟼ 1
“star” ⟼ 3
“guides” ⟼ 1
“moving” ⟼ 2
“points” ⟼ 1
“graciously” ⟼ 1
“aspect” ⟼ 1
“puts” ⟼ 1
“apparel” ⟼ 1
“loving” ⟼ 9
“worthy” ⟼ 5
“respect” ⟼ 4
“dare” ⟼ 4
“xxvii” ⟼ 1
“toil” ⟼ 4
“haste” ⟼ 3
“bed” ⟼ 1
“respose” ⟼ 1
“limbs” ⟼ 2
“travel” ⟼ 2
“tir’d” ⟼ 2
“begins” ⟼ 1
“journey” ⟼ 2
“body’s” ⟼ 4
“work’s” ⟼ 1
“expired” ⟼ 1
“thoughts–from” ⟼ 1
“far” ⟼ 16
“abide–” ⟼ 1
“intend” ⟼ 1
“zealous” ⟼ 1
“drooping” ⟼ 1
“eyelids” ⟼ 2
“open” ⟼ 2
“looking” ⟼ 3
“darkness” ⟼ 1
“blind” ⟼ 6
“imaginary” ⟼ 1
“presents” ⟼ 1
“shadow” ⟼ 7
“sightless” ⟼ 2
“view” ⟼ 8
“jewel” ⟼ 4
“(hung” ⟼ 1
“ghastly” ⟼ 1
“makes” ⟼ 8
“black” ⟼ 13
“thus” ⟼ 21
“quiet” ⟼ 1
“xxviii” ⟼ 1
“return” ⟼ 6
“plight” ⟼ 1
“debarre’d” ⟼ 1
“benefit” ⟼ 2
“day’s” ⟼ 1
“oppression” ⟼ 1
“eas’d” ⟼ 1
“oppress’d” ⟼ 2
“enemies” ⟼ 2
“either’s” ⟼ 2
“reign” ⟼ 2
“consent” ⟼ 1
“hands” ⟼ 2
“torture” ⟼ 2
“complain” ⟼ 1
“farther” ⟼ 4
“off” ⟼ 2
“please” ⟼ 4
“clouds” ⟼ 4
“blot” ⟼ 3
“flatter” ⟼ 3
“swart-complexion’d” ⟼ 1
“sparkling” ⟼ 1
“twire” ⟼ 1
“gild’st” ⟼ 1
“daily” ⟼ 3
“sorrows” ⟼ 2
“nightly” ⟼ 2
“grief’s” ⟼ 1
“length” ⟼ 1
“stronger” ⟼ 2
“xxix” ⟼ 1
“disgrace” ⟼ 8
“beweep” ⟼ 1
“outcast” ⟼ 1
“trouble” ⟼ 1
“deaf” ⟼ 1
“bootless” ⟼ 1
“cries” ⟼ 2
“curse” ⟼ 2
“fate” ⟼ 1
“wishing” ⟼ 1
“featur’d” ⟼ 1
“friends” ⟼ 3
“desiring” ⟼ 1
“man’s” ⟼ 2
“scope” ⟼ 5
“enjoy” ⟼ 1
“contented” ⟼ 3
“these” ⟼ 22
“thoughts” ⟼ 17
“almost” ⟼ 3
“despising” ⟼ 1
“haply” ⟼ 3
“think” ⟼ 15
“–” ⟼ 12
“lark” ⟼ 1
“break” ⟼ 4
“arising” ⟼ 1
“sullen” ⟼ 2
“hymns” ⟼ 2
“gate” ⟼ 1
“wealth” ⟼ 6
“brings” ⟼ 2
“scorn” ⟼ 2
“kings” ⟼ 2
“xxx” ⟼ 1
“sessions” ⟼ 1
“summon” ⟼ 1
“sigh” ⟼ 1
“lack” ⟼ 4
“sought” ⟼ 1
“woes” ⟼ 1
“drown” ⟼ 1
“flow” ⟼ 1
“precious” ⟼ 6
“hid” ⟼ 2
“dateless” ⟼ 2
“afresh” ⟼ 1
“cancell’d” ⟼ 1
“woe” ⟼ 12
“moan” ⟼ 5
“expense” ⟼ 3
“vanish’d” ⟼ 1
“grieve” ⟼ 1
“grievances” ⟼ 1
“foregone” ⟼ 1
“heavily” ⟼ 2
“sad” ⟼ 7
“account” ⟼ 4
“fore-bemoaned” ⟼ 1
“paid” ⟼ 1
“while” ⟼ 6
“friend” ⟼ 14
“losses” ⟼ 1
“restor’d” ⟼ 1
“xxxi” ⟼ 1
“endeared” ⟼ 1
“hearts” ⟼ 4
“lacking” ⟼ 1
“supposed” ⟼ 2
“dead” ⟼ 16
“reigns” ⟼ 1
“holy” ⟼ 4
“obsequious” ⟼ 2
“tear” ⟼ 1
“religious” ⟼ 1
“stol’n” ⟼ 5
“interest” ⟼ 2
“appear” ⟼ 4
“hidden” ⟼ 1
“lie” ⟼ 13
“hung” ⟼ 1
“trophies” ⟼ 1
“lovers” ⟼ 2
“images” ⟼ 1
“lov’d” ⟼ 4
“thou–all” ⟼ 1
“they–hast” ⟼ 1
“xxxii” ⟼ 1
“survive” ⟼ 2
“well-contented” ⟼ 1
“bones” ⟼ 1
“dust” ⟼ 2
“re-survey” ⟼ 1
“deceased” ⟼ 2
“lover” ⟼ 1
“bett’ring” ⟼ 1
“outstripp’d” ⟼ 1
“reserve” ⟼ 2
“exceeded” ⟼ 1
“vouchsafe” ⟼ 2
“‘had” ⟼ 1
“friend’s” ⟼ 2
“grown” ⟼ 4
“growing” ⟼ 3
“dearer” ⟼ 2
“birth” ⟼ 5
“brought” ⟼ 3
“march” ⟼ 1
“ranks” ⟼ 1
“better” ⟼ 19
“equipage” ⟼ 1
“died” ⟼ 2
“poets” ⟼ 2
“style” ⟼ 3
“i’ll” ⟼ 7
“love'” ⟼ 1
“xxxiii” ⟼ 1
“full” ⟼ 13
“glorious” ⟼ 1
“morning” ⟼ 2
“seen” ⟼ 11
“mountain” ⟼ 2
“tops” ⟼ 1
“sovereign” ⟼ 4
“kissing” ⟼ 1
“meadows” ⟼ 1
“pale” ⟼ 2
“streams” ⟼ 1
“alchemy” ⟼ 2
“anon” ⟼ 2
“permit” ⟼ 1
“basest” ⟼ 3
“ride” ⟼ 3
“ugly” ⟼ 1
“rack” ⟼ 1
“celestial” ⟼ 1
“forlorn” ⟼ 1
“visage” ⟼ 1
“hide” ⟼ 5
“stealing” ⟼ 2
“unseen” ⟼ 2
“west” ⟼ 3
“early” ⟼ 1
“morn” ⟼ 2
“shine” ⟼ 4
“triumphant” ⟼ 2
“splendour” ⟼ 1
“alack” ⟼ 3
“hour” ⟼ 4
“region” ⟼ 1
“cloud” ⟼ 2
“mask’d” ⟼ 2
“whit” ⟼ 1
“disdaineth” ⟼ 1
“suns” ⟼ 1
“stain” ⟼ 3
“staineth” ⟼ 1
“xxxiv” ⟼ 1
“didst” ⟼ 3
“promise” ⟼ 1
“forth” ⟼ 7
“cloak” ⟼ 1
“base” ⟼ 5
“o’ertake” ⟼ 1
“hiding” ⟼ 1
“bravery” ⟼ 1
“rotten” ⟼ 2
“smoke” ⟼ 1
“enough” ⟼ 6
“dry” ⟼ 1
“storm-beaten” ⟼ 1
“salve” ⟼ 2
“speak” ⟼ 8
“heals” ⟼ 1
“wound” ⟼ 4
“cures” ⟼ 1
“physic” ⟼ 2
“grief” ⟼ 5
“repent” ⟼ 1
“loss” ⟼ 8
“offender’s” ⟼ 1
“sorrow” ⟼ 5
“weak” ⟼ 2
“relief” ⟼ 1
“bears” ⟼ 3
“offence’s” ⟼ 1
“cross” ⟼ 3
“tears” ⟼ 5
“pearl” ⟼ 1
“sheds” ⟼ 1
“ransom” ⟼ 2
“deeds” ⟼ 10
“xxxv” ⟼ 1
“griev’d” ⟼ 1
“roses” ⟼ 7
“thorns” ⟼ 3
“silver” ⟼ 1
“fountains” ⟼ 1
“mud” ⟼ 1
“eclipses” ⟼ 2
“both” ⟼ 17
“loathsome” ⟼ 1
“canker” ⟼ 5
“sweetest” ⟼ 5
“faults” ⟼ 8
“authorizing” ⟼ 1
“trespass” ⟼ 2
“corrupting” ⟼ 1
“salving” ⟼ 1
“amiss” ⟼ 3
“excusing” ⟼ 1
“sins” ⟼ 3
“sensual” ⟼ 2
“fault” ⟼ 3
“bring” ⟼ 8
“sense” ⟼ 4
“adverse” ⟼ 1
“party” ⟼ 1
“advocate” ⟼ 1
“lawful” ⟼ 3
“plea” ⟼ 3
“commence” ⟼ 1
“civil” ⟼ 1
“accessary” ⟼ 1
“needs” ⟼ 5
“thief” ⟼ 4
“sourly” ⟼ 2
“robs” ⟼ 2
“xxxvi” ⟼ 1
“confess” ⟼ 1
“two” ⟼ 9
“twain” ⟼ 3
“although” ⟼ 9
“our” ⟼ 18
“undivided” ⟼ 1
“loves” ⟼ 8
“blots” ⟼ 1
“remain” ⟼ 3
“help” ⟼ 4
“separable” ⟼ 1
“spite” ⟼ 5
“alter” ⟼ 1
“sole” ⟼ 1
“steal” ⟼ 6
“delight” ⟼ 8
“evermore” ⟼ 3
“acknowledge” ⟼ 1
“lest” ⟼ 8
“bewailed” ⟼ 1
“guilt” ⟼ 1
“kindness” ⟼ 2
“take” ⟼ 13
“name” ⟼ 17
“sort” ⟼ 2
“report” ⟼ 4
“xxxvii” ⟼ 1
“decrepit” ⟼ 1
“active” ⟼ 1
“lame” ⟼ 2
“fortune’s” ⟼ 3
“dearest” ⟼ 3
“comfort” ⟼ 4
“whether” ⟼ 5
“entitled” ⟼ 1
“crowned” ⟼ 1
“sit” ⟼ 2
“engrafted” ⟼ 1
“despis’d” ⟼ 1
“suffic’d” ⟼ 1
“xxxviii” ⟼ 1
“subject” ⟼ 5
“invent” ⟼ 2
“pour’st” ⟼ 1
“into” ⟼ 5
“argument” ⟼ 6
“excellent” ⟼ 1
“vulgar” ⟼ 3
“paper” ⟼ 1
“thanks” ⟼ 1
“aught” ⟼ 2
“perusal” ⟼ 1
“who’s” ⟼ 1
“cannot” ⟼ 10
“invention” ⟼ 5
“tenth” ⟼ 1
“nine” ⟼ 1
“rhymers” ⟼ 1
“invocate” ⟼ 1
“outlive” ⟼ 3
“slight” ⟼ 2
“curious” ⟼ 1
“pain” ⟼ 5
“xxxix” ⟼ 1
“manners” ⟼ 3
“is’t” ⟼ 2
“us” ⟼ 2
“divided” ⟼ 1
“separation” ⟼ 1
“deserv’st” ⟼ 1
“absence” ⟼ 5
“torment” ⟼ 3
“sour” ⟼ 2
“leisure” ⟼ 4
“entertain” ⟼ 1

この辞書には 3436 の項目があり、これは先ほど見つけたユニークな単語数と同じ。いいですね。もう 1 つのチェックとして、すべての値を合計して、先ほど見つけた単語の総数と同じであることも確認しておきます。
numberOfWords=sum(values(d))
numberOfWords = 17712
シェイクスピアは、憎しみ(hate)よりも愛(love)についてたくさん語っていたことがわかりますね。
d(“love”)
ans = 160
d(“hate”)
ans = 13

話しは続く・・

MATLAB におけるこの新しいデータ型についての紹介はひとまず以上です。今回の投稿は辞書をテーマとした 3 つの投稿のうちの 1 つです。次の 2 つでは、辞書で使用できるユーザー定義クラスを含むさまざまな型について深く掘り下げるとともに、この辞書と由緒ある containers.map とを比較する予定です。引き続き MATLAB の新バージョンを楽しんでください!

|
  • print

Comments

To leave a comment, please click here to sign in to your MathWorks Account or create a new one.