Yazıya dökülmüş 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

# Install spaCy
$ pip install spacy
# Download spaCy language model
$ python -m spacy download en_core_web_sm
Python ile Konuşma Dili İşleme

spaCy kullanımı

import spacy

# Load spaCy language model nlp = spacy.load("en_core_web_sm")
# Create a spaCy doc
text = ("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.")
doc = nlp(text)
Python ile Konuşma Dili İşleme

spaCy belirteçleri

# Show different tokens and positions
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

# Show sentences in doc
for sentence 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 İnsanlar, kurgu dahil.
  • 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 türlere girmeyen sayılar.
Python ile Konuşma Dili İşleme

spaCy adlandırılmış varlıklar

# Find named entities in doc
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

# Check spaCy pipeline
print(nlp.pipe_names)
['tok2vec', 'tagger', 'parser',
 'attribute_ruler', 'lemmatizer', 'ner']
Python ile Konuşma Dili İşleme

İşlem hattını değiştirme

# Add entity_ruler to the pipeline, before ner
ruler = nlp.add_pipe("entity_ruler", before="ner")
# Add token pattern to ruler
ruler.add_patterns([{"label":"PRODUCT", "pattern": "smartphone"}])
# Check updated pipeline
nlp.pipe_names
Python ile Konuşma Dili İşleme

İşlem hattını değiştirme

['tok2vec', 'tagger', 'parser', 'attribute_ruler',
 'lemmatizer', 'entity_ruler', 'ner']
Python ile Konuşma Dili İşleme

Yeni işlem hattını test etme

# Recreate the doc with the updated pipeline
doc = nlp(text)
# Test new entity rule
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

Haydi gaza basalım ve spaCy ile pratik yapalım!

Python ile Konuşma Dili İşleme

Preparing Video For Download...