Doğal dil işleme NLP'ye hızlı erişim

NLP'ye kolay bir giriş

Bilgisayarlar, veritabanı tabloları ve mali kayıtlar gibi standartlaştırılmış ve yapılandırılmış verileri işlemede çok iyidir. Bu verileri biz insanlardan daha hızlı işleyebilirler. Ama biz insanlar iletişim için "yapılandırılmış veri" kullanmıyoruz ve ikili diller konuşmuyoruz! Bir tür yapılandırılmamış veri olan kelimelerle iletişim kuruyoruz.

Ne yazık ki, bilgisayarların yapılandırılmamış verileri işlemesi zordur çünkü bunları işlemek için standartlaştırılmış bir teknoloji yoktur. Bir bilgisayarı c, java veya python gibi dillerde programladığımızda, aslında bilgisayara çalışması gereken bir dizi kural vermiş oluyoruz. Yapılandırılmamış veriler için bu kurallar çok soyut ve zorlu somut tanımlardır.

İnternette birçok yapılandırılmamış doğal dil var, bazen Google bile sizi tanımıyor bile

İnsan ve bilgisayar dili anlayışı

İnsanlar binlerce yıldır bir şeyler yazıyorlar. Bu süre zarfında beynimiz, doğal dili anlama konusunda çok fazla deneyim kazandı. Bir kâğıt parçasında veya internetteki bir blogda bir şey okuduğumuzda, onun gerçek dünyadaki gerçek anlamını anlayacağız. Bu şeyleri okumanın neden olduğu duyguları hissederiz ve genellikle gerçek hayatta nasıl görüneceğini hayal ederiz.

Doğal dil işleme (NLP), bilgisayarların insan dilini anlamasını ve işlemesini sağlayarak bilgisayarları insanın dil anlayışına yaklaştırmaya adanmış bir yapay zeka alt alanıdır. Bilgisayarlar, doğal dili anlamada insanlar kadar sezgisel değiller, dilin ne söylemek istediğini gerçekten anlayamıyorlar. Kısacası bilgisayarlar satır aralarını okuyamaz.

Bununla birlikte, makine öğrenimindeki (ML) son gelişmeler, bilgisayarların doğal dilde birçok yararlı şey yapmasını sağlıyor! Derin öğrenme, dil çevirisi, anlamsal anlama ve metin özetleme gibi görevleri yerine getirmek için programlar yazmamızı sağlar. Bunların tümü gerçek dünyaya değer katarak, manuel işlemler yapmadan büyük metin blokları üzerinde hesaplamaları kolayca anlamanıza ve gerçekleştirmenize olanak tanır.

NLP'nin kavramsal olarak nasıl çalıştığına hızlı bir başlangıç yapalım. Bundan sonra, NLP'yi kendiniz kullanmaya başlayabilmeniz için bazı python kodlarını inceleyeceğiz!

NLP'nin zor olmasının gerçek nedeni

Dili okuma ve anlama süreci ilk bakışta olduğundan çok daha karmaşıktır. Bir metnin gerçek dünyada ne anlama geldiğini gerçekten anlamak için yapılacak çok şey var. Örneğin, aşağıdaki metin paragrafının ne anlama geldiğini düşünüyorsunuz?

"Steph Curry son güzel yanıyordu. Diğer takımı tamamen yok etti."

Bir kişi için bu cümlenin anlamı açıktır. Steph Curry'nin bir basketbol oyuncusu olduğunu biliyoruz, bilmeseniz bile belli bir takımda, belki bir spor takımında olduğunu da biliyoruz. "Ateş" ve "yok etme" yi gördüğümüzde, bunun Steph Curry'nin dün gece iyi oynadığı ve başka bir takımı yendiği anlamına geldiğini biliyorduk.

Bilgisayarlar genellikle her şeyi gerçek anlamıyla alır. Kelimenin tam anlamıyla, "Steph Curry" i görür ve büyük harf kullanımına dayalı bir kişi, yer veya diğer önemli şeyler olduğunu varsayarız. Ama sonra Steph Curry'nin "yandığını" gördük ... bilgisayar size dün Steph Curry'nin ateşe verildiğini söyleyebilir! Lanet olsun. Bundan sonra, bilgisayar, körinin başka bir takımı yok ettiğini söyleyebilir ... artık yoklar ... harika ...

Steph Curry gerçekten yanıyor!

Ancak makinelerin yaptığı her şey acımasız değildir. Makine öğrenimi sayesinde, bilgileri doğal dilden hızlı bir şekilde çıkarmak ve anlamak için çok zekice şeyler yapabiliriz! Bunu birkaç satır kodla başarmak için birkaç basit python kitaplığının nasıl kullanılacağını görelim.

NLP problemlerini çözmek için Python kodunu kullanın

NLP'nin nasıl çalıştığını anlamak için, Wikipedia'dan aşağıdaki metni çalışan örneğimiz olarak kullanacağız:

Amazon olarak iş yapan Amazon.com, Inc., 5 Temmuz 1994'te Jeff Bezos tarafından kurulan ve Seattle, Washington merkezli bir Amerikan elektronik ticaret ve bulut bilişim şirketidir. Teknoloji devi, ölçüldüğü gibi dünyanın en büyük İnternet perakendecisidir. gelir ve piyasa değerine göre ve toplam satışlar açısından Alibaba Group'tan sonra ikinci en büyük. amazon.comweb sitesi, çevrimiçi bir kitapçı olarak başladı ve daha sonra video indirmeleri / akış, MP3 indirmeleri / akış, sesli kitap indirmeleri / akış, yazılım, video oyunları satmak üzere çeşitlendi , elektronik, giyim, mobilya, yemek, oyuncak ve mücevherat. Şirket ayrıca tüketici elektroniği (Kindle e-okuyucular, Fire tabletler, Fire TV ve Echo) üretir ve dünyanın en büyük bulut altyapı hizmetleri sağlayıcısıdır (IaaS vePaaS). Amazon ayrıca kendi bünyesindeki markasıAmazonBasics altında bazı düşük kaliteli ürünleri satmaktadır.

Birkaç gerekli kitaplık

İlk olarak, bu makaleyi analiz etmemize yardımcı olacak bazı yararlı python NLP kitaplıkları kuracağız.

### spaCy'yi yükleme, genel Python NLP lib pip3 kurulum aralığı ### spaCy için İngilizce sözlük modelini indirme python3 -m spacy indir en_core_web_lg ### Textacy yükleme, temelde spaCy için yararlı bir eklenti pip3 metin oluşturma

Varlık analizi

Artık her şey kurulduğuna göre, metnin hızlı bir varlık analizini yapabiliriz. Varlık analizi, metnin içinden geçecek ve metindeki tüm önemli kelimeleri veya "varlıkları" belirleyecektir. "Önemli" dediğimizde, gerçekten gerçek dünya anlamsal anlamı veya anlamı olan kelimeleri kastediyoruz.

Lütfen aşağıdaki kodu kontrol edin, tüm varlık analizini bizim için yapar:

# kodlama: utf-8 ithal boşluk ### Load spaCy'nin İngilizce NLP modeli nlp = spacy.load ('en_core_web_lg') ### İncelemek istediğimiz metin text = "Amazon.com, Inc., Amazon olarak iş yapıyor, birAmerikan elektronik ticaret ve bulut bilişimidir Seattle, Washington merkezli, kurulan şirket 5 Temmuz 1994'te Jeff Bezos tarafından. Teknoloji devi ölçümüne göre dünyadaki en büyük İnternet perakendecisi gelir ve piyasa sermayesi ve ikinci en büyük toplam satışlar açısından Alibaba Group'un ardından. com web sitesi bir çevrimiçi kitapçı olarak başladı ve daha sonra çeşitlendirilmiş video indirmeleri / akışı, MP3 indirmeler / akış, sesli kitap indirmeleri / akış, yazılım, video oyunları, elektronik, giyim, mobilya, gıda, oyuncak ve mücevherat. Şirket ayrıca tüketici elektroniği-Kindle e-okuyucular, Yangın tabletleri, Fire TV ve Echo-ve dünyanın en büyük sağlayıcısıdır bulut altyapı hizmetleri (IaaS ve PaaS). Amazon ayrıca bazı düşük kaliteli ürünleri, şirket içi markası AmazonBasics. " ### Metni spaCy ile ayrıştırın ### Belgemiz 'değişkeni artık ayrıştırılmış bir metin sürümü içeriyor. belge = nlp (metin) ### tespit edilen tüm adlandırılmış varlıkları yazdırın document.ents içindeki varlık için: baskı (varlık.metin, varlık.etiket_)

Önce spaCy'nin öğrenilmiş makine öğrenimi modelini yükler ve işlemek istediğimiz metni başlatırız. Varlıkları çıkarmak için ML modelini metin üzerinde çalıştırıyoruz. Kod kodunu çalıştırdığınızda aşağıdaki çıktıyı alacaksınız:

Amazon.com, Inc. ORG Amazon ORG Amerikan NORP Seattle GPE Washington GPE Jeff Bezos KİŞİ 5 Temmuz 1994 TARİH ikinci ORDINAL Alibaba Grubu ORG amazon.com ORG Fire TV ORG Echo-LOC PaaS ORG Amazon ORG AmazonBasics ORG

Metnin yanındaki 3 harfli kod, baktığımız varlık türünü belirten bir etikettir. Görünüşe göre modelimiz iyi gidiyor! Jeff Bezos gerçekten bir kişi, tarih doğru, Amazon bir organizasyon ve Seattle ve Washington her ikisi de jeopolitik varlıklar (yani ülkeler, şehirler, eyaletler vb.). Tek yanıltıcı sorun, Fire TV ve Echo gibi şeylerin aslında kuruluşlar değil, ürünler olmasıdır. Ancak model, Amazon tarafından satılan diğer ürünleri kaçırdı "video indirme / akış, mp3 indirme / akış, sesli kitap indirme / akış, yazılım, video oyunları, elektronik, giyim, mobilya, yiyecek, oyuncak ve mücevher" Geniş bir listede oldukları için, nispeten önemsiz görünüyorlar.

Genel olarak modelimiz istediğimizi yaptı. Yüzlerce sayfalık metinle dolu büyük bir belgemiz olduğunu hayal edin Bu NLP modeli, belgenin içeriğini ve belgedeki temel öğelerin neler olduğunu hızlı bir şekilde anlamanıza izin verebilir.

Varlıklar üzerinde çalışın

Daha uygulanabilir bir şey yapmaya çalışalım. Yukarıdaki ile aynı metin bloğuna sahip olduğunuzu, ancak gizlilik nedeniyle, tüm kişi ve kuruluşların adlarını otomatik olarak silmek istediğinizi varsayalım. SpaCy kitaplığının çok kullanışlı bir temizleme işlevi vardır, görmek istemediğimiz tüm varlık kategorilerini temizlemek için kullanabiliriz. Aşağıdaki gibi:

# kodlama: utf-8 ithal boşluk ### Load spaCy'nin İngilizce NLP modeli nlp = spacy.load ('en_core_web_lg') ### İncelemek istediğimiz metin text = "Amazon.com, Inc., Amazon olarak iş yapıyor, bir Amerikan elektronik ticaret ve bulut bilişimidir Seattle, Washington merkezli, kurulan şirket Yazar: Jeff Bezos, 5 Temmuz 1994. Teknoloji devi, ölçümüne göre dünyadaki en büyük İnternet perakendecisi gelir ve piyasa değeri ve ikinci en büyük Alibaba Group'tan sonra toplam satışlar. amazon.com web sitesi bir çevrimiçi kitapçı olarak başladı ve daha sonra video indirmeleri / akışlarını satmak için çeşitlendirildi, MP3 indirme / akış, sesli kitap indirme / akış, yazılım, video oyunları, elektronik, giyim, mobilya , yiyecek, oyuncak ve mücevher. Şirket ayrıca tüketici elektroniği - Kindle e-okuyucular, Fire tabletler, Fire TV ve Echo - ve dünyanın en büyüğüdür bulut altyapı hizmetleri sağlayıcısı (IaaS ve PaaS). Amazon ayrıca bazı düşük kaliteli ürünleri satar şirket içi markası AmazonBasics altında. " ### Belirli bir varlığı "ÖZEL" kelimesiyle değiştirin def replace_entity_with_placeholder (jeton): token.ent_iob! = 0 ve (token.ent_type_ == "KİŞİ" veya token.ent_type_ == "ORG") ise: dönüş "" Başka: token.string dönüş ### Bir metin parçasındaki tüm varlıklar arasında döngü yapın ve varlık değişimini uygulayın def fırçalama (metin): doc = nlp (metin) doc.ents'teki ent için: ent.merge () belirteçler = eşleme (replace_entity_with_placeholder, doc) return "" .join (belirteçler) yazdır (fırçala (metin))

iyi sonuçlar! Bu aslında çok güçlü bir tekniktir. İnsanlar belgedeki sözcükleri bulmak ve değiştirmek için her zaman bilgisayardaki ctrl + f işlevini kullanır. Ancak NLP ile, yalnızca orijinal metinlerini değil, anlamsal anlamlarını da dikkate alarak belirli varlıkları bulabilir ve değiştirebiliriz.

Metinden bilgi alın

Daha önce kurduğumuz metinsel kitaplık, spaCy temelinde birkaç ortak NLP bilgi çıkarma algoritması uygular. Kutudan çıkan basit şeylerden daha gelişmiş bir şey yapmamıza izin verecektir.

Uyguladığı algoritmalardan biri de yarı yapılandırılmış cümle çıkarmadır. Bu algoritma, esasen spaCy'nin NLP modeli tarafından çıkarılabilecek bazı bilgileri analiz eder ve bu temelde, belirli varlıklar hakkında daha spesifik bilgiler elde eder! Kısacası, seçtiğimiz varlıklar hakkında belirli "gerçekleri" çıkarabiliriz.

Bakalım kodda neye benziyor. Bu makale için, Washington, DC Wikipedia sayfasından tüm özetleri çıkaracağız.

# kodlama: utf-8 ithal boşluk textacy.extract içe aktar ### Load spaCy'nin İngilizce NLP modeli nlp = spacy.load ('en_core_web_lg') ### İncelemek istediğimiz metin text = "" "Resmi adı Columbia Bölgesi olan ve genellikle Washington veya DC olarak anılan Washington, DC, Amerika Birleşik Devletleri'nin başkentidir. Amerikan Devrimi'nden sonra bağımsızlığını yeni kazanan ülke Washington'un hükümet merkezi olarak kurulmuştur. adını Amerika Birleşik Devletleri'nin ilk Başkanı ve Kurucu Babası George Washington'dan almıştır. Washington, 6,131,977 nüfusa sahip Washington metropol bölgesinin ana şehridir. Amerika Birleşik Devletleri federal hükümetinin ve çeşitli uluslararası kuruluşların merkezi olan şehir önemli bir dünya siyasi başkentidir Washington, yılda 20 milyondan fazla turist ile dünyanın en çok ziyaret edilen şehirlerinden biridir. 16 Temmuz 1790'da İkamet Yasası'nın imzalanması, ülkenin Doğu Kıyısındaki Potomac Nehri boyunca yer alan bir başkent bölgesinin kurulmasını onayladı. ABD Anayasası, Kongre ve Bölgenin münhasır yargı yetkisi altında bir federal bölge için öngörülmüştür. herhangi bir eyaletin parçası değil. Maryland ve Virginia eyaletlerinin her biri, Georgetown ve İskenderiye'nin önceden var olan yerleşimlerini içeren federal bölgeyi oluşturmak için arazi bağışladı. Adını Başkan George Washington'un onuruna veren Washington Şehri 1791'de kuruldu Kongre, 1846'da Virginia tarafından terk edilen araziyi iade etti; 1871'de, Bölgenin kalan kısmı için tek bir belediye hükümeti kurdu. Washington, Temmuz 2017 itibarıyla 693.972'lik tahmini bir nüfusa sahipti ve bu da onu nüfus olarak 20. en büyük Amerikan şehri yapıyor. Çevredeki Maryland ve Virginia banliyölerinden gelenler, çalışma haftası boyunca şehrin gündüz nüfusunu bir milyonun üzerine çıkarıyor. Washington metropol bölgesi, İlçenin ana şehir olduğu, 6 milyonun üzerinde nüfusa sahip olan, ülkenin altıncı en büyük metropol istatistik bölgesi. ABD federal hükümetinin üç şubesi de Bölgede merkezlenmiştir: ABD Kongresi (yasama), Başkan (yürütme) ve ABD Yüksek Mahkemesi (adli). Washington, esas olarak üzerinde veya üzerinde bulunan birçok ulusal anıt ve müzeye ev sahipliği yapmaktadır. Şehir, 177 yabancı büyükelçiliğin yanı sıra birçok uluslararası kuruluşun, sendikanın, kar amacı gütmeyen, lobi gruplarının ve Amerikan Devletleri Örgütü, AARP, National Geographic Society, the National Geographic Society, İnsan Hakları Kampanyası, Uluslararası Finans Kurumu ve Amerikan Kızılhaçı. Yerel olarak seçilmiş bir belediye başkanı ve 13 üyeli bir konsey 1973'ten beri Bölgeyi yönetmektedir. Bununla birlikte, Kongre şehir üzerinde üstün yetkiye sahiptir ve yerel yasaları iptal edebilir. DC sakinleri, Temsilciler Meclisi'ne oy kullanmayan, geniş çaplı bir kongre delegesi seçer , ancak Bölge Senato'da temsil edilmiyor. Bölge, başkanlık seçimlerinde 1961'de onaylanan Birleşik Devletler Anayasasının Yirmi Üçüncü Değişikliği tarafından izin verildiği üzere üç seçim oyu alıyor. "" " ### Metni spaCy ile ayrıştırın ### Belgemizin değişkeni artık metnin ayrıştırılmış bir sürümünü içeriyor. belge = nlp (metin) ### Yarı yapılandırılmış ifadeleri ayıklama ifadeler = textacy.extract.semistructured_statements (belge, "Washington") baskı ("**** Washington'un Wikipedia sayfasından **** bilgiler") count = 1 ifadelerdeki ifade için: konu, fiil, gerçek = ifade print (str (count) + "-Statement:", ifade) print (str (count) + "-Fact:", fact) sayı + = 1

NLP modelimiz, bu makaleden Washington DC hakkında üç yararlı gerçek buldu:

(1) Washington, Amerika Birleşik Devletleri'nin başkentidir

(2) Washington'un nüfusu ve metropol olması

(3) Birçok ulusal anıt ve müze

En iyi yanı, bunların bu paragraftaki en önemli bilgiler olmasıdır!

NLP'ye dalın

Bu, NLP'ye kısa girişimizi tamamlıyor. Çok şey öğrendik ama bu sadece küçük bir girişim ...

NLP, dil çevirisi, sohbet robotları ve metin belgelerinin daha spesifik ve karmaşık analizi gibi birçok daha iyi uygulamaya sahiptir. Bugünün çalışmalarının çoğu derin öğrenme, özellikle tekrarlayan sinir ağları (RNN'ler) ve uzun süreli kısa süreli bellek (LSTM'ler) ağları kullanılarak yapılmaktadır.

Kendi başınıza daha fazla NLP oynamak istiyorsanız, iyi bir başlangıç noktası için spaCy belgelerine ve metin belgelerine göz atın! Metni işlemenin, ayrıştırmanın ve onlardan çok yararlı bilgiler çıkarmanın birçok yolu örneği göreceksiniz. Her şey hızlı ve basittir ve ondan çok büyük bir değer elde edebilirsiniz. Daha büyük ve daha iyi şeyler yapmak için derinlemesine öğrenmeyi kullanma zamanı!

Referans bağlantısı:

https://spacy.io/usage/linguistic-features#entity-types

https://spacy.io/api/doc

Orijinal bağlantı:

https://towardsdatascience.com/an-easy-introduction-to-natural-language-processing-b1e2801291c1

Şu anda, Alibaba 5,4 milyar yuan düştü! Hoşçakal Amazon!
önceki
NIO EP9 süper otomobilinin Mart ayında ülkeye gireceği ortaya çıktı.
Sonraki
Mi MIX ikinci nesil konsept haritası ortaya çıktı: çene, birinci nesilden daha dardır, nihai ekran / vücut oranı
Dünya kaynıyor! Jack Ma'nın Kış Olimpiyatları'ndaki en iyi ortağı "Bulut Olimpiyatları" dünyayı yeniliyor
Zidane, Çin Üniversite Ligi'nde havalandığında, yükseltilmiş CUFA genç futbolu için ne anlama geliyor?
Hedef tespitin öncü çalışması olan RCNN'de yer alan birçok fikir ve yöntem (bölüm 1)
Gigi Lai, varlıklı bir aileyle evlendikten sonra kendi şirketini kurdu. Şirket borsada olduğundan zili çalmak için borsaya gitti
Ne bir destek! Tmall China Day New York defilesinde göründü, Çin tasarımı dünyadan alkış aldı!
Malzeme bilimine uygulanan derin öğrenmedeki yeni gelişmeler
"Wandering Earth", Kuzey Amerika'da 5 yılın en yüksek gişesi olan 3,82 milyonluk bir gişeye sahip ve günlerce tek odalı gişeyi kazandı.
Hızlı şarj için ne tür bir cep telefonu iyidir? Öncelikle bu 4 noktayı anlamalısınız
Bilgisayarla Görmede Görüntü Segmentasyonunun Klasik Algoritması
JJ Lin bir konserde neredeyse müzik sahnesini bıraktığını açıkladı, Zhang Jingying'in kırmızı dudak makyajı neşelendiriyor gibi görünüyordu
NIO EP9 süper otomobilinin Mart ayında ülkeye gireceği ortaya çıktı.
To Top