Rumah  >  Artikel  >  pembangunan bahagian belakang  >  ETL: Mengekstrak Nama Orang daripada Teks

ETL: Mengekstrak Nama Orang daripada Teks

Linda Hamilton
Linda Hamiltonasal
2024-10-08 06:20:30748semak imbas

Katakan kita mahu mengikis chicagomusiccompass.com.

Seperti yang anda lihat, ia mempunyai beberapa kad, setiap satu mewakili acara. Sekarang, mari lihat yang seterusnya:

ETL: Extracting a Person

Perhatikan bahawa nama acara ialah:


jazmin bean: the traumatic livelihood tour


Jadi sekarang persoalannya ialah: Bagaimanakah kita mengeluarkan nama artis daripada teks?

Sebagai manusia, saya boleh "dengan mudah" memberitahu bahawa jazmin bean ialah artisnya—lihat sahaja halaman wiki mereka. Tetapi menulis kod untuk mengekstrak nama itu boleh menjadi rumit.

Kita boleh fikir, "Hei, apa-apa sebelum : sepatutnya nama artis," yang nampaknya bijak, bukan? Ia berfungsi untuk kes ini, tetapi bagaimana pula dengan yang ini:


happy hour on the patio: kathryn & chris


Di sini, pesanan terbalik. Kami boleh terus menambah logik untuk mengendalikan kes yang berbeza, tetapi tidak lama lagi kami akan mendapat satu tan peraturan yang rapuh dan mungkin tidak meliputi segala-galanya.

Di situlah model Pengiktirafan Entiti Dinamakan (NER) berguna. Ia adalah sumber terbuka dan boleh membantu kami mengekstrak nama daripada teks. Ia tidak akan menangkap setiap kes, tetapi kebanyakan masa, mereka akan memberi kami maklumat yang kami perlukan.

Dengan pendekatan ini, pengekstrakan menjadi lebih mudah. Saya akan menggunakan Python kerana komuniti di sekitar Pembelajaran Mesin dalam Python sememangnya tiada tandingan.


from gliner import GLiNER

model = GLiNER.from_pretrained("urchade/gliner_base")

text = "jazmin bean: the traumatic livelihood tour"
labels = ["person", "bands", "projects"]
entities = model.predict_entities(text, labels)

for entity in entities:
    print(entity["text"], "=>", entity["label"])


Yang menjana output:


jazmin bean => person


Sekarang, mari kita lihat kes lain itu:


happy hour on the patio: kathryn & chris


Output:


kathryn => person
chris => person


sumber-GLiNER

Hebat, bukan? Tiada lagi logik yang membosankan untuk mengekstrak nama, hanya gunakan model. Sudah tentu, ia tidak akan merangkumi setiap kes yang mungkin, tetapi untuk projek saya, tahap fleksibiliti ini berfungsi dengan baik. Jika anda memerlukan lebih ketepatan, anda sentiasa boleh:

  • Cuba model lain
  • Menyumbang kepada model sedia ada
  • Bantu projek dan ubah suai agar sesuai dengan keperluan anda

Kesimpulan

Sebagai Pembangun Perisian, amat disyorkan untuk sentiasa dikemas kini dengan alatan dalam ruang Pembelajaran Mesin. Tidak semuanya boleh diselesaikan dengan hanya pengaturcaraan dan logik biasa—sesetengah cabaran ditangani dengan lebih baik menggunakan model dan statistik.

Atas ialah kandungan terperinci ETL: Mengekstrak Nama Orang daripada Teks. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn