Veri Yapıları: Vocab, Lexeme ve StringStore

spaCy ile İleri Düzey NLP

Ines Montani

spaCy core developer

Paylaşılan vocab ve string store (1)

  • Vocab: birden çok belge arasında paylaşılan verileri saklar
  • Bellekten tasarruf için spaCy tüm dizeleri karma değerlerine kodlar
  • Dizeler StringStore içinde nlp.vocab.strings aracılığıyla yalnızca bir kez saklanır
  • String store: iki yönlü bir arama tablosu
coffee_hash = nlp.vocab.strings['coffee']
coffee_string = nlp.vocab.strings[coffee_hash]
  • Hash'ler tersine çevrilemez – bu yüzden paylaşılan vocab gerekir
# Dizeyi daha önce görmediysek hata verir
string = nlp.vocab.strings[3197928453018144401]
spaCy ile İleri Düzey NLP

Paylaşılan vocab ve string store (2)

  • Dizeyi ve karma değeri nlp.vocab.strings içinde arayın
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 da vocab ve strings'e erişir
doc = nlp("I love coffee")
print('hash value:', doc.vocab.strings['coffee'])
hash value: 3197928453018144401
spaCy ile İleri Düzey NLP

Lexeme'ler: sözlükteki kayıtlar

  • Lexeme nesnesi, sözlükte bir kayıttır
doc = nlp("I love coffee")
lexeme = nlp.vocab['coffee']

# sözcüksel öznitelikleri yazdır print(lexeme.text, lexeme.orth, lexeme.is_alpha)
coffee 3197928453018144401 True
  • Bir sözcüğün bağlamdan bağımsız bilgisini içerir
    • Sözcük metni: lexeme.text ve lexeme.orth (hash)
    • lexeme.is_alpha gibi sözcüksel öznitelikler
    • Bağlama bağlı sözcük türleri, bağımlılıklar veya varlık etiketleri yoktur
spaCy ile İleri Düzey NLP

Vocab, hash'ler ve lexeme'ler

Doc, Vocab ve StringStore boyunca "I", "love" ve "coffee" sözcüklerinin illüstrasyonu

spaCy ile İleri Düzey NLP

Hadi pratik yapalım!

spaCy ile İleri Düzey NLP

Preparing Video For Download...