Transkribe metinde adlandırılmış varlık tanıma

Python ile Konuşma Dili İşleme

Daniel Bourke

Machine Learning Engineer/YouTube Creator

spaCy'yi yükleme

# spaCy'yi kurun
$ pip install spacy
# spaCy dil modelini indirin
$ python -m spacy download en_core_web_sm
Python ile Konuşma Dili İşleme

spaCy kullanımı

import spacy

# spaCy dil modelini yükleyin nlp = spacy.load("en_core_web_sm")
# Bir spaCy doc oluşturun
doc = nlp("I'd like to talk about a smartphone I ordered on July 31st from your 
Sydney store, my order number is 40939440. I spoke to Georgia about it last week.")
Python ile Konuşma Dili İşleme

spaCy belirteçleri

# Farklı belirteçleri ve konumlarını gösterin
for token in doc:
  print(token.text, token.idx)
I 0
'd 1
like 4
to 9
talk 12
about 17
a 23
smartphone 25...
Python ile Konuşma Dili İşleme

spaCy cümleleri

# Doc içindeki cümleleri gösterin
for sentences in doc.sents:
  print(sentence)
I'd like to talk about a smartphone I ordered on July 31st from your Sydney store, 
my order number is 4093829.
I spoke to one of your customer service team, Georgia, yesterday.
Python ile Konuşma Dili İşleme

spaCy adlandırılmış varlıklar

spaCy'nin yerleşik adlandırılmış varlıklarından bazıları:

  • PERSON Kurgusal olanlar dahil kişiler.
  • ORG Şirketler, kurumlar vb.
  • GPE Ülkeler, şehirler, eyaletler.
  • PRODUCT Nesneler, araçlar, yiyecekler vb. (Hizmetler değil.)
  • DATE Mutlak/göreli tarihler veya dönemler.
  • TIME Bir günden küçük zamanlar.
  • MONEY Para değerleri, birim dahil.
  • CARDINAL Diğer tiplere girmeyen sayılar.
Python ile Konuşma Dili İşleme

spaCy adlandırılmış varlıklar

# Doc içindeki adlandırılmış varlıkları bulun
for entity in doc.ents:
  print(entity.text, entity.label_)
July 31st DATE
Sydney GPE
4093829 CARDINAL
one CARDINAL
Georgia GPE
yesterday DATE
Python ile Konuşma Dili İşleme

Özel adlandırılmış varlıklar

# EntityRuler sınıfını içe aktarın
from spacy.pipeline import EntityRuler
# spaCy hattını kontrol edin
print(nlp.pipeline)
[('tagger', <spacy.pipeline.pipes.Tagger at 0x1c3aa8a470>),
 ('parser', <spacy.pipeline.pipes.DependencyParser at 0x1c3bb60588>),
 ('ner', <spacy.pipeline.pipes.EntityRecognizer at 0x1c3bb605e8>)]
Python ile Konuşma Dili İşleme

Hattı değiştirme

# EntityRuler örneği oluşturun
ruler = EntityRuler(nlp)
# Kurala belirteç deseni ekleyin
ruler.add_patterns([{"label":"PRODUCT", "pattern": "smartphone"}])
# Yeni kuralı ner'den önce hatta ekleyin
nlp.add_pipe(ruler, before="ner")
# Güncellenen hattı kontrol edin
nlp.pipeline
Python ile Konuşma Dili İşleme

Hattı değiştirme

[('tagger', <spacy.pipeline.pipes.Tagger at 0x1c1f9c9b38>),
 ('parser', <spacy.pipeline.pipes.DependencyParser at 0x1c3c9cba08>),
 ('entity_ruler', <spacy.pipeline.entityruler.EntityRuler at 0x1c1d834b70>),
 ('ner', <spacy.pipeline.pipes.EntityRecognizer at 0x1c3c9cba68>)]
Python ile Konuşma Dili İşleme

Yeni hattı test etme

# Yeni varlık kuralını test edin
for entity in doc.ents:
    print(entity.text, entity.label_)
smartphone PRODUCT
July 31st DATE
Sydney GPE
4093829 CARDINAL
one CARDINAL
Georgia GPE
yesterday DATE
Python ile Konuşma Dili İşleme

Hadi roketleyelim ve spaCy pratiği yapalım!

Python ile Konuşma Dili İşleme

Preparing Video For Download...