|
3 weeks ago | |
---|---|---|
.. | ||
solution | 3 weeks ago | |
README.md | 3 weeks ago | |
assignment.md | 3 weeks ago |
README.md
Çeviri ve Duygu Analizi ile Makine Öğrenimi
Önceki derslerde, temel NLP görevlerini gerçekleştirmek için sahne arkasında ML kullanan bir kütüphane olan TextBlob
ile basit bir bot oluşturmayı öğrendiniz. Hesaplamalı dilbilimin bir diğer önemli zorluğu, bir cümleyi bir konuşulan veya yazılı dilden diğerine doğru bir şekilde çevirme işlemidir.
Ders Öncesi Test
Çeviri, binlerce dilin varlığı ve her birinin çok farklı dilbilgisi kurallarına sahip olabilmesi nedeniyle oldukça zor bir problemdir. Bir yaklaşım, bir dilin (örneğin İngilizce) resmi dilbilgisi kurallarını dil bağımsız bir yapıya dönüştürmek ve ardından başka bir dile çevirerek geri dönüştürmektir. Bu yaklaşım şu adımları içerir:
- Tanımlama. Girdi dilindeki kelimeleri isim, fiil vb. olarak tanımlayın veya etiketleyin.
- Çeviri oluşturma. Hedef dil formatında her kelimenin doğrudan çevirisini üretin.
Örnek cümle, İngilizceden İrlandacaya
İngilizcede I feel happy cümlesi üç kelimeden oluşur ve sıralaması şu şekildedir:
- özne (I)
- fiil (feel)
- sıfat (happy)
Ancak, İrlandaca dilinde aynı cümle çok farklı bir dilbilgisi yapısına sahiptir - "mutlu" veya "üzgün" gibi duygular üzerinde olma durumu olarak ifade edilir.
İngilizce I feel happy
ifadesi İrlandacada Tá athas orm
olur. Kelime kelime çeviri Mutluluk benim üzerimde
şeklinde olur.
Bir İrlandaca konuşan kişi İngilizceye çeviri yaparken Happy is upon me
yerine I feel happy
der, çünkü cümlenin anlamını anlar, kelimeler ve cümle yapısı farklı olsa bile.
İrlandaca cümle için resmi sıralama şu şekildedir:
- fiil (Tá veya is)
- sıfat (athas veya happy)
- özne (orm veya upon me)
Çeviri
Basit bir çeviri programı yalnızca kelimeleri çevirir ve cümle yapısını görmezden gelir.
✅ Eğer bir yetişkin olarak ikinci (veya üçüncü ya da daha fazla) bir dil öğrenmişseniz, muhtemelen ana dilinizde düşünerek, bir kavramı kelime kelime kafanızda ikinci dile çevirerek ve ardından çevirinizi konuşarak başlamış olabilirsiniz. Bu, basit çeviri bilgisayar programlarının yaptığına benzer. Akıcılık kazanmak için bu aşamayı geçmek önemlidir!
Basit çeviri kötü (ve bazen komik) yanlış çevirilere yol açar: I feel happy
İrlandacaya kelime kelime çevrildiğinde Mise bhraitheann athas
olur. Bu, kelime kelime ben hissediyorum mutluluk
anlamına gelir ve geçerli bir İrlandaca cümle değildir. İngilizce ve İrlandaca, birbirine yakın iki adada konuşulan diller olmasına rağmen, çok farklı dilbilgisi yapısına sahip dillerdir.
İrlanda dil gelenekleri hakkında bu video gibi bazı videolar izleyebilirsiniz.
Makine öğrenimi yaklaşımları
Şimdiye kadar, doğal dil işleme için resmi kurallar yaklaşımını öğrendiniz. Bir diğer yaklaşım ise kelimelerin anlamını görmezden gelmek ve makine öğrenimini kullanarak kalıpları tespit etmektir. Bu, hem kaynak hem de hedef dillerde çok fazla metin (corpus) veya metinler (corpora) varsa çeviri için işe yarayabilir.
Örneğin, Jane Austen tarafından 1813 yılında yazılmış ünlü İngiliz romanı Pride and Prejudice (Gurur ve Önyargı) durumunu ele alalım. Kitabı İngilizce olarak ve kitabın Fransızca insan çevirisini incelerseniz, bir dildeki ifadelerin diğerine deyimsel olarak çevrildiğini tespit edebilirsiniz. Bunu birazdan yapacaksınız.
Örneğin, İngilizce I have no money
ifadesi Fransızcaya kelime kelime çevrildiğinde Je n'ai pas de monnaie
olabilir. "Monnaie" Fransızca'da yanıltıcı bir 'false cognate'dir, çünkü 'money' ve 'monnaie' eş anlamlı değildir. İnsan çevirmen tarafından yapılabilecek daha iyi bir çeviri Je n'ai pas d'argent
olur, çünkü bu, paranızın olmadığını (bozuk para anlamına gelen 'monnaie' yerine) daha iyi ifade eder.
Görsel: Jen Looper
Eğer bir ML modeli, her iki dilde de uzman insan konuşmacılar tarafından daha önce çevrilmiş metinlerdeki ortak kalıpları tespit etmek için yeterli insan çevirisine sahipse, çevirilerin doğruluğunu artırabilir.
Alıştırma - çeviri
Cümleleri çevirmek için TextBlob
kullanabilirsiniz. Pride and Prejudice'ın ünlü ilk cümlesini deneyin:
from textblob import TextBlob
blob = TextBlob(
"It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife!"
)
print(blob.translate(to="fr"))
TextBlob
çeviriyi oldukça iyi yapar: "C'est une vérité universellement reconnue, qu'un homme célibataire en possession d'une bonne fortune doit avoir besoin d'une femme!".
TextBlob'ın çevirisinin, kitabın 1932 Fransızca çevirisi olan V. Leconte ve Ch. Pressoir tarafından yapılan çeviriden çok daha kesin olduğu söylenebilir:
"C'est une vérité universelle qu'un célibataire pourvu d'une belle fortune doit avoir envie de se marier, et, si peu que l'on sache de son sentiment à cet egard, lorsqu'il arrive dans une nouvelle résidence, cette idée est si bien fixée dans l'esprit de ses voisins qu'ils le considèrent sur-le-champ comme la propriété légitime de l'une ou l'autre de leurs filles."
Bu durumda, ML tarafından bilgilendirilen çeviri, gereksiz yere orijinal yazarın ağzına kelimeler koyan insan çevirmeninden daha iyi bir iş çıkarır.
Burada neler oluyor? Ve neden TextBlob çeviride bu kadar iyi? Aslında, sahne arkasında Google Translate kullanıyor, milyonlarca ifadeyi analiz edebilen ve görev için en iyi dizeleri tahmin edebilen sofistike bir yapay zeka. Burada manuel bir işlem yok ve
blob.translate
kullanmak için bir internet bağlantısına ihtiyacınız var.
✅ Daha fazla cümle deneyin. Hangisi daha iyi, ML mi yoksa insan çevirisi mi? Hangi durumlarda?
Duygu Analizi
Makine öğreniminin çok iyi çalışabileceği bir diğer alan duygu analizidir. Duyguya yönelik bir ML olmayan yaklaşım, 'pozitif' ve 'negatif' olan kelimeleri ve ifadeleri tanımlamaktır. Ardından, yeni bir metin verildiğinde, genel duyguyu belirlemek için pozitif, negatif ve nötr kelimelerin toplam değerini hesaplayın.
Bu yaklaşım, Marvin görevinde gördüğünüz gibi kolayca yanıltılabilir - Great, that was a wonderful waste of time, I'm glad we are lost on this dark road
cümlesi alaycı, negatif bir duygu cümlesidir, ancak basit algoritma 'great', 'wonderful', 'glad' kelimelerini pozitif ve 'waste', 'lost' ve 'dark' kelimelerini negatif olarak algılar. Genel duygu bu çelişkili kelimelerle etkilenir.
✅ Bir insan konuşmacı olarak alaycılığı nasıl ilettiğimizi bir saniye durup düşünün. Ses tonlaması büyük bir rol oynar. "Well, that film was awesome" ifadesini farklı şekillerde söyleyerek sesinizin anlamı nasıl ilettiğini keşfetmeye çalışın.
ML Yaklaşımları
ML yaklaşımı, negatif ve pozitif metin gruplarını - tweetler, film incelemeleri veya bir insanın bir puan ve yazılı bir görüş verdiği herhangi bir şeyi - manuel olarak toplamak olacaktır. Ardından, görüşlere ve puanlara NLP teknikleri uygulanabilir, böylece kalıplar ortaya çıkar (örneğin, pozitif film incelemelerinde 'Oscar worthy' ifadesi negatif film incelemelerine göre daha sık görülür veya pozitif restoran incelemelerinde 'gourmet' kelimesi 'disgusting' kelimesinden çok daha fazla kullanılır).
⚖️ Örnek: Bir politikacının ofisinde çalıştığınızı ve tartışılan yeni bir yasa olduğunu varsayalım. Vatandaşlar, belirli yeni yasayı destekleyen veya karşı çıkan e-postalar yazabilir. Diyelim ki, e-postaları okuyup iki yığın halinde sıralamakla görevlisiniz: destekleyen ve karşı çıkan. Çok fazla e-posta varsa, hepsini okumaya çalışırken bunalmış hissedebilirsiniz. Tüm e-postaları sizin için okuyabilecek, anlayabilecek ve her bir e-postanın hangi yığında olması gerektiğini söyleyebilecek bir botun olması güzel olmaz mıydı?
Bunu başarmanın bir yolu Makine Öğrenimi kullanmaktır. Modeli, karşı çıkan e-postaların bir kısmı ve destekleyen e-postaların bir kısmı ile eğitirsiniz. Model, karşı çıkan taraf ve destekleyen taraf ile belirli ifadeleri ve kelimeleri ilişkilendirme eğiliminde olur, ancak içeriği anlamaz, yalnızca belirli kelimelerin ve kalıpların bir karşı çıkan veya destekleyen e-postada daha sık ortaya çıkma olasılığı olduğunu bilir. Modeli, eğitmek için kullanmadığınız bazı e-postalarla test edebilir ve sizinle aynı sonuca ulaşıp ulaşmadığını görebilirsiniz. Ardından, modelin doğruluğundan memnun olduğunuzda, gelecekteki e-postaları her birini okumak zorunda kalmadan işleyebilirsiniz.
✅ Bu süreç, önceki derslerde kullandığınız süreçlere benziyor mu?
Alıştırma - duygusal cümleler
Duygu, -1 ile 1 arasında bir polarite ile ölçülür, bu da -1'in en negatif duygu, 1'in ise en pozitif duygu olduğu anlamına gelir. Duygu ayrıca 0 - 1 arasında bir nesnellik (0) ve öznelik (1) puanı ile ölçülür.
Jane Austen'ın Pride and Prejudice kitabına tekrar bir göz atın. Metin, Project Gutenberg adresinde mevcuttur. Aşağıdaki örnek, kitabın ilk ve son cümlelerinin duygusunu analiz eden ve duygu polaritesini ve öznelik/nesnellik puanını gösteren kısa bir programı göstermektedir.
Bu görevde TextBlob
kütüphanesini (yukarıda açıklanmıştır) kullanarak sentiment
belirlemeniz gerekir (kendi duygu hesaplayıcınızı yazmanız gerekmez).
from textblob import TextBlob
quote1 = """It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife."""
quote2 = """Darcy, as well as Elizabeth, really loved them; and they were both ever sensible of the warmest gratitude towards the persons who, by bringing her into Derbyshire, had been the means of uniting them."""
sentiment1 = TextBlob(quote1).sentiment
sentiment2 = TextBlob(quote2).sentiment
print(quote1 + " has a sentiment of " + str(sentiment1))
print(quote2 + " has a sentiment of " + str(sentiment2))
Aşağıdaki çıktıyı görürsünüz:
It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want # of a wife. has a sentiment of Sentiment(polarity=0.20952380952380953, subjectivity=0.27142857142857146)
Darcy, as well as Elizabeth, really loved them; and they were
both ever sensible of the warmest gratitude towards the persons
who, by bringing her into Derbyshire, had been the means of
uniting them. has a sentiment of Sentiment(polarity=0.7, subjectivity=0.8)
Zorluk - duygu polaritesini kontrol etme
Göreviniz, duygu polaritesini kullanarak Pride and Prejudice kitabında kesinlikle pozitif cümlelerin kesinlikle negatif cümlelerden daha fazla olup olmadığını belirlemektir. Bu görev için, polarite puanı 1 veya -1 olan bir cümlenin kesinlikle pozitif veya negatif olduğunu varsayabilirsiniz.
Adımlar:
- Pride and Prejudice kitabının bir kopyasını Project Gutenberg'den .txt dosyası olarak indirin. Dosyanın başındaki ve sonundaki metadataları kaldırarak yalnızca orijinal metni bırakın.
- Dosyayı Python'da açın ve içeriği bir string olarak çıkarın.
- Kitap stringi kullanarak bir TextBlob oluşturun.
- Kitaptaki her cümleyi bir döngüde analiz edin.
- Eğer polarite 1 veya -1 ise cümleyi pozitif veya negatif mesajlar listesine kaydedin.
- Sonunda, tüm pozitif cümleleri ve negatif cümleleri (ayrı ayrı) ve her birinin sayısını yazdırın.
İşte bir örnek çözüm.
✅ Bilgi Kontrolü
- Duygu, cümlede kullanılan kelimelere dayanır, ancak kod kelimeleri anlıyor mu?
- Duygu polaritesinin doğru olduğunu düşünüyor musunuz, başka bir deyişle, puanlarla aynı fikirde misiniz?
- Özellikle aşağıdaki cümlelerin kesinlikle pozitif polaritesiyle aynı fikirde misiniz veya değil misiniz?
- “What an excellent father you have, girls!” said she, when the door was shut.
- “Your examination of Mr. Darcy is over, I presume,” said Miss Bingley; “and pray what is the result?” “I am perfectly convinced by it that Mr. Darcy has no defect.
- How wonderfully these sort of things occur!
- I have the greatest dislike in the world to that sort of thing.
- Charlotte is an excellent manager, I dare say.
- “This is delightful indeed!
- I am so happy!
- Your idea of the ponies is delightful.
- Aşağıdaki 3 cümle kesinlikle pozitif bir duygu ile puanlanmış, ancak dikkatli bir okuma yapıldığında pozitif cümleler değildir. Duygu analizi neden bu cümleleri pozitif olarak değerlendirdi?
- Happy shall I be, when his stay at Netherfield is over!” “I wish I could say anything to comfort you,” replied Elizabeth; “but it is wholly out of my power.
- If I could but see you as happy!
- Our distress, my dear Lizzy, is very great.
- Aşağıdaki cümlelerin kesinlikle negatif polaritesiyle aynı fikirde misiniz veya değil misiniz?
- Everybody is disgusted with his pride.
- “I should like to know how he behaves among strangers.” “You shall hear then—but prepare yourself for something very dreadful.
- The pause was to Elizabeth’s feelings dreadful.
- It would be dreadful!
- Özellikle aşağıdaki cümlelerin kesinlikle pozitif polaritesiyle aynı fikirde misiniz veya değil misiniz?
✅ Jane Austen'ın herhangi bir hayranı, yazarın kitaplarını İngiliz Regency toplumunun daha saçma yönlerini eleştirmek için sıklıkla kullandığını anlayacaktır. Pride and Prejudice kitabının ana karakteri Elizabeth Bennett, keskin bir sosyal gözlemcidir (yazar gibi) ve dili genellikle oldukça nüanslıdır. Hatta Mr. Darcy (hikayenin aşk ilgisi) Elizabeth'in dilini eğlenceli ve alaycı bir şekilde kullanmasını fark eder: "Sizinle tanışma zevkine yeterince uzun süredir sahibim ve ara sıra kendi görüşlerinizi ifade etmekten büyük keyif aldığınızı biliyorum."
🚀Zorluk
Kullanıcı girdisinden diğer özellikleri çıkararak Marvin'i daha da geliştirebilir misiniz?
Ders Sonrası Test
Gözden Geçirme ve Kendi Kendine Çalışma
Metinden duygu çıkarımı yapmanın birçok yolu vardır. Bu tekniği kullanabilecek iş uygulamalarını düşünün. Bunun nasıl yanlış sonuçlar verebileceğini düşünün. Duygu analizi yapan, gelişmiş ve kurumsal kullanıma hazır sistemler hakkında daha fazla bilgi edinin, örneğin Azure Text Analysis. Yukarıdaki Pride and Prejudice cümlelerinden bazılarını test edin ve nüansı algılayıp algılayamadığını görün.
Ödev
Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hata veya yanlışlık içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalardan sorumlu değiliz.