İsimli Varlık Tanıma (NER) Genel Bakış

Bu makale, orijinal başlığı olan AI Araştırma Enstitüsü tarafından derlenen teknik bir blogdur:

Özgeçmişlerin Otomatik Özetlemesini Kullanan Adlandırılmış Varlık Tanıma (NER) İncelemesi

Yazar | Mohan Gupta

Tercüme | Demps Jeff

Düzeltme | Soslu Armut Terbiyesi | Ananas Kız

Orijinal bağlantı:

https://towardsdatascience.com/a-review-of-named-entity-recognition-ner-using-automatic-summarization-of-resumes-5248a75de175

Bu makale sizi NER'in ne olduğunu, endüstride nasıl kullanıldığını, çeşitli NER kitaplıklarını ve özgeçmiş özeti için NER kullanımının kod uygulamasını anlamanızı amaçlamaktadır.

Bu blog, doğal dil işlemede (NLP) ve bilgi edinmede (IR) varlık tanıma (NER) adlı bir alan ve yalnızca ana varlıkları (ad, eğitim geçmişi, beceriler vb.) Çıkararak nasıl uyguladığımızı anlatıyor. Otomatik olarak özgeçmiş özeti oluşturmaya gelir.

Adlı varlık tanıma nedir?

Adlandırılmış Varlık Tanıma (NER) (varlık tanıma, varlık bölümleme ve varlık çıkarma olarak da bilinir), metindeki adlandırılmış varlıkları kişiler, kuruluşlar gibi önceden tanımlanmış kategorilere yerleştirmeyi ve sınıflandırmayı amaçlayan bir bilgi çıkarma alt görevidir. Yer, zaman ifadesi, miktar, para birimi değeri, yüzde vb.

NER sistemi, dil grameri ve makine öğrenimi gibi istatistiksel modellere dayalı teknikler kullanılarak kurulmuştur. El yapımı gramer tabanlı sistemler genellikle daha iyi doğruluk sağlayabilir, ancak düşük hatırlama pahasına ve deneyimli hesaplamalı dilbilimciler tarafından aylarca çalışma gerektirir. İstatistiksel NER sistemleri genellikle büyük miktarda manuel olarak açıklama eklenmiş eğitim verisi gerektirir. Ek açıklama çalışmasının bir kısmından kaçınmak için, yarı denetimli bir yöntemin kullanılması önerilir.

En gelişmiş NER modeli

Spacy NER modeli:

Ücretsiz ve açık kaynaklı bir kitaplık olan Spacy, Python'da gelişmiş doğal dil işlemeyi (NLP) daha kolay ve kullanışlı hale getirir.

Spacy, python'da adlandırılmış varlık tanıma için çok etkili bir istatistiksel sistem sağlar ve ardışık simge gruplarına etiketler atayabilir. Şirket adı, konum, kuruluş, ürün adı vb. Dahil olmak üzere çeşitli adlandırılmış veya dijital varlıkları tanıyan varsayılan bir model sağlar. Bu varsayılan varlıklara ek olarak, SPACY modeli yeni eğitilmiş örneklerle güncellemek üzere eğitebilir, bu da modelin tanıma için herhangi bir sınıfa yeni adlandırılmış varlıklar eklemesini sağlar.

Model yapısı:

SPACY'deki istatistiksel model özel olarak tasarlanmıştır ve hız ve doğruluğun mükemmel bir performans kombinasyonunu sağlar. Kullanımdaki mevcut mimari henüz yayınlanmadı, ancak aşağıdaki video modelin nasıl çalıştığını ana hatlarıyla açıklıyor ve esas olarak NER modeline odaklanıyor.

SPACY'NİN ENTITY TANIMA MODELİ: Bloom düğünleri ve kalan CNN'ler ile aşamalı ayrıştırma

Stanford adlı varlık tanıyıcı:

Stanford NER, Java'da uygulanan, adlandırılmış bir varlık tanıyıcıdır. Temel olarak kuruluşlar, kişiler ve konumlar gibi varlıkları tanımlamak için kullanılan varsayılan bir eğitim modeli sağlar. Ek olarak, farklı dil ve ortamlarda eğitim için çeşitli modeller de sağlanmaktadır.

Model mimarisi:

Stanford NER aynı zamanda bir CRF (Koşullu Rastgele Alan) sınıflandırıcısı olarak da adlandırılır çünkü yazılımda doğrusal zincir koşullu rastgele alan (CRF) dizi modeli uygulanmıştır. Çeşitli uygulamalar için kendi özel modellerimizi eğitmek için kendi etiketli veri setimizi kullanabiliriz.

CRF modelinin öncülüğünü ilk olarak Lafferty, McCallum ve Pereira (2001) yaptı; ayrıntılı ve anlaşılır bir giriş için bkz. Sutton ve McCallum (2006) veya Sutton ve McCallum (2010).

NER modeli örneği:

İsimlendirilmiş varlık tanıma, doğal dil işleme ve bilgi erişimi alanlarında çok çeşitli uygulamalara sahiptir. Aşağıdaki örnekler çok azdır:

Özgeçmişlerin otomatik özeti:

Şirketlerin insan kaynakları departmanının karşılaştığı en önemli zorluk, çok sayıda iş adayının özgeçmişlerini değerlendirmektir. Vurgularını artırmak için, başvuru sahipleri özgeçmişlerini fazla detaylandırma eğilimindedir ve bunların çoğu değerlendiricinin aradığı şeyle ilgisizdir. Bu süreci basitleştirmek için, NER modelimiz aracılığıyla özgeçmişleri hızlı bir şekilde kolayca değerlendirebilir, böylece bir grup özgeçmiş arasından aday seçmek için gereken işi basitleştirebiliriz.

Arama motoru algoritmasını optimize edin:

Bir arama motoru algoritması tasarlamak için, milyonlarca çevrimiçi makale ve web sitesinde giriş sorgularını aramak yerine, makale üzerinde NER modelini bir kez çalıştırmak ve onunla ilgili varlıkları kalıcı olarak depolamak daha etkili bir yöntemdir. Daha sonra, arama sorgusundaki anahtar etiketler, hızlı ve verimli bir arama elde etmek için web sitesi makaleleriyle ilişkili etiketlerle karşılaştırılabilir.

Güçlü öneri sistemi:

NER, öneri sistemleri için algoritmalar geliştirmek, ilgilenebileceğimiz ilgili içeriği otomatik olarak filtrelemek ve önceki davranışa göre alakalı ve ziyaret edilmemiş ilgili içeriği bulmamız için bize rehberlik etmek için kullanılabilir. Bu, geçmişimizdeki veya önceki etkinliklerimizdeki içerikle ilişkili varlıkları çıkararak ve bunları ilgili varlıkları filtrelemek için diğer açıklanmamış içeriğe atanan etiketlerle karşılaştırarak başarılabilir.

Basitleştirilmiş müşteri desteği:

NER, ürün özellikleri, departman veya şirket şubesi ayrıntıları gibi müşteri şikayetleri ve geri bildirimlerindeki ilgili varlıkları belirlemek için kullanılabilir, böylece geri bildirim uygun şekilde sınıflandırılabilir ve ürün tanımlamasından sorumlu ilgili departmana iletilebilir.

Aşağıdaki bölümlerde, özgeçmiş özetini elde etmek için NER modelinin kullanımını ayrıntılı olarak tanıtacağız.

NER'ye göre özgeçmiş özeti:

veri seti:

Elbette, ilk görev, modeli eğitmek için manuel olarak açıklamalı eğitim verileri oluşturmaktır. Bu amaçla, çevrimiçi çalışma platformundan 220 özgeçmiş indirildi. Bu belgeler DataTurks çevrimiçi açıklama aracına yüklenir ve manuel olarak açıklama eklenir.

Araç, belgeleri otomatik olarak ayrıştırabilir, önemli varlıklar için ek açıklamalar oluşturmamıza ve her satırda metin derlemi ve ek açıklamalar içeren JSON biçiminde eğitim verileri oluşturmamıza olanak tanır.

Veri setinin anlık görüntüsü aşağıdaki gibidir:

Yukarıdaki veri seti 220 açıklamalı özgeçmişten oluşmaktadır. Modeli 200 özgeçmiş verisi ile eğitiyor ve 20 özgeçmiş verisi üzerinde test ediyoruz.

Python'da özel bir model eğitmek için spacy modelini kullanın:

Veri formatı:

DataTurks açıklama aracı tarafından oluşturulan JSON format verilerinin bir örneği aşağıdaki gibidir:

Model eğitimi:

Ner modelini eğitmek için python'un spacy modülünü kullanıyoruz. Spacy'nin modeli istatistikseldir. Verdikleri her "karar" - örneğin, fonetik simgenin hangi kısmının atanacağı veya bir sözcüğün adlandırılmış bir varlık olup olmadığı bir tahmindir. Bu tahmin, modelin eğitim sırasında gördüğü örneklere dayanmaktadır.

Ardından model etiketlenmemiş metni görüntüler ve tahminlerde bulunur. Doğru cevabı bildiğimiz için, modelin tahmini ile ilgili geri bildirimini kayıp fonksiyonunun hata gradyanı şeklinde verebilir ve eğitim örneği ile beklenen çıktı arasındaki farkı hesaplayabiliriz. Fark ne kadar büyükse, gradyan ve model güncellemeleri o kadar belirgin olur.

Bir modeli eğitirken, sadece bizim örneklerimizi hatırlamasını istemiyoruz - diğer örneklerde genelleştirilebilecek teoriler üretmesini istiyoruz. Sonuçta, biz sadece modelin buradaki "Amazon" örneğinin bir şirket olduğunu bilmesini istemiyoruz ve bu durumda "Amazon" un büyük olasılıkla bir şirket olduğunu bilmesini istiyoruz. Doğruluğu ayarlamak için, eğitim örneklerimizi gruplar halinde işliyoruz ve mini grup ve bırakma ile deneyler yapıyoruz.

Elbette bir model örneğini sadece bir kez göstermek yeterli değildir. Özellikle sadece birkaç örneğiniz varsa, birden fazla yineleme için eğitim almanız gerekecektir. Her yinelemede, modelin örneklerin sırasına göre genelleşmemesini sağlamak için eğitim verileri karıştırılır.

Öğrenme etkisini iyileştirmenin bir başka yolu, bireysel özelliklerin ve temsillerin rastgele "silinme" hızı olan bir bırakma ayarlamaktır. Bu, modelin eğitim verilerini hatırlamasını zorlaştırır. Örneğin, 0,25'lik bir bırakma, her özelliğin veya dahili gösterimin 1/4 oranında düşme şansına sahip olduğu anlamına gelir. Modeli 10 dönem için eğittik ve bırakma oranını 0.2'de tuttuk.

Aşağıda, modeli eğitmek için bir kod parçacığı verilmiştir:

DataTurks-Engg / Entity-Recognition-In-Resumes-SpaCyContribute to Entity-Recognition-In-Resumes-SpaCy development by create a account by GitHub.github.com

Spacy modelinin sonuçları ve değerlendirilmesi:

Model 20 özgeçmiş üzerinde test edildi ve tahmin edilen özet özgeçmişler her özgeçmiş için ayrı bir txt dosyası olarak saklandı.

Test modelinin her bir özgeçmişi için, model tarafından tanımlanan her bir varlığın doğruluk puanını, kesinliğini, geri çağırma ve F puanını hesaplarız. Her varlık için bu metrikler bir araya getirilir ve 20 özgeçmiş içeren test verilerine dayalı modeli değerlendirmek için genel bir puan oluşturmak üzere ortalaması alınır. Aşağıdaki tüzel kişi değerlendirmesinin sonuçlarına bakın. Sonuçlar, tahmin sonuçlarının iyi doğruluğa sahip olduğunu göstermektedir.

Model tahminimiz aracılığıyla elde edilen, beauty.com'daki bir çalışanın ifşa edilmemiş bir özgeçmişinin örnek özeti aşağıdaki gibidir:

Accenture çalışan özgeçmişlerine indeed.com adresinden ulaşılabilir.

Özgeçmiş özetinin çıktısı

Özel bir model eğitmek için Java'daki Stanford NER modelini kullanın:

Veri seti biçimi:

Eğitim verileri bir metin dosyası biçiminde iletilmelidir, böylece her satır, sözcük ve etiket etiketlerinin bir sekme durağıyla ayrıldığı bir sözcük etiket çifti içerir. Metin dokümanları için, örneğimizde olduğu gibi, dokümanı kelime olarak işaretliyoruz, her kelime için bir satır ekliyoruz ve ilgili etiketleri eğitim dosyasına ekliyoruz. Bir sonraki dosyanın başlangıcını belirtmek için eğitim dosyasına boş bir satır ekledik.

Aşağıda, girdi eğitim dosyasına bir örnek verilmiştir:

Not: Her kelime bir etiket içermelidir. Burada önemsemediğimiz kelimeler için "0" etiketini kullanıyoruz.

Özellikler dosyası: Stanford corenlp, özel bir model oluşturmak için gerekli parametreleri içeren bir özellikler dosyasına ihtiyaç duyar. Örneğin, öğrenme, vb. İçin fonksiyonları çıkarmak için yöntemler tanımlayabiliriz. Aşağıda bir özellikler dosyası örneği verilmiştir:

# eğitim filetrainFile konumu = ./standford_train.txt# # sınıflandırıcınızı kaydetmek (serileştirmek) istediğiniz konum; sonunda .gz eklemek, dosyayı otomatik olarak gzip eder, # daha küçük hale getirir ve daha hızlı hale getirir model.ser.gz # eğitim dosyanızın yapısı; bu, sınıflandırıcıya # sözcüğün 0. sütunda ve doğru cevabın sütun 1map = word = 0, answer = 1 # olduğunu söyler. Bu, CRF'nin sırasını belirtir: sıra 1, # özelliklerin en fazla önceki sınıf ve mevcut sınıfın bir sınıf çiftine uygulandığı anlamına gelir # veya mevcut sınıf ve sonraki sınıf. MaxLeft = 1 # bunlar eğitmek istediğimiz özelliklerdir # bazıları aşağıda tartışılmıştır, geri kalanı # NERFeatureFactoryuseClassFeature = trueuseWord = true # word karakteri ngramları 6 uzunluğa kadar önekler # ve sonekler olarak dahil edilecektir kelime şekli ile e featuresuseTypeSeqs = trueuseTypeSeqs2 = trueuseTypeySequences = true # wordShape = chris2useLCwordShape = none # useBoundarySequences = true # useNeighborNGrams = true # useTaggySequences = true # printFeatures = true # saveFeatureIndexToDWisklys = true # true

Model eğitimi:

Stanford Üniversitesi'ndeki ana sınıf corenlp, gerçek modele sahip olan crfclassifier'dır. Github'da sağlanan kodda (bağlantı aşağıda eklenmiştir), eğitim verilerini ve öznitelik dosyalarını kullanarak modeli eğitmek ve her eğitimin zaman tüketimini önlemek için modeli diske kaydetmek için kodu sağlıyoruz. Bir dahaki sefere, modeli görünmez bir belgeyi tahmin etmek için kullandığımızda, yalnızca eğitilmiş modeli diskten yüklememiz ve sınıflandırmak için kullanmamız gerekir.

Çıktıdaki ilk sütun giriş etiketini içerirken, ikinci sütun doğru etikete başvurur ve üçüncü sütun sınıflandırıcı tarafından tahmin edilen etikettir.

Modeli eğitmek ve diske kaydetmek için kullanılan kod parçacığı:

DataTurks-Engg / Varlık-Tanıma-Özgeçmişlerde-StanfordNER

GitHub.github.com'da bir hesap oluşturarak Varlık Tanıma Özgeçmişlerinde StanfordNER geliştirmeye katkıda bulunun

Stanford NER modelinin sonuçları ve değerlendirmesi:

Model 20 özgeçmiş üzerinde test edildi ve tahmin edilen özet özgeçmişler her özgeçmiş için ayrı bir txt dosyası olarak saklandı.

Test modelinin her bir özgeçmişi için, model tarafından tanımlanan her bir varlığın doğruluk puanını, kesinliğini, geri çağırma ve F puanını hesaplarız. Her varlık için bu metrikler bir araya getirilir ve 20 özgeçmiş içeren test verilerine dayalı modeli değerlendirmek için genel bir puan oluşturmak üzere ortalaması alınır. Aşağıdaki tüzel kişi değerlendirmesinin sonuçlarına bakın. Sonuçlar, tahmin sonuçlarının iyi doğruluğa sahip olduğunu göstermektedir.

Modelimiz tarafından tahmin edilen beauty.com'daki bir çalışanın ifşa edilmemiş bir özgeçmişine bir örnek aşağıdaki gibi özetlenmiştir:

Örnek bir özgeçmiş

Özetlenmiş sonuçlar (çıktı)

Spacy, Stanford Ner ve en gelişmiş modelin karşılaştırması:

Gerçek dünyadaki özgeçmiş belgesindeki etiketlerin çoğu yaygın olarak tanımlanan varlık adlarının bir parçası değildir, bu nedenle temel doğruluk ve geri çağırma çok yüksektir, genellikle% 90'dan fazladır; bu mantığa göre, iki modelin varlık doğruluğu geri çağırma değerleri eşdeğerdir bu iyi.

Modelin ve gözlemlenen sonuçların değerlendirilmesinden Spacy, özgeçmişleri özetleme görevinde Stanford Üniversitesi'nden Ner'den daha iyi görünüyor. İki model tarafından belirlenen varlıkların F puanlarının incelenmesi aşağıdaki gibidir:

Bu özgeçmiş veri kümesidir.

Yukarıdaki projeleri eğitmek için kullanılan Python kodu GitHub kitaplığı. Stanford NER modeli Java kodu GitHub deposu.

Teşekkürler Hamza Bendemra.

Bu makalenin ilgili bağlantılarını ve referanslarını görüntülemeye devam etmek ister misiniz?

Bağlantıya uzun basın ve [Adlandırılmış Varlık Tanıma (NER) Genel Bakış] öğesini açmak için tıklayın veya tıklayın:

https://ai.yanxishe.com/page/TextTranslation/1434

AI Araştırma Enstitüsü heyecan verici içerikleri günlük olarak güncelliyor ve daha heyecan verici içerikler izliyor: Lei Feng Wang Lei Feng Wang Lei Feng Wang

Görüntü sınıflandırması için ipuçları envanteri

Dinamik programlama: Binom dizisi

LSTM modeli oluşturmak ve parametreleri ayarlamak için Keras nasıl kullanılır

Bir makale size PyTorch ile daha hızlı RCNN'yi nasıl oluşturacağınızı öğretiyor

Çevirmenizi bekliyorum:

Nöral NLP işlemede anlamsal yapıdan nasıl bahsedilir

Uyuyor musun? Neden kalkıp uykunuzu sınıflandırmıyorsunuz?

Gelişmiş DQN'ler: Derin Pekiştirmeli Öğrenme ile Pac-Man Oynamak

Kapsamlı pekiştirmeli öğrenmede yeni eğilimler: Google, pekiştirmeli öğrenim aracılarına merakı nasıl getiriyor

Yüce, sacai, ortak addan sonra JAPONYA beyni! KUZEY YÜZ işbirliğini yeniden başlatıyor!
önceki
"İşe Alım İzleme" Temmuz ayının en havalı gişe rekorları kıran filmi "Di Renjie: Dört Göksel Kral" biletleri kapmaya başladı!
Sonraki
2018'de Çin'e taşınan Çince karakterler açıklandı! Ödül konuşmasının tam metni (koleksiyon)
[Chongqing Cloud Flower Expo] Gökyüzünde bir çiçek denizi görmek nasıl bir deneyim? Banan Rocky Beach sizi uçmaya götürüyor!
Qoros 3 Hatchback'in boyutu, 1.6L / 1.6T ile Golf'ten çok daha büyük
"Gökyüzünde Kurtarma": Dashi Johnson filmin sıkıcılığını kurtaramaz!
BAIC Magic Speed H5, üçüncü çeyrekte panoramik sunroof vb. İle piyasaya sürülecek.
"Sınırsız Kuzey": Okuduktan sonra gökyüzünün artık çok sıcak olmadığını hissediyorum!
Mesleki eğitimin yeni döneminden bahsetmişken, ortaöğretim meslek mezunlarının istihdam oranı 10 yıl üst üste% 95'in üzerinde
MG ZS Nebula, İnternet araç hayatının tadını çıkarmayı planlıyor
Shell Finding Housing, Chongqing'in "2018 Kentsel Konut Raporu" nu Açıkladı
TensorFlow 2.0'ın sembolik API'sinin ve zorunlu API'sinin ayrıntılı açıklaması
JD Süpermarket Yıllık Sıralaması Listede sıklıkla satın aldığınız herhangi bir marka var mı?
Honor 20iAape özelleştirilmiş modeller geliyor mu? Glory, moda markası Aape ile bağlantılı olacak
To Top