始める無料で始める

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, :] = ____
コードを編集して実行