POS Tagging dengan NLTK dan Chunking di NLP (CONTOH)

Isi kandungan:

Anonim

Penandaan POS

POS Tagging (Parts of Speech Tagging) adalah proses untuk menandai kata-kata dalam format teks untuk bahagian tertentu dari ucapan berdasarkan definisi dan konteksnya. Ia bertanggung jawab untuk membaca teks dalam bahasa dan memberikan beberapa token tertentu (Parts of Speech) untuk setiap perkataan. Ia juga disebut penandaan tatabahasa.

Mari belajar dengan contoh Bahagian Ucapan NLTK:

Input: Segala-galanya untuk membolehkan kami.

Keluaran : [('Semuanya', NN), ('hingga', TO), ('izin', VB), ('kami', PRP)]

Langkah-langkah yang terlibat dalam contoh pemberian tag POS:

  • Tokenize teks (kata_tokenize)
  • gunakan pos_tag ke langkah di atas iaitu nltk.pos_tag (tokenize_text)

Contoh NLTK POS Tags adalah seperti di bawah:

Singkatan Makna
CC koordinasi penyelarasan
CD digit kardinal
DT penentu
CEMERLANG wujud di sana
FW perkataan asing
DALAM kata hubung preposisi / bawahan
JJ Tag POS NLTK ini adalah kata sifat (besar)
JJR kata sifat, perbandingan (lebih besar)
JJS kata sifat, superlatif (terbesar)
LS senarai pasaran
MD modal (boleh, akan)
NN kata nama, tunggal (kucing, pokok)
NNS kata nama jamak (meja)
NNP kata nama betul, tunggal (sarah)
NNPS kata nama yang betul, jamak (orang India atau orang Amerika)
PDT penentu (semua, kedua-duanya, separuh)
POS akhiran posesif (ibu bapa)
PRP kata ganti diri (miliknya, dirinya, dia, dirinya sendiri)
PRP $ kata ganti posesif (dia, miliknya, milik saya, kami)
RB kata keterangan (kadang-kadang, pantas)
RBR kata keterangan, perbandingan (lebih besar)
RBS kata keterangan, superlatif (terbesar)
RP zarah (kira-kira)
KE penanda tak terhingga (hingga)
UH gangguan (selamat tinggal)
VB kata kerja (tanya)
VBG kata kerja gerund (menilai)
VBD kata kerja lalu tegang (memohon)
VBN kata kerja past participle (disatukan semula)
VBP kata kerja, present tense not 3rd person singular (bungkus)
VBZ kata kerja, hadir tegang dengan orang ketiga tunggal (asas)
WDT penentu wh (itu, apa)
WP kata ganti (siapa)
WRB wh- kata keterangan (bagaimana)

Senarai teg NLTK POS di atas mengandungi semua Tag POS NLTK. Penanda tag NLTK POS digunakan untuk memberikan maklumat tatabahasa bagi setiap perkataan ayat. Memasang, Mengimport dan memuat turun semua pakej POS NLTK selesai.

Apa itu Chunking di NLP?

Chunking dalam NLP adalah proses untuk mengambil maklumat kecil dan mengelompokkannya ke dalam unit besar. Penggunaan utama Chunking adalah membuat kumpulan "frasa nama." Ia digunakan untuk menambahkan struktur pada ayat dengan mengikuti penandaan POS yang digabungkan dengan ungkapan biasa. Kumpulan kata yang dihasilkan disebut "potongan". Ia juga disebut parsing cetek.

Dalam parsing cetek, terdapat maksimum satu aras antara akar dan daun sementara parsing mendalam terdiri dari lebih dari satu tingkat. Parsing cetek juga disebut parsing ringan atau chunking.

Peraturan untuk Chunking:

Tidak ada peraturan yang ditentukan sebelumnya, tetapi anda boleh menggabungkannya mengikut keperluan dan kehendak.

Contohnya, anda perlu menandai kata nama, kata kerja (masa lalu), kata sifat, dan simpang koordinasi dari ayat. Anda boleh menggunakan peraturan seperti di bawah

potongan: {*** ?}

Jadual berikut menunjukkan maksud pelbagai simbol:

Nama simbol Penerangan
. Mana-mana watak kecuali barisan baru
* Padankan pengulangan 0 atau lebih
? Padankan pengulangan 0 atau 1

Sekarang Mari kita tulis kod untuk memahami peraturan dengan lebih baik

from nltk import pos_tagfrom nltk import RegexpParsertext ="learn php from guru99 and make study easy".split()print("After Split:",text)tokens_tag = pos_tag(text)print("After Token:",tokens_tag)patterns= """mychunk:{***?}"""chunker = RegexpParser(patterns)print("After Regex:",chunker)output = chunker.parse(tokens_tag)print("After Chunking",output)

Pengeluaran

After Split: ['learn', 'php', 'from', 'guru99', 'and', 'make', 'study', 'easy']After Token: [('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN'), ('and', 'CC'), ('make', 'VB'), ('study', 'NN'), ('easy', 'JJ')]After Regex: chunk.RegexpParser with 1 stages:RegexpChunkParser with 1 rules:***?'>After Chunking (S(mychunk learn/JJ)(mychunk php/NN)from/IN(mychunk guru99/NN and/CC)make/VB(mychunk study/NN easy/JJ))

Kesimpulan dari contoh Python penandaan Bahagian Ucapan di atas: "make" adalah kata kerja yang tidak termasuk dalam peraturan, jadi ia tidak ditandai sebagai mychunk

Gunakan Case of Chunking

Chunking digunakan untuk pengesanan entiti. Entiti adalah bahagian ayat yang mana mesin memperoleh nilai untuk niat apa pun

Example:Temperature of New York.Here Temperature is the intention and New York is an entity.

Dengan kata lain, chunking digunakan sebagai memilih subset token. Ikuti kod di bawah ini untuk memahami bagaimana penggunaan chunking untuk memilih token. Dalam contoh ini, anda akan melihat grafik yang sesuai dengan sebilangan frasa nama. Kami akan menulis kod dan melukis grafik untuk pemahaman yang lebih baik.

Kod untuk Menunjukkan Kes Penggunaan

import nltktext = "learn php from guru99"tokens = nltk.word_tokenize(text)print(tokens)tag = nltk.pos_tag(tokens)print(tag)grammar = "NP: {
?*}"cp =nltk.RegexpParser(grammar)result = cp.parse(tag)print(result)result.draw() # It will draw the pattern graphically which can be seen in Noun Phrase chunking

Keluaran :

['learn', 'php', 'from', 'guru99'] -- These are the tokens[('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN')] -- These are the pos_tag(S (NP learn/JJ php/NN) from/IN (NP guru99/NN)) -- Noun Phrase Chunking

Grafik

Graf Noun Frasa Nama

Dari grafik, kita dapat menyimpulkan bahawa "belajar" dan "guru99" adalah dua token yang berbeza tetapi dikategorikan sebagai Frasa Nama manakala token "dari" bukan milik Frasa Nama.

Chunking digunakan untuk mengkategorikan token yang berbeza menjadi bahagian yang sama. Hasilnya akan bergantung pada tatabahasa yang telah dipilih. Selanjutnya Chunking NLTK digunakan untuk menandai corak dan untuk meneroka korporat teks.

Ringkasan

  • POS Tagging dalam NLTK adalah proses untuk menandai kata-kata dalam format teks untuk bahagian tertentu dari ucapan berdasarkan definisi dan konteksnya.
  • Beberapa contoh penandaan NLTK POS adalah: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO, dll.
  • POS tagger digunakan untuk memberikan maklumat tatabahasa setiap perkataan ayat. Memasang, Mengimport dan memuat turun semua pakej penandaan Bahagian Ucapan dengan NLTK selesai.
  • Chunking dalam NLP adalah proses untuk mengambil maklumat kecil dan mengelompokkannya ke dalam unit besar.
  • Tidak ada peraturan yang ditentukan sebelumnya, tetapi anda boleh menggabungkannya mengikut keperluan dan kehendak.
  • Chunking digunakan untuk pengesanan entiti. Entiti adalah bahagian ayat yang mana mesin memperoleh nilai untuk niat apa pun
  • Chunking digunakan untuk mengkategorikan token yang berbeza menjadi bahagian yang sama.