Xử lý Ngôn ngữ Nói bằng Python
Daniel Bourke
Machine Learning Engineer/YouTube Creator
# Cài đặt spaCy
$ pip install spacy
# Tải mô hình ngôn ngữ spaCy
$ python -m spacy download en_core_web_sm
import spacy# Tải mô hình ngôn ngữ spaCy nlp = spacy.load("en_core_web_sm")
# Tạo một doc của spaCy
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)
# Hiển thị các token và vị trí
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...
# Hiển thị các câu trong 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.
Một số thực thể có tên dựng sẵn của spaCy:
# Tìm thực thể có tên trong doc
for entity in doc.ents:
print(entity.text, entity.label_)
July 31st DATE
Sydney GPE
4093829 CARDINAL
one CARDINAL
Georgia GPE
yesterday DATE
# Kiểm tra pipeline của spaCy
print(nlp.pipe_names)
['tok2vec', 'tagger', 'parser',
'attribute_ruler', 'lemmatizer', 'ner']
# Thêm entity_ruler vào pipeline, trước ner
ruler = nlp.add_pipe("entity_ruler", before="ner")
# Thêm mẫu token vào ruler
ruler.add_patterns([{"label":"PRODUCT", "pattern": "smartphone"}])
# Kiểm tra pipeline đã cập nhật
nlp.pipe_names
['tok2vec', 'tagger', 'parser', 'attribute_ruler',
'lemmatizer', 'entity_ruler', 'ner']
# Tạo lại doc với pipeline mới
doc = nlp(text)
# Kiểm thử quy tắc thực thể mới
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
Xử lý Ngôn ngữ Nói bằng Python