Deep Learning ile Türkçe Metin Özetleme


#1

Herkese merhaba,

Ben yüksek lisans tez çalışmam için kaynak araştırıyorum. Konum derin öğrenme ile Türkçe metin özetleme. Bu konuda bana kaynak kitap, web sitesi vs önerebilir misiniz?

Şimdiden teşekkürler.


#2

Çok geniş bir soru, bence öncelikle hali hazırda bulduğun kaynakları, başlangıç noktanı belirtmen daha faydalı olur, tabii en azından konuyla ilgili google araması yaptığını varsayarak :slight_smile:

İlk başta ihtiyacın dataset. Türkçe için bildiğim kadarıyla bir özet dataseti yok, ingilizce olanları MT ile çevirmek bir fikir olabilir ya da bir şekilde crawling vs ile dataset üretmek.

Diğer tavisyem de önce dil ayrımı gözetmeksizin genel özetleme literatürüne bakıp sonra Türkçe dataseti ile kullanmayı düşünebilirsin.

İki tür özetleme var, abstractive/extractive, hangisini yapmak istediğine karar vermen gerekir bir de.

Pek fazla kaynak öneremedim ama bu konuda ciddi olarak çalışıyorsan kaynak benim :slight_smile: gel beni bul :smiley:


#6

Şimdiye kadar ingilizce metin özetleme, sınıflandırma, duygu analizi ile ilgili çalışmalar yaptım. LSTM ve Seq2Seq modellerini kullandım. Facebook fastText kütüphanesinden faydalandım ve orada Türkçe pre-trained word vector modellerini indirdim. Ama Türkçe’ye döndüğüm zaman verisetinden itibaren problem yaşıyorum. İngilizce için yaptığım bir kaç uygulamada Türkçe’yi denedim ama sonuçlar çok kötü geldi. Bu yüzden temelden bi yönledirme ya da kaynak olursa çok iyi olur. Ve sizi buldum hadi yapalım bir şeyler :))


#11

Öncelikle abstractive veya extractive summarization çeşitlerinden birini seçmeniz gerekiyor.

Extractive summarization’da bir metni özetlemek için içerisinden cümleler seçiliyor. Bu tarz bir summarization için metinlerden cümleleri manuel seçerek bir dataset oluşturabilirsin.

Abstractive summarization bence daha güncel ve heyecan verici bir konu. Bu çeşit summarizationda metni özetleyen ifadeyi modeller üretiyor. Dataset olarak haber sitelerinin bold yazan ilk paragrafını özet, geri kalanını da özetlenecek metin olarak kullanabiilirsin. Oluşturduğun dataseti kullarak pointer networks ve self attention gibi yöntemler deneyebilirsin. Open NMT bu konuda faydalı olabilir. Şu github sayfasına bakmanı öneririm: https://github.com/OpenNMT/OpenNMT-py/blob/master/docs/source/Summarization.md Oluşturduğun dataseti de bir yayında paylaşırsan Türkçe için önemli bir iş olmuş olur. Kolay gelsin.


#10

fastText’in hazır Türkçe embeddingleri çöp. İnternetten bulacağın her türlü yabancı kaynaklı Türkçe embedding çöp. Tokenization aşamasında ingilizce için olan yöntemleri kullandıkları için (genelde hazır perl scripti) vocabulary size çok büyük oluyor ve data da az olduğundan (Türkçe wikipedia) çok iyi sonuçlar ortaya çıkmıyor. Elinde sadece wiki dumpı varsa word piece’e göre bölüp ona göre fastText/word2vec/glove/elmo/bert vs train etmen lazım. Elinde wiki + daha büyük corpus varsa (internette hazır türkçe corpuslar var, ya da kendin crawl edebilirsin) daha iyi olur. Bu şekilde train ettiğin kelime vektörleri çok daha iyi sonuç verir, bunun dışında da zaten türkçeye özel bişey yapmana gerek yok. Başlangıç için şuraya bakabilirsin.


#3

Türkçe ve Deep Nlp gerçekten zor işler , malum türkçenin kendine özgü yapısı genel deep nlp ile alakalı kuralların uygulanmasını hayli zorluyor.Üstelik data problemide ayrı bir konu. Bu vesile ile aslında nlp ile ilgelenen arkdaşlar toplanıp farklı, konularda bir dataset oluşturma çalışması yapılabilir diye düşünüyorum. Sonuçta hepimiz kullanacağız.


#5

Türkçe ve Deep NLP zor iş falan değil. Sadece bu ülkede kimse kafa yormaya tenezzül etmiyor. Varsa yoksa birisi yapsın, ben c/p yapıyımcılık.


#4

Kendi datasetini hazırlarsın, sonrada literatürdeki tüm algoritmaları Türkçe’ye de uygularsın. Daha iyi sonuç almak için sadece Türkçe’nin yapısını düşünmen yeter. Hatta Türkçe’nin yapısını bile düşünmene gerek yok, yeni language modellerin hepsi ekstra morfolojik analiz/disambugiation yapmaksızın iyi performans veriyor.


#7

O zaman farklı bir konuya mı yönelmeliyim ?


#8

Dataset hazırlama konusunda problem yaşıyorum biraz. Ama dediğiniz gibi yaptığım uygulamarda Türkçe metin verince sonuçlar çok kötü çıkıyor. Sizin denediğiniz örnek çalışma var mı ya da önerebileceğiniz kaynak?


#9

Dataset hazırlamada nasıl bir sıkıntı yaşıyorsun ki? Şayet halihazırda Türkçe bir dataset varsa al onu kullan. Yoksa (ki oturup aranmadım, herkes google’da kendi literatür aramasını yapmalı sonuçta) hangi uzunluktaki textlerde çalışacağına karar verip, o text’in tamamını alıcaksın sonrada kaç cümlelik istiyorsan ona göre oturup kendin özet çıkaracaksın. Amelelik mi? Evet. Yapmak zorunda mısın? Bu işi nihayete erdirmek istiyorsan, evet. Ya da böyle bir dataseti otomatize nasıl çıkartırsın diye düşünürsün; ama kabul edelim bu da apayrı bir proje (vaktin varsa yap tabii =)).

Onun haricinde bir algoritmaya bodoslama Türkçe metin verince mi kötü sonuç aldın? Nasıl yöntemler izledin vs bunları söylemezsen bir şey öneremem. Bundan 5 sene önce Huawei’de çalıştığım sırada, gayet Text CNN ile wikipedia (Türkçe/İngilizce) özetleri çıkarabiliyorduk. Gayette iyi sonuçlar veriyordu.