Bandingkan karya open source Python - libraries untuk pengakuan entitas bernama

pengantar


Kami di perusahaan menciptakan layanan yang memungkinkan Anda untuk secara otomatis membuat, mengelola, dan menyimpan perjanjian lisensi dan perjanjian lain antara freelancer dan klien mereka secara otomatis.

Untuk mengatasi masalah ini, saya mencoba lusinan solusi di bidang pemrosesan bahasa alami, termasuk solusi open source dan ingin berbagi pengalaman saya dengan open source Python - libraries untuk mengenali entitas bernama.

Entitas Bernama Yang Diakui


Beberapa kata tentang masalah itu sendiri. Named Entity Recognition (NER) adalah cabang teknologi pemrosesan bahasa manusia, implementasi perangkat lunak yang memungkinkan seseorang untuk menemukan kategori kata dan frasa yang diobjekkan dalam pidato dan teks. Pada awalnya, ini adalah nama geografis, nama orang, organisasi, alamat, tetapi sekarang konsep ini telah berkembang sangat luas dan dengan bantuan NER kami mencari dalam teks untuk tanggal relatif dan absolut, angka, angka, dll.
Identifikasi entitas bernama adalah "pintu gerbang" ke bahasa manusia, memungkinkan Anda untuk mengidentifikasi dan memproses niat seseorang, untuk membangun koneksi kata-kata dalam pidatonya dan dunia nyata.


Ketidaksetaraan bahasa


Untuk mulai dengan, saya ingin menarik perhatian pada ketimpangan yang jelas dalam solusi perangkat lunak untuk berbagai bahasa. Jadi, sebagian besar perkembangan (termasuk yang dibuat oleh programmer Rusia) bekerja dengan bahasa Inggris. Menemukan model yang siap pakai untuk Bahasa, Hindi atau Arab adalah tugas yang tidak berterima kasih.

Bahasa-bahasa Eropa paling tidak terwakili di perpustakaan paling populer, pada dasarnya bahasa Afrika tidak ada dalam Pemrosesan Bahasa Alam modern. Sementara itu, dari pengalaman saya sendiri, saya tahu bahwa benua Afrika adalah pasar yang besar dan kaya, dan sikap ini kemungkinan besar adalah kelembaman pasar.

Ada beberapa solusi untuk bahasa Rusia yang mengejutkan dalam kualitasnya, namun, mereka tidak merasakan kekuatan komersial dan potensi akademis seperti perpustakaan yang "dibangun" untuk memproses bahasa Inggris.

Teks untuk diproses


Saya mengambil beberapa saran dari sumber yang berbeda, dan menggabungkannya ke dalam teks yang agak menghipnotis untuk menguji seberapa baik perpustakaan yang dipilih akan melakukan pekerjaan mereka.

english_text = ''' I want a person available 7 days and with prompt response all most every time. Only Indian freelancer need I need PHP developer who have strong experience in Laravel and Codeigniter framework for daily 4 hours. I need this work by Monday 27th Jan. should be free from plagiarism . 
Need SAP FICO consultant for support project needs to be work on 6 months on FI AREAWe.  Want a same site to be created as the same as this https://www.facebook.com/?ref=logo, please check the site before contacting to me and i want this site to be ready in 10 days. They will be ready at noon tomorrow .'''

russian_text = '''   110     ,     .        https://www.sobyanin.ru/  , 1 .     .51 (   :  , )  ?     2107   47     24,    . 
 c        10  1970 ,     -, . ,  5/1 8 000 ( )  00  .               .              - .'''



Perpustakaan NLTK


NLTK adalah perpustakaan klasik untuk pemrosesan bahasa alami, mudah digunakan, tidak memerlukan studi jangka panjang dan melakukan 99% tugas yang mungkin timbul saat menyelesaikan masalah siswa.
import nltk
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
nltk.download('maxent_ne_chunker')
nltk.download('words')
for sent in nltk.sent_tokenize(english_text):
   for chunk in nltk.ne_chunk(nltk.pos_tag(nltk.word_tokenize(sent))):
      if hasattr(chunk, 'label'):
         print(chunk)

Keluaran: Seperti yang bisa kita lihat, NLTK melakukan pekerjaan dengan baik, tetapi untuk membuat hasilnya lebih "kaya" kita harus melatih penandanya sendiri (atau memilih yang lain dari daftar yang cukup luas). Tetapi apakah itu layak pada tahun 2020 jika ada solusi yang lebih sederhana?
(GPE Indian/JJ)
(ORGANIZATION PHP/NNP)
(GPE Laravel/NNP)
(PERSON Need/NNP)
(ORGANIZATION SAP/NNP)
(ORGANIZATION FI/NNP)




Stanford CoreNLP


gambar

Salah satu cara untuk memperluas kemampuan NLTK adalah dengan menggunakan perpustakaan Java klasik dari Stanford CoreNLP dengan perpustakaan Python klasik. Kualitas meningkat secara signifikan, dengan persyaratan yang relatif rendah.
from nltk.tag.stanford import StanfordNERTagger
jar = "stanford-ner-2015-04-20/stanford-ner-3.5.2.jar"
model = "stanford-ner-2015-04-20/classifiers/" 
st_3class = StanfordNERTagger(model + "english.all.3class.distsim.crf.ser.gz", jar, encoding='utf8') 
st_4class = StanfordNERTagger(model + "english.conll.4class.distsim.crf.ser.gz", jar, encoding='utf8') 
st_7class = StanfordNERTagger(model + "english.muc.7class.distsim.crf.ser.gz", jar, encoding='utf8')
for i in [st_3class.tag(english_text.split()), st_4class.tag(english_text.split()), st_7class.tag(english_text.split())]:
  for b in i:
    if b[1] != 'O':
        print(b)

Output: Seperti yang dapat kita lihat, kualitas output telah meningkat secara signifikan, dan sekarang, mengingat kecepatan dan kemudahan penggunaan, jelas bahwa untuk tugas-tugas sederhana NLTK cukup cocok untuk pengembangan industri.
('PHP', 'ORGANIZATION')
('Laravel', 'LOCATION')
('Indian', 'MISC')
('PHP', 'ORGANIZATION')
('Laravel', 'LOCATION')
('Codeigniter', 'PERSON')
('SAP', 'ORGANIZATION')
('FICO', 'ORGANIZATION')
('PHP', 'ORGANIZATION')
('Laravel', 'LOCATION')
('Monday', 'DATE')
('27th', 'DATE')
('Jan.', 'DATE')
('SAP', 'ORGANIZATION')



Spacy



gambar

Spacy adalah perpustakaan Python open source untuk pemrosesan bahasa alami, diterbitkan di bawah lisensi MIT (!), Itu dibuat dan dikembangkan oleh Matthew Hannibal dan Ines Montany, pendiri perusahaan pengembang Explosion.
Sebagai aturan, setiap orang yang dihadapkan dengan kebutuhan untuk menyelesaikan beberapa masalah untuk memproses bahasa alami cepat atau lambat akan belajar tentang perpustakaan ini. Sebagian besar fungsi dapat diakses "di luar kotak", pengembang berhati-hati agar perpustakaan mudah digunakan.
Space menawarkan 18 tag yang menandai entitas bernama, serta cara sederhana untuk melatih ulang model Anda sendiri. Tambahkan dokumentasi yang sangat baik, komunitas besar dan dukungan yang baik di sini - dan akan menjadi jelas mengapa solusi ini menjadi begitu populer dalam beberapa tahun terakhir.

import spacy
model_sp = en_core_web_lg.load()
for ent in model_sp(english_text).ents:
  print(ent.text.strip(), ent.label_)

Output: Seperti yang Anda lihat, hasilnya jauh lebih baik, dan kodenya lebih sederhana dan lebih mudah dimengerti. Kontra karya - model besar, operasi lambat, "tag" yang relatif tidak logis, kurangnya model untuk banyak bahasa, termasuk Rusia (meskipun ada model multibahasa).
7 days DATE
New York GPE
Indian NORP
Laravel LOC
Codeigniter NORP
4 hours TIME
Monday 27th Jan. DATE
FICO ORG
6 months DATE
10 days DATE
noon TIME
tomorrow DATE
Iceland GPE



Bakat


gambar

Flair menawarkan perendaman yang jauh lebih dalam di bidang subjek, perpustakaan diciptakan, pada kenyataannya, untuk memecahkan masalah penelitian, dokumentasi tidak buruk, tetapi dengan beberapa kegagalan, ada integrasi dengan sejumlah besar perpustakaan lain, kode yang jelas, logis dan mudah dibaca.
Perpustakaan memiliki komunitas yang maju, dan tidak hanya berorientasi pada bahasa Inggris, karena banyaknya model yang tersedia, Flair secara signifikan lebih demokratis dalam memilih bahasa daripada Spacy.
from flair.models import SequenceTagger
tagger = SequenceTagger.load('ner')
from flair.data import Sentence
s = Sentence(english_text)
tagger.predict(s)
for entity in s.get_spans('ner'):
    print(entity)

Keluaran: Seperti yang Anda lihat, model yang terlatih tidak bekerja dengan baik. Namun, beberapa orang menggunakan Flair "out of the box" - ini terutama perpustakaan untuk membuat alat mereka sendiri. Hal yang sama, dengan pemesanan, dapat dikatakan tentang perpustakaan berikutnya.
Span [6,7]: "7 days" [โˆ’ Labels: DATE (0.9329)]
Span [17]: "Indian" [โˆ’ Labels: NORP (0.9994)]
Span [35,36]: "4 hours." [โˆ’ Labels: TIME (0.7594)]
Span [42,43,44]: "Monday 27th Jan." [โˆ’ Labels: DATE (0.9109)]
Span [53]: "FICO" [โˆ’ Labels: ORG (0.6987)]
Span [63,64]: "6 months" [โˆ’ Labels: DATE (0.9412)]
Span [98,99]: "10 days." [โˆ’ Labels: DATE (0.9320)]
Span [105,106]: "noon tomorrow" [โˆ’ Labels: TIME (0.8667)]




Deeppavlov


gambar
DeepPavlov adalah perpustakaan open source yang dibangun oleh TensorFlow dan Keras.

Pengembang menyarankan menggunakan sistem terutama untuk sistem "percakapan", chat bot, dll., Tetapi perpustakaan juga sangat baik untuk memecahkan masalah penelitian. Menggunakannya "dalam produksi" tanpa kerja serius untuk "menyesuaikan" dan "menyelesaikan" solusinya adalah tugas, tampaknya, bahkan tidak dimaksudkan oleh pencipta MIPT.
Pendekatan aneh dan tidak logis untuk arsitektur kode, yang bertentangan dengan Python Zen, tetap membawa hasil yang baik jika Anda menghabiskan cukup waktu untuk menghadapinya.
from deeppavlov import configs, build_model
from deeppavlov import build_model, configs

ner_model = build_model(configs.ner.ner_ontonotes_bert, download=True)
result = ner_model([english_text])
for i in range(len(result[0][0])):
     if result [1][0][i] != 'O':
         print(result[0][0][i], result[1][0][i])

Keluaran: Hasilnya dapat diprediksi, dimengerti, terperinci dan salah satu yang terbaik. Model itu sendiri juga dapat digunakan secara langsung dalam Hugging Face Transformers, yang menghilangkan, dalam banyak hal, klaim arsitektur kode.
7 B-DATE
days I-DATE
Indian B-NORP
Laravel B-PRODUCT
Codeigniter B-PRODUCT
daily B-DATE
4 B-TIME
hours I-TIME
Monday B-DATE
27th I-DATE
Jan I-DATE
6 B-DATE
months I-DATE
FI B-PRODUCT
AREAWe I-PRODUCT
10 B-DATE
days I-DATE
noon B-TIME
tomorrow B-DATE




deepmipt / ner


Ini sebenarnya adalah perpustakaan tempat Deep Pavlov memulai. Ini dapat digunakan untuk memahami arah pemikiran pengembang dan kemajuan yang telah mereka buat.
import ner
example = russian_text
def deepmint_ner(text):
  extractor = ner.Extractor()
  for m in extractor(text):
     print(m)
deepmint_ner(example)

Keluaran:
Match(tokens=[Token(span=(7, 13), text='')], span=Span(start=7, end=13), type='LOC')
Match(tokens=[Token(span=(492, 499), text='')], span=Span(start=492, end=499), type='PER')
Match(tokens=[Token(span=(511, 520), text=''), Token(span=(521, 525), text='')], span=Span(start=511, end=525), type='PER')
Match(tokens=[Token(span=(591, 600), text='')], span=Span(start=591, end=600), type='LOC')
Match(tokens=[Token(span=(814, 820), text=''), Token(span=(821, 829), text='')], span=Span(start=814, end=829), type='PER')


Poliglot


Salah satu perpustakaan tertua, kerja cepat, dan sejumlah besar bahasa yang didukung membuatnya tetap populer. Di sisi lain, lisensi virus GPLv3 tidak mengizinkan penggunaan penuh dalam pengembangan komersial.
from polyglot.text import Text
for ent in Text(english_text).entities:
 print(ent[0],ent.tag)

Output: Dan untuk bahasa Rusia:
Laravel I-LOC
SAP I-ORG
FI I-ORG


!polyglot download embeddings2.ru ner2.ru
for ent in Text(russian_text).entities:
 print(ent[0],ent.tag)

Keluaran: Hasilnya bukan yang terbaik, tetapi kecepatan dan dukungan yang baik dapat meningkatkannya jika Anda berusaha.
24 I-ORG
I-PER
I-LOC
I-PER
I-ORG
I-PER




AdaptNLP


gambar
Perpustakaan baru lainnya dengan ambang masuk yang sangat rendah untuk peneliti.
AdaptNLP memungkinkan pengguna, dari siswa hingga insinyur data berpengalaman, untuk menggunakan model NLP modern dan metode pelatihan.
Perpustakaan ini dibangun di atas perpustakaan Flair and Hugging Face Transformers yang populer.

from adaptnlp import EasyTokenTagger
tagger = EasyTokenTagger()
sentences = tagger.tag_text(
    text = english_text, model_name_or_path = "ner-ontonotes"
)
spans = sentences[0].get_spans("ner")
for sen in sentences:
    for entity in sen.get_spans("ner"):
        print(entity)

Keluaran: Hasilnya dapat diterima, tetapi perpustakaan memungkinkan Anda untuk menggunakan berbagai model untuk menyelesaikan tugas, dan dapat berulang kali ditingkatkan jika Anda melakukan upaya (tapi mengapa, jika Anda memiliki Flair dan Hugging Face Transformers secara langsung). Namun demikian, kesederhanaan, daftar tugas yang besar dan arsitektur yang baik, serta upaya sistematis dari pengembang memungkinkan kita untuk berharap bahwa perpustakaan memiliki masa depan.
DATE-span [6,7]: "7 days"
NORP-span [18]: "Indian"
PRODUCT-span [30]: "Laravel"
TIME-span [35,36,37]: "daily 4 hours"
DATE-span [44,45,46]: "Monday 27th Jan."
ORG-span [55]: "FICO"
DATE-span [65,66]: "6 months"
DATE-span [108,109]: "10 days"
TIME-span [116,117]: "noon tomorrow"




Bait


gambar
Stanza dari StanfordNlp adalah hadiah untuk pengembang pada tahun 2020 dari Universitas Stanford. Kekurangan yang dimiliki Spacy adalah multibahasa, perendaman mendalam dalam bahasa tersebut dan kemudahan penggunaannya.
Jika komunitas mendukung perpustakaan ini, ia memiliki peluang untuk menjadi salah satu yang paling populer.
import stanza
stanza.download('en')
def stanza_nlp(text):
  nlp = stanza.Pipeline(lang='en', processors='tokenize,ner')
  doc = nlp(text)
  print(*[f'entity: {ent.text}\ttype: {ent.type}' for sent in doc.sentences for ent in sent.ents], sep='\n')
stanza_nlp(english_text)

Output: Dan untuk bahasa Rusia:
entity: 7 days type: DATE
entity: Indian type: NORP
entity: Laravel type: ORG
entity: Codeigniter type: PRODUCT
entity: daily 4 hours type: TIME
entity: Monday 27th Jan. type: DATE
entity: SAP type: ORG
entity: FICO type: ORG
entity: 6 months type: DATE
entity: FI AREAWe type: ORG
entity: 10 days type: DATE
entity: noon tomorrow type: TIME



import stanza
stanza.download('ru')
def stanza_nlp_ru(text):
  nlp = stanza.Pipeline(lang='ru', processors='tokenize,ner')
  doc = nlp(text)
  print(*[f'entity: {ent.text}\ttype: {ent.type}' for sent in doc.sentences for ent in sent.ents], sep='\n')
stanza_nlp_ru(russian_text)

Output: Kerja cepat, kode yang indah, hasil yang baik.
2020-05-15 08:01:18 INFO: Use device: cpu
2020-05-15 08:01:18 INFO: Loading: tokenize
2020-05-15 08:01:18 INFO: Loading: ner
2020-05-15 08:01:19 INFO: Done loading processors!
entity: type: LOC
entity: type: LOC
entity: type: PER
entity: 2107 type: MISC
entity: 47 type: MISC
entity: 24 type: MISC
entity: type: PER
entity: - type: LOC
entity: . type: LOC
entity: type: LOC
entity: type: LOC
entity: type: PER




Allennlp


gambar
Perpustakaan untuk penelitian, dibangun di atas PyTorch /
Di satu sisi - arsitektur sederhana dan kecepatan cepat, di sisi lain, pengembang terus mengubah sesuatu dalam arsitektur, yang memengaruhi pekerjaan perpustakaan secara keseluruhan.
from allennlp.predictors.predictor import Predictor
import allennlp_models.ner.crf_tagger
predictor = Predictor.from_path("https://storage.googleapis.com/allennlp-public-models/ner-model-2020.02.10.tar.gz")
allen_result = predictor.predict(
  sentence=english_text
)
for i in zip(allen_result['tags'], allen_result['words']):
    if (i[0]) != 'O':
      print(i)

Output:
('U-MISC', 'India')
('U-ORG', 'PHP')
('U-MISC', 'Laravel')
('U-MISC', 'Codeigniter')
('B- ORG ',' SAP ')
(' L-ORG ',' FICO ')
Modul ini bekerja dengan cepat, tetapi hasilnya sangat buruk.

Hanlp


gambar
HanLP adalah salah satu perpustakaan open source dari pengembang dari Cina. Proyek aktif, cerdas, berkembang dengan baik, yang, menurut saya, akan menemukan ceruknya di luar perbatasan Kekaisaran Langit.
Perpustakaan NLP untuk para peneliti dan perusahaan yang dibuat di TensorFlow 2.0.
HanLP hadir dengan model yang sudah disiapkan untuk berbagai bahasa, termasuk Inggris, Cina dan banyak lainnya.
Satu-satunya masalah adalah kualitas output "melompat" setelah setiap pembaruan perpustakaan.
recognizer = hanlp.load(hanlp.pretrained.ner.MSRA_NER_BERT_BASE_ZH)
recognizer([list('ไธŠๆตทๅŽๅฎ‰ๅทฅไธš๏ผˆ้›†ๅ›ข๏ผ‰ๅ…ฌๅธ่‘ฃไบ‹้•ฟ่ฐญๆ—ญๅ…‰ๅ’Œ็ง˜ไนฆๅผ ๆ™š้œžๆฅๅˆฐ็พŽๅ›ฝ็บฝ็บฆ็Žฐไปฃ่‰บๆœฏๅš็‰ฉ้ฆ†ๅ‚่ง‚ใ€‚'),
                list('่จๅ“ˆๅคซ่ฏด๏ผŒไผŠๆ‹‰ๅ…‹ๅฐ†ๅŒ่”ๅˆๅ›ฝ้”€ๆฏไผŠๆ‹‰ๅ…‹ๅคง่ง„ๆจกๆ€ไผคๆ€งๆญฆๅ™จ็‰นๅˆซๅง”ๅ‘˜ไผš็ปง็ปญไฟๆŒๅˆไฝœใ€‚')])

Keluaran:

[[('ไธŠๆตทๅŽๅฎ‰ๅทฅไธš๏ผˆ้›†ๅ›ข๏ผ‰ๅ…ฌๅธ', 'NT', 0, 12), ('่ฐญๆ—ญๅ…‰', 'NR', 15, 18),
('ๅผ ๆ™š้œž', 'NR', 21, 24),
('็พŽๅ›ฝ', 'NS', 26, 28),
('็บฝ็บฆ็Žฐไปฃ่‰บๆœฏๅš็‰ฉ้ฆ†', 'NS', 28, 37)],
[('่จๅ“ˆๅคซ', 'NR', 0, 3),
('ไผŠๆ‹‰ๅ…‹', 'NS', 5, 8),
('่”ๅˆๅ›ฝ้”€ๆฏไผŠๆ‹‰ๅ…‹ๅคง่ง„ๆจกๆ€ไผคๆ€งๆญฆๅ™จ็‰นๅˆซๅง”ๅ‘˜ไผš', 'NT', 10, 31)]]


import hanlp
tokenizer = hanlp.utils.rules.tokenize_english
testing = tokenizer('Need SAP FICO consultant for support project needs to be work on 6 months on FI AREAWe')
recognizer = hanlp.load(hanlp.pretrained.ner.CONLL03_NER_BERT_BASE_UNCASED_EN)
recognizer(testing)

Output: Untuk bahasa Inggris, hasilnya tidak stabil, tetapi ini diselesaikan menggunakan tokenizer dari NLTK.
[('SAP FICO', 'ORG', 1, 3)]




PullEnti


Pustaka C # untuk NER dalam bahasa Rusia. Pada 2016, ia memenangkan tempat pertama dalam kompetisi factRuEval-2016. Pada tahun 2018, penulis memporting kode ke Java dan Python.
Mungkin solusi tercantik untuk bahasa Rusia.
Cepat, dalam, dengan perhatian pada detail. Keputusan ini berdasarkan aturan, yang secara alami membatasi pengembangannya, tetapi otonomi, kecepatan dan hasilnya memungkinkan kami untuk berharap untuk pengembangan proyek.
Ada python-wrapper untuk perpustakaan, meskipun terlihat โ€œterbengkalaiโ€.
from pullenti_wrapper.processor import (
    Processor,
    MONEY,
    URI,
    PHONE,
    DATE,
    KEYWORD,
    DEFINITION,
    DENOMINATION,
    MEASURE,
    BANK,
    GEO,
    ADDRESS,
    ORGANIZATION,
    PERSON,
    MAIL,
    TRANSPORT,
    DECREE,
    INSTRUMENT,
    TITLEPAGE,
    BOOKLINK,
    BUSINESS,
    NAMEDENTITY,
    WEAPON,
)

processor = Processor([PERSON, ORGANIZATION, GEO, DATE, MONEY])
text = russian_text
result = processor(text)
result.graph


Keluaran:gambar

Natasha


gambar
Natasha, ini tampaknya menjadi salah satu proyek NLP utama untuk bahasa Rusia. Ini memiliki sejarah panjang, dan dimulai dengan solusi berbasis aturan yang dikembangkan melalui Yargy Parser yang populer, dan sekarang menyelesaikan tugas NLP utama untuk bahasa Rusia: tokenization, segmentasi kalimat, lemmatization, normalisasi frase, parsing, NER-tagging, ekstraksi fakta.
from natasha import (
    Segmenter,
    MorphVocab,
    
    NewsEmbedding,
    NewsMorphTagger,
    NewsSyntaxParser,
    NewsNERTagger,
    
    PER,
    NamesExtractor,

    Doc
)

segmenter = Segmenter()
morph_vocab = MorphVocab()

emb = NewsEmbedding()
morph_tagger = NewsMorphTagger(emb)
syntax_parser = NewsSyntaxParser(emb)
ner_tagger = NewsNERTagger(emb)

names_extractor = NamesExtractor(morph_vocab)

doc = Doc(russian_text)

Keluaran: Hasilnya, sayangnya, tidak stabil, berbeda dengan aturan khusus Yargy Parser dari pengembang yang sama, bagaimanapun, proyek ini aktif berkembang, dan menunjukkan hasil yang layak untuk penggunaan komersial.
110 ,
LOCโ”€โ”€โ”€
.
https://www.sobyanin.ru/ , 1 .
.51 ( :
LOCโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
, ) ?
ORG PERโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
2107 47
24, .
ORGโ”€โ”€
c
PERโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
10 1970 ,
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
-, . , 5/1 8 000 ( )
LOCโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ PERโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
00
LO
.

PERโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
- .




kutu buku


Modul terakhir adalah proyek pribadi, tidak terlalu populer, dibangun di atas Spacy dan Thinc dan, bagaimanapun, layak mendapat perhatian pada pendekatan yang dipilih untuk arsitektur (penekanan pada kemudahan penggunaan).
from nerd import ner
doc_nerd_d = ner.name(english_text)
text_label = [(X.text, X.label_) for X in doc_nerd_d]
print(text_label)


Keluaran: Dari semua proyek, yang paling "seimbang" dan nyaman, dengan hasil yang dapat diterima dan kemudahan penggunaan bagi saya adalah Stanza dari StanfordNlp - karya sebagian besar bahasa, studi akademis berkualitas tinggi dan dukungan komunitas ilmiah universitas itu sendiri menjadikan proyek itu paling menjanjikan, menurut pendapat saya . Lain kali saya akan membagikan pengalaman saya tentang bekerja dengan solusi "tertutup" dan API yang diusulkan untuk pemrosesan bahasa alami. Semua Kode Tersedia oleh Google Colab
[('7 days', 'DATE'), ('Indian', 'NORP'), ('PHP', 'ORG'), ('Laravel', 'GPE'), ('daily 4 hours', 'DATE'), ('Monday 27th Jan.', 'DATE'), ('Need SAP FICO', 'PERSON'), ('6 months', 'DATE'), ('10 days', 'DATE'), ('noon', 'TIME'), ('tomorrow', 'DATE')]







All Articles