Struktur Data: Vocab, Lexeme, dan StringStore

NLP Lanjutan dengan spaCy

Ines Montani

spaCy core developer

Vocab bersama dan string store (1)

  • Vocab: menyimpan data yang dibagi lintas banyak dokumen
  • Untuk menghemat memori, spaCy mengenkode semua string menjadi nilai hash
  • String hanya disimpan sekali di StringStore melalui nlp.vocab.strings
  • String store: tabel pencarian dua arah
coffee_hash = nlp.vocab.strings['coffee']
coffee_string = nlp.vocab.strings[coffee_hash]
  • Hash tidak dapat dibalik – karena itu kita perlu menyediakan vocab bersama
# Error jika string belum pernah terlihat
string = nlp.vocab.strings[3197928453018144401]
NLP Lanjutan dengan spaCy

Vocab bersama dan string store (2)

  • Lakukan lookup string dan hash di nlp.vocab.strings
doc = nlp("I love coffee")
print('hash value:', nlp.vocab.strings['coffee'])

print('string value:', nlp.vocab.strings[3197928453018144401])
hash value: 3197928453018144401

string value: coffee
  • doc juga mengekspos vocab dan strings
doc = nlp("I love coffee")
print('hash value:', doc.vocab.strings['coffee'])
hash value: 3197928453018144401
NLP Lanjutan dengan spaCy

Lexeme: entri dalam vocabulary

  • Objek Lexeme adalah entri dalam vocabulary
doc = nlp("I love coffee")
lexeme = nlp.vocab['coffee']

# cetak atribut leksikal print(lexeme.text, lexeme.orth, lexeme.is_alpha)
coffee 3197928453018144401 True
  • Berisi informasi kata yang tidak bergantung konteks
    • Teks kata: lexeme.text dan lexeme.orth (hash)
    • Atribut leksikal seperti lexeme.is_alpha
    • Bukan tag kelas kata, dependensi, atau label entitas yang bergantung konteks
NLP Lanjutan dengan spaCy

Vocab, hash, dan lexeme

Ilustrasi kata "I", "love" dan "coffee" pada Doc, Vocab, dan StringStore

NLP Lanjutan dengan spaCy

Ayo berlatih!

NLP Lanjutan dengan spaCy

Preparing Video For Download...