Doğal dil işleme, yazılı kelimeleri makine dostu bir dilde işlemenizi sağlayan makine öğreniminin bir yönüdür. Bu tür metinler daha sonra ince ayar yapılabilir hale gelir ve üzerlerinde istediğiniz gibi hesaplama algoritmaları çalıştırabilirsiniz.

Bu büyüleyici teknolojinin arkasındaki mantık karmaşık görünüyor ama değil. Ve şimdi bile, temel Python programlamasını sağlam bir şekilde kavrayarak, doğal dil araç seti (NLTK) ile özgün bir kendin yap kelime işlemcisi oluşturabilirsiniz.

Python'un NLTK'sına nasıl başlayacağınız aşağıda açıklanmıştır.

NLTK Nedir ve Nasıl Çalışır?

Python ile yazılan NLTK, çeşitli dize işleme işlevlerine sahiptir. Çeşitli doğal dil uygulamaları için geniş bir model deposuna sahip çok yönlü bir doğal dil kitaplığıdır.

NLTK ile ham metinleri işleyebilir ve onlardan anlamlı özellikler çıkarabilirsiniz. Ayrıca eksiksiz bir dil modeli oluşturmak için metin analiz modelleri, özellik tabanlı gramerler ve zengin sözcük kaynakları sunar.

NLTK Nasıl Kurulur

İlk olarak, PC'nizin herhangi bir yerinde bir proje kök klasörü oluşturun. NLTK kitaplığını kullanmaya başlamak için, terminalinizi daha önce oluşturduğunuz kök klasöre açın ve

instagram viewer
sanal bir ortam oluştur.

Ardından, doğal dil araç setini kullanarak bu ortama yükleyin. pip:

pip kurulum nltk

Ancak NLTK, yeni doğal dil modelleri için temel teşkil eden çeşitli veri kümelerine sahiptir. Bunlara erişmek için NLTK yerleşik veri indiricisini çalıştırmanız gerekir.

Bu nedenle, NLTK'yi başarıyla yükledikten sonra, herhangi bir kod düzenleyiciyi kullanarak Python dosyanızı açın.

Daha sonra içe aktar nltk modülünü oluşturun ve aşağıdaki kodu kullanarak veri indiricisini başlatın:

pip kurulum nltk
nltk.indir()

Yukarıdaki kodu terminal aracılığıyla çalıştırmak, veri paketlerini seçmek ve indirmek için bir grafik kullanıcı arayüzü getirir. Burada bir paket seçmeniz ve İndirmek almak için düğmeye basın.

İndirdiğiniz herhangi bir veri paketi, belirtilen dizine gider. Dizini İndir alan. İsterseniz bunu değiştirebilirsiniz. Ancak bu düzeyde varsayılan konumu korumaya çalışın.

İlgili: İlk Uygulamanızı Yazmak için En İyi Ücretsiz Kod Düzenleyicileri

Not: Veri paketleri, varsayılan olarak sistem değişkenlerine eklenir. Böylece, kullandığınız Python ortamından bağımsız olarak sonraki projeler için bunları kullanmaya devam edebilirsiniz.

NLTK Belirteçleri Nasıl Kullanılır

Sonuç olarak, NLTK kelimeler ve cümleler için eğitimli belirteç modelleri sunar. Bu araçları kullanarak, bir cümleden bir kelime listesi oluşturabilirsiniz. Veya bir paragrafı mantıklı bir cümle dizisine dönüştürün.

İşte NLTK'nın nasıl kullanılacağına dair bir örnek word_tokenizer:

nltk'yi içe aktar
nltk.tokenize'den word_tokenize içe aktarın
word = "Bu bir örnek metindir"
tokenWord = word_tokenizer (kelime)
yazdır (tokenWord)
Çıktı:
['Bu', 'bu', 'bir', 'örnek', 'metin']

NLTK ayrıca önceden eğitilmiş bir cümle belirteci kullanır. PunktCümle Belirteci. Bir paragrafı bir cümle listesine bölerek çalışır.

Bunun iki cümlelik bir paragrafla nasıl çalıştığını görelim:

nltk'yi içe aktar
nltk.tokenize'den word_tokenize, PunktSentenceTokenizer'ı içe aktarın
cümle = "Bu bir örnek metindir. Bu, NLTK için bir öğreticidir"
belirteç = PunktSentenceTokenizer()
tokenized_sentence = token.tokenize (cümle)
yazdır (tokenized_sentence)
Çıktı:
['Bu bir örnek metindir.', 'Bu, NLTK için bir eğitimdir']

Yukarıdaki koddan oluşturulan dizideki her cümleyi kullanarak daha da belirtebilirsiniz. word_tokenizer ve döngü için Python.

NLTK'nın Nasıl Kullanılacağına İlişkin Örnekler

Bu nedenle, NLTK'nın tüm olası kullanım durumlarını gösteremesek de, gerçek hayattaki sorunları çözmek için onu nasıl kullanmaya başlayabileceğinize dair birkaç örnek aşağıda verilmiştir.

Kelime Tanımlarını ve Konuşma Bölümlerini Alın

NLTK, konuşmanın bölümlerini belirlemek, ayrıntılı semantik elde etmek ve çeşitli kelimelerin olası bağlamsal kullanımı için modeller sunar.

kullanabilirsiniz kelime ağı Bir metin için değişkenler oluşturmak için model. Ardından anlamını ve konuşmanın bir bölümünü belirleyin.

Örneğin, "Maymun:" için olası değişkenleri kontrol edelim.

nltk'yi içe aktar
nltk.corpus'tan wordnet'i wn olarak içe aktar
yazdır (wn.synsets('maymun'))
Çıktı:
[Synset('monkey.n.01'), Synset('imp.n.02'), Synset('tamper.v.01'), Synset('putter.v.02')]

Yukarıdaki kod, "Maymun" için olası sözcük alternatiflerini veya sözdizimlerini ve konuşma bölümlerini verir.

Şimdi "Maymun" kelimesinin anlamını aşağıdaki düğmeyi kullanarak kontrol edin. tanım yöntem:

Maymun = wn.synset('monkey.n.01').definition()
Çıktı:
çeşitli uzun kuyruklu primatlardan herhangi biri (prosimians hariç)

NLTK'nın hangi çıktıyı verdiğini görmek için parantez içindeki dizeyi oluşturulan diğer alternatiflerle değiştirebilirsiniz.

NS pos_tag Ancak model, bir kelimenin konuşmanın bölümlerini belirler. Bunu ile kullanabilirsiniz word_tokenizer veya PunktSentenceTokenizer() daha uzun paragraflarla uğraşıyorsanız.

İşte bu nasıl çalışır:

nltk'yi içe aktar
nltk.tokenize'den word_tokenize, PunktSentenceTokenizer'ı içe aktarın
word = "Bu bir örnek metindir. Bu, NLTK hakkında bir eğitimdir"
belirteç = PunktSentenceTokenizer()
tokenized_sentence = token.tokenize (kelime)
tokenized_sentence içindeki ben için:
tokenWordArray = word_tokenize (i)
partOfSpeech = nltk.pos_tag (tokenWordArray)
yazdır (partsOfSpeech)
Çıktı:
[('Bu', 'DT'), ('is', 'VBZ'), ('an', 'DT'), ('örnek', 'NN'), ('metin', 'NN'), ('.', '.')]
[('Bu', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('eğitici', 'JJ'), ('açık', 'IN'), ('NLTK', 'NNP')]

Yukarıdaki kod, her bir simgeleştirilmiş kelimeyi bir demet içindeki konuşma etiketiyle eşleştirir. Bu etiketlerin anlamını kontrol edebilirsiniz. Penn Ağaç Bankası.

Daha temiz bir sonuç için, çıktıdaki noktaları kullanarak çıktıdaki noktaları kaldırabilirsiniz. yer değiştirmek() yöntem:

tokenized_sentence içindeki ben için:
tokenWordArray = word_tokenize (i.replace('.', ''))
partOfSpeech = nltk.pos_tag (tokenWordArray)
yazdır (partsOfSpeech)
Daha temiz çıktı:
[('Bu', 'DT'), ('is', 'VBZ'), ('an', 'DT'), ('örnek', 'NN'), ('metin', 'NN') ]
[('Bu', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('eğitici', 'JJ'), ('açık', 'IN'), ('NLTK', 'NNP')]

NLTK Grafiği Kullanarak Özellik Eğilimlerini Görselleştirme

Ham metinlerden özellikleri çıkarmak genellikle sıkıcı ve zaman alıcıdır. Ancak, NLTK frekans dağılımı eğilim grafiğini kullanarak bir metindeki en güçlü özellik belirleyicilerini görüntüleyebilirsiniz.

Ancak NLTK ile senkronize edilir matplotlib. Verilerinizdeki belirli bir eğilimi görüntülemek için bundan yararlanabilirsiniz.

Örneğin aşağıdaki kod, son iki alfabesini kullanarak bir dağıtım grafiğindeki bir dizi pozitif ve negatif kelimeyi karşılaştırır:

nltk'yi içe aktar
nltk'den import ConditionalFreqDist
Negatif ve pozitif kelimelerin listesi:
negatifler = [
'anormal', 'ortadan kaldır', 'iğrenç',
'iğrenç', 'iğrenç', 'iğrenç'
]
pozitifler = [
'bol', 'bol', 'bolluk',
'bol', 'erişilebilir', 'erişilebilir'
]
# Her dizideki öğeleri etiketli demet çiftlerine bölün
# ve her iki diziyi de birleştirin:
pos_negData = ([("negatif", negatif) negatifler için negatif]+[("pozitif", konum) pozitifler için])
# Ortaya çıkan diziden son iki alfabeyi çıkarın:
f = ((pos, i[-2:],) için (pos, i) için pos_negData)
# Bu alfabelerin bir dağıtım grafiğini oluşturun
cfd = KoşulluFreqDist (f)
cfd.plot()

Alfabe dağılım grafiği şöyle görünür:

Grafiğe yakından bakıldığında, ile biten kelimeler ce, ds, le, nd, ve nt olumlu metin olma olasılığı daha yüksektir. Ama ile bitenler herkes, ly, üzerinde, ve te daha olası olumsuz kelimelerdir.

Not:Her ne kadar burada kendi kendine oluşturulmuş verileri kullanmış olsak da, NLTK'nın yerleşik veri kümelerinden bazılarına Corpus okuyucusunu kullanarak onları şu adresten arayarak erişebilirsiniz: korpus sınıfı nltk. şuna bakmak isteyebilirsin corpus paketi belgeleri nasıl kullanabileceğinizi görmek için.

Alexa, spam algılama, sohbet robotları, duygu analizi ve daha fazlası gibi teknolojilerin ortaya çıkmasıyla birlikte, doğal dil işleme, insan altı aşamasına dönüşüyor gibi görünüyor. Bu makalede NLTK'nın sunduklarına ilişkin yalnızca birkaç örnek düşünmüş olsak da, araç bu eğitimin kapsamından daha gelişmiş uygulamalara sahiptir.

Bu makaleyi okuduktan sonra, NLTK'yı temel düzeyde nasıl kullanacağınız konusunda iyi bir fikre sahip olmalısınız. Şimdi yapmanız gereken tek şey bu bilgiyi kendiniz harekete geçirmek!

PaylaşCıvıldamakE-posta
Kalkınan Uzmanlar için 7 Makine Öğrenimi Kitaplığı

Makine Öğrenimi alanıyla ilgileniyor musunuz? Bu kitaplıkları kullanmaya başlayın.

Sonrakini Oku

İlgili konular
  • Programlama
  • piton
  • Programlama dilleri
  • Programlama
Yazar hakkında
Idowu Omisola (96 Makale Yayınlandı)

Idowu akıllı teknoloji ve üretkenlik konusunda tutkulu. Boş zamanlarında kodlamayla uğraşıyor ve canı sıkıldığında satranç tahtasına geçiyor ama arada sırada rutinden kopmayı da seviyor. İnsanlara modern teknolojinin yolunu gösterme tutkusu onu daha fazla yazmaya motive ediyor.

Idowu Omisola'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın