spaCy による単語ベクトル
この演習では、単語ベクトルを初めて体験しましょう。 ここでは ATIS データセットを使用します。このデータセットには、実際のユーザーがフライト予約システムとやり取りした何千ものセンテンスが含まれています。
ユーザーの発話はリスト sentences に、対応するインテント(意図)は labels に格納されています。
データセット内のセンテンス数と同じ行数を持つ 2 次元配列 X を作成しましょう。各行は、対応するセンテンスを表すベクトルになります。
この演習はコースの一部です
Python でチャットボットを作る
演習の手順
spacy.load()に引数'en'を渡して、spaCyの英語モデルを読み込みましょう。len()を使ってsentencesの長さを計算し、nlp.vocab.vectors_lengthを使って単語ベクトルの次元数を取得しましょう。- 各センテンスについて、
sentenceを唯一の引数としてnlpオブジェクトを呼び出し、結果をdocとして保存しましょう。 docの.vector属性を使って各センテンスのベクトル表現を取得し、そのベクトルをXの対応する行に格納しましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Load the spacy model: nlp
nlp = ____
# Calculate the length of sentences
n_sentences = ____
# Calculate the dimensionality of nlp
embedding_dim = ____
# Initialize the array with zeros: X
X = np.zeros((n_sentences, embedding_dim))
# Iterate over the sentences
for idx, sentence in enumerate(sentences):
# Pass each each sentence to the nlp object to create a document
doc = ____
# Save the document's .vector attribute to the corresponding row in X
X[idx, :] = ____