Rumah > pembangunan bahagian belakang > Tutorial Python > Pemprosesan bahasa semula jadi dengan Python dan NLTK

Pemprosesan bahasa semula jadi dengan Python dan NLTK

WBOY
Lepaskan: 2023-08-20 12:57:18
ke hadapan
1698 orang telah melayarinya

Pemprosesan bahasa semula jadi dengan Python dan NLTK

Bidang kecerdasan buatan yang dikenali sebagai "pemprosesan bahasa semula jadi" (NLP) memfokuskan pada cara komputer berinteraksi dengan bahasa manusia. Ia melibatkan penciptaan algoritma dan model yang membolehkan komputer memahami, mentafsir dan menjana bahasa manusia. Pustaka Natural Language Toolkit (NLTK) dan Python, bahasa pengaturcaraan tujuan umum, menyediakan alatan dan sumber yang berkuasa untuk tugasan NLP. Dalam artikel ini, kami akan meneroka asas NLP menggunakan Python dan NLTK dan bagaimana ia boleh digunakan dalam pelbagai aplikasi NLP.

Fahami pemprosesan bahasa semula jadi

Pemprosesan bahasa semula jadi merangkumi pelbagai tugas yang pelbagai, termasuk menjawab soalan, terjemahan mesin, analisis sentimen, pengecaman entiti bernama dan klasifikasi teks. Pemahaman dan penghasilan bahasa adalah dua kategori luas di mana tugas-tugas ini boleh dibahagikan.

Fahami bahasa

Memahami bahasa ialah langkah pertama dalam pemprosesan bahasa semula jadi. Pembahagian perkataan, penyusunan, lemmatisasi, penandaan sebahagian daripada pertuturan dan analisis sintaksis adalah beberapa tugas yang terlibat. NLTK menyediakan alat dan sumber lengkap yang diperlukan untuk menyelesaikan tugasan ini dengan cepat.

Mari kita menyelami beberapa contoh kod untuk melihat cara NLTK boleh digunakan untuk menyelesaikan tugasan ini:

Tokenisasi

Tokenisasi ialah proses memecahkan teks kepada perkataan atau ayat komponennya. NLTK menyediakan beberapa tokenizer yang boleh mengendalikan pelbagai bahasa dan keperluan tokenisasi. Contoh pembahagian ayat kepada perkataan adalah seperti berikut:

import nltk
nltk.download('punkt')

from nltk.tokenize import word_tokenize

sentence = "Natural Language Processing is amazing!"
tokens = word_tokenize(sentence)
print(tokens)
Salin selepas log masuk

Output

['Natural', 'Language', 'Processing', 'is', 'amazing', '!']
Salin selepas log masuk

Stemming dan lemmatization

Stemming dan lemmatisasi bertujuan untuk mengurangkan perkataan kepada bentuk akarnya. NLTK menyediakan algoritma untuk stemming dan lemmatization, seperti PorterStemmer dan WordNetLemmatizer. Berikut adalah contoh:

from nltk.stem import PorterStemmer, WordNetLemmatizer

stemmer = PorterStemmer()
lemmatizer = WordNetLemmatizer()

word = "running"
stemmed_word = stemmer.stem(word)
lemmatized_word = lemmatizer.lemmatize(word)

print("Stemmed Word:", stemmed_word)
print("Lemmatized Word:", lemmatized_word)
Salin selepas log masuk

Output

Stemmed Word: run
Lemmatized Word: running
Salin selepas log masuk

Sebahagian daripada Penandaan Ucapan

Pelabelan sebahagian daripada pertuturan memberikan label tatabahasa kepada perkataan dalam ayat, seperti kata nama, kata kerja, kata adjektif, dsb. Ia membantu dalam memahami struktur sintaksis ayat dan penting untuk tugasan seperti mengenal pasti entiti yang dinamakan dan ringkasan teks. Berikut adalah contoh:

nltk.download('averaged_perceptron_tagger')

from nltk import pos_tag
from nltk.tokenize import word_tokenize

sentence = "NLTK makes natural language processing easy."
tokens = word_tokenize(sentence)
pos_tags = pos_tag(tokens)

print(pos_tags)
Salin selepas log masuk

Output

[('NLTK', 'NNP'), ('makes', 'VBZ'), ('natural', 'JJ'), ('language', 'NN'), ('processing', 'NN'), ('easy', 'JJ'), ('.', '.')]
Salin selepas log masuk

Analisis sintaksis

Untuk mewakili ayat dalam struktur seperti pokok yang dipanggil pokok parse, analisis sintaksis melibatkan menganalisis struktur tatabahasa ayat. Analisis sintaksis disediakan oleh penghurai NLTK. Contoh penggunaan RecursiveDescentParser adalah seperti berikut:

nltk.download('averaged_perceptron_tagger')
nltk.download('maxent_ne_chunkchunker')

from nltk import pos_tag, RegexpParser
from nltk.tokenize import word_tokenize

sentence = "The cat is sitting on the mat."
tokens = word_tokenize(sentence)
pos_tags = pos_tag(tokens)

grammar = r"""
    NP: {<DT>?<JJ>*<NN>}   # NP
    VP: {<VB.*><NP|PP>?}  # VP
    PP: {<IN><NP>}        # PP
    """

parser = RegexpParser(grammar)
parse_tree = parser.parse(pos_tags)

parse_tree.pretty_print()

Salin selepas log masuk

Output

                 S
     ____________|___
    |                VP
    |     ___________|____
    |    |                PP
    |    |            ____|___
    NP   |           NP       |
    |    |    _______|___     |
    DT   VBZ  JJ         NN   IN
    |    |    |          |    |
  The  is sitting       cat  on  the mat

Salin selepas log masuk

Jana bahasa

Selain pemahaman bahasa, Natural Language Processing (NLP) melibatkan kebolehan mencipta sesuatu yang menyerupai bahasa manusia. Menggunakan kaedah seperti pemodelan bahasa, penjanaan teks dan terjemahan mesin, NLTK menyediakan alatan untuk menjana teks. Rangkaian saraf berulang (RNN) dan pengubah bentuk ialah model bahasa berasaskan pembelajaran mendalam yang membantu meramal dan menjana teks koheren kontekstual.

Apl untuk pemprosesan bahasa semula jadi menggunakan Python dan NLTK

  • Analisis Sentimen: Analisis sentimen bertujuan untuk menentukan sentimen yang dinyatakan dalam teks tertentu, sama ada positif, negatif atau neutral. Menggunakan NLTK, anda boleh melatih pengelas pada set data berlabel untuk mengklasifikasikan sentimen secara automatik dalam ulasan pelanggan, siaran media sosial atau sebarang data teks lain.

  • Klasifikasi Teks: Klasifikasi teks ialah proses mengklasifikasikan dokumen teks ke dalam kategori atau kelas yang telah ditetapkan. NLTK termasuk beberapa algoritma dan teknik, termasuk Naive Bayes, Mesin Vektor Sokongan (SVM) dan Pokok Keputusan, yang boleh digunakan untuk tugas seperti pengesanan spam, klasifikasi topik dan klasifikasi sentimen.

  • Pengiktirafan Entiti Dinamakan: Pengiktirafan Entiti Dinamakan (NER) dapat mengenal pasti dan mengelaskan entiti yang dinamakan, seperti nama orang, organisasi, lokasi dan tarikh, dalam teks yang diberikan. NLTK menyediakan model dan alatan pra-latihan yang boleh melaksanakan NER pada pelbagai jenis data teks untuk mencapai aplikasi seperti pengekstrakan maklumat dan menjawab soalan.

  • Terjemahan Mesin: NLTK membolehkan pengaturcara mencipta aplikasi yang boleh menterjemah teks secara automatik daripada satu bahasa ke bahasa lain dengan menyediakan akses kepada alatan terjemahan mesin seperti Terjemahan Google. Untuk menghasilkan terjemahan yang tepat, sistem ini menggunakan model berasaskan statistik dan rangkaian saraf yang berkuasa.

  • Ringkasan Teks: Menggunakan Pemprosesan Bahasa Semulajadi (NLP) untuk menjana ringkasan dokumen atau artikel yang panjang secara automatik. Algoritma NLP boleh menghasilkan ringkasan ringkas yang menangkap intipati kandungan asal dengan sempurna dengan menyerlahkan ayat atau frasa utama yang paling kritikal dalam teks. Ini sangat membantu untuk projek seperti pengagregatan berita, klasifikasi dokumen atau ringkasan ringkas teks panjang.

  • Sistem Soal Jawab: Membina sistem soal jawab yang boleh memahami pertanyaan pengguna dan memberikan jawapan yang relevan boleh memanfaatkan teknologi pemprosesan bahasa semula jadi. Program ini memeriksa pertanyaan, mencari data yang berkaitan dan menjana jawapan ringkas. Pengguna boleh mendapatkan maklumat khusus dengan cepat dan cekap dengan menggunakannya dalam chatbots, pembantu maya dan sistem mendapatkan maklumat.

  • Pengeluaran Maklumat: Pemprosesan bahasa semula jadi memungkinkan untuk mengekstrak data berstruktur daripada data teks tidak berstruktur. Dengan menggunakan kaedah seperti pengecaman entiti yang dinamakan dan pengekstrakan perhubungan, algoritma NLP boleh mengenal pasti entiti tertentu, seperti orang, organisasi dan tempat serta perhubungan mereka dalam teks tertentu. Perlombongan data, perolehan maklumat dan pembinaan graf pengetahuan semuanya boleh menggunakan data ini.

Kesimpulan

Bidang pemprosesan bahasa semula jadi yang menarik membolehkan komputer memahami, menghuraikan dan menjana bahasa manusia. Apabila digabungkan dengan pustaka NLTK, Python menyediakan set lengkap alatan dan sumber untuk tugasan NLP. Untuk menyelesaikan pelbagai aplikasi NLP, NLTK menyediakan algoritma dan model yang diperlukan untuk penandaan sebahagian daripada pertuturan, analisis sentimen dan terjemahan mesin. Dengan menggunakan contoh kod, Python dan NLTK, kami boleh mengeluarkan cerapan baharu daripada data teks dan mencipta sistem pintar yang berkomunikasi dengan orang dengan cara yang lebih semula jadi dan intuitif. Jadi, sediakan Python IDE anda, import NLTK dan mulakan perjalanan untuk menemui misteri pemprosesan bahasa semula jadi.

Atas ialah kandungan terperinci Pemprosesan bahasa semula jadi dengan Python dan NLTK. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan