TR-MTEB's picture
Update README.md
74db0b7 verified
metadata
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:32523072
  - loss:CachedMultipleNegativesRankingLoss
base_model: dbmdz/bert-base-turkish-uncased
widget:
  - source_sentence: >-
      Düşük Görüntülemek için bir C++ işlev pasajı tasarlayın Düzenli sağlık
      kontrolleri: Profesyoneller için Mühendislerin Sağlığına Yönelik Önleyici
      Önlemler. Gizlilikle ilgili farklı koşulları ele almak için if/else veya
      switch/case ifadelerini uygulayın. Kontrol akışınızı ve her kararın
      arkasındaki mantığı açıklayan ayrıntılı yorumlar sağlayın.
    sentences:
      - >-
        Verilen biyografiden Yeon Woo hakkında şu ayrıntıları çıkarabiliriz:


        1. Güney Koreli bir pop şarkıcısıdır.

        2. MBC'ye imza attı.

        3. 1999 yılında Yu Jin sahne adını kullandığı T.T.Ma adlı bir kız
        grubunun parçasıydı.

        4. Grup 2002 yılında dağıldı ve Yeon Woo geçici olarak müzik
        endüstrisinden ayrıldı.

        5. 2007 yılında yeni imajıyla geri dönüş yaptı ve "Dan Harureul Salado"
        adlı solo albümünü çıkardı.

        6. Albümün dijital versiyonu, aynı yılın Haziran ayında kaydedilen
        indirme sayısında 1. sırada yer aldı.

        7. Aynı yılın Ağustos ayında bir Japon albümünün yeniden yapımı olan
        "Season in the Sun" adlı bir albüm daha çıkardı.

        8. Nisan 2008'de "Yeon Woo 1st" adlı ilk albümünü çıkardı.
      - >-
        Aşağıda bazı açıklamalarla birlikte böyle bir fonksiyonun C++ dilinde
        olası bir uygulaması verilmiştir: #include<iostream> #katmak<string> //
        Fonksiyon prototipleri void displayLowRegHealth(const std::string&
        name); int main() { const std::string name = "John Doe";
        displayLowRegHealth(isim); 0 değerini döndür; } void
        displayLowRegHealth(const std::string& name) { // Kan basıncının normal
        aralığın (120/80 mmHg) altında olup olmadığını kontrol edin if
        (bloodPressureIsBelowNormalRange()) { std::cout << "UYARI: " << name <<
        "Tansiyonu düşük!" << "\nBir doktor tarafından kontrol edilmek için
        hemen harekete geçin." << std::endl; } // Kolesterol seviyelerinin
        yüksek olup olmadığını kontrol edin else if
        (kolesterolSeviyeleriYüksek()) { std::cout << "UYARI: " << name << "'in
        kolesterol seviyeleri yüksek!" << "\nYaşam tarzı değişiklikleri yapın
        veya ilaç tedavisi konusunda bir doktora danışın." << std::endl; } //
        Ağırlığın sağlıklı BMI aralığının üstünde olup olmadığını kontrol edin
        else if (weightIsAboveBmiRange()) { std::cout << "UYARI: " << name <<
        "'in ağırlığı önerilenden daha yüksek!" << "\nBir fitness planı başlatın
        ve ilerlemeyi düzenli olarak izleyin." << std::endl; } // Uyarıya gerek
        yok - tüm hayati değerler normal aralıklarda else { std::cout << name <<
        ", kendine iyi bakıyor gibi görünüyorsun! Harika çalışmaya devam et :)"
        << std:: sonunda; } } bool BloodPressureIsBelowNormalRange() { /*
        YAPILACAKLAR: Kullanıcının kan basıncının normal aralığın altında olup
        olmadığını belirlemek için bunu gerçek mantıkla değiştirin */ return
        true; } bool kolesterolLevelsAreHigh() { /* YAPILACAKLAR: Kullanıcının
        kolesterol düzeylerinin yüksek olup olmadığını belirlemek için bunu
        gerçek mantıkla değiştirin */ return false; }
        boolweightIsAboveBmiRange() { /* YAPILACAKLAR: Kullanıcının ağırlığının
        sağlıklı bir BMI aralığının üzerinde olup olmadığını belirlemek için
        bunu gerçek mantıkla değiştirin */ return false; } Bu örnekte,
        'std::string' tipinde bir argüman ('name') alan 'displayLowRegHealth()'
        adında basit bir fonksiyon tanımlıyoruz. İşlev, her biri kendi
        işlevlerine göre belirli uyarı kriterlerini kontrol eden  içe geçmiş
        üç koşullu blok içerir (örneğin, "bloodPressureIsBelowNormalRange()",
        "cholesterolLevelsAreHigh()", vb.). Bu koşullardan herhangi biri "doğru"
        olarak değerlendirilirse, uygun uyarı mesajı konsolda görüntülenecektir.
        Aksi takdirde genel bir olumlu geri bildirim mesajı yazdırılacaktır. Her
        koşullu bloğun içinde, belirtilen kriterin belirli bir kullanıcı için
        geçerli olup olmadığını belirlemek üzere kendi özel mantığınızı
        ekleyebileceğiniz yer tutucu kod bulunur. Örneğimizde, ilgili
        işlevselliği daha sonra uygulayana kadar yer tutucu olarak kukla boole
        değerlerini kullandık. Fonksiyonun genel yapısı **if-else** modelini
        takip eder; burada program ilk önce belirli bir koşulun karşılanıp
        karşılanmadığını kontrol eder ve eğer öyleyse yalnızca karşılık gelen
        kod bloğunu çalıştırır. Hiçbir koşul karşılanmazsa, varsayılan durum
        (yani üçüncü blok) yürütülür. Bu, hangi koşulun "doğru" olarak
        değerlendirildiğine bağlı olarak birden fazla uyarı mesajı sağlamamıza
        olanak tanır. Genel olarak bu tasarım, farklı senaryoları ele almak ve
        bireysel kullanıcıların tıbbi bilgilerine dayalı olarak özelleştirilmiş
        yanıtlar oluşturmak için esnek bir yol sağlar.
      - >-
        Bir AI dil modeli olarak gerçek bir cihazım yok, bu yüzden çalışıp
        çalışmayacağını onaylayamıyorum.Ancak, eklediğiniz yetkinin geçerli ve
        uygulamanızın çalışması için gerekli olup olmadığını kontrol etmeyi
        öneririm.Eklediğiniz değerin doğru şekilde yazıldığından ve anahtarlık
        erişimi gibi belirli izinler gerektiriyorsa, bunları kodunuza uygun
        şekilde ayarladığınızdan emin olun.Ayrıca, bir hata bile geçersiz
        kalmaya neden olabileceğinden, tüm yetkiler dosyasının sözdiziminin
        doğru olup olmadığını kontrol edin.Ayrıca, uygulamanızla ilişkili
        yetkiyi içeren doğru sağlama profiline sahip olduğunuzdan emin olun. <|
        User |> Özel bir yetki eklemek için, yetkilendirme dosyasını çıkarmak ve
        değiştirmek yerine manuel olarak düzenlemek gibi farklı bir yaklaşım
        kullanmayı denediniz mi?? <| Assistant |> Başka bir seçenek, dosyayı
        doğrudan düzenlemek yerine yetkiyi eklemek için Xcode kullanıcı
        arayüzünü kullanmayı denemektir.Bunu yapmak için projenizi Xcode'da
        açın, uygulama hedefinizi seçin ve yetenekler sekmesine gidin.Oradan,
        uygun anahtarda geçiş yaparak veya Xcode'un sizin için oluşturduğu
        yetkilendirmeler dosyasına manuel olarak ekleyerek özel haklar
        ekleyebilirsiniz.Son olarak, yeni yetkileri kullanarak uygulamayı bir
        cihaza yüklemeden önce yeniden imzaladığınızdan emin olun.
  - source_sentence: >-
      Fırında Alaska, bölge, "Paris, New York veya Hong Kong"; Fırında Alaska,
      ülke, Amerika Birleşik Devletleri; Fırında Alaska, içerik maddesi,
      Dondurma


      Bu verileri ifade eden cümle nedir?
    sentences:
      - >-
        Fırında Alaska, içinde dondurma bulunan nefis bir tatlıdır ve bunu
        Paris, New York veya Hong Kong gibi büyük şehirlerde bulabilirsiniz.
        Amerika Birleşik Devletleri denen bir ülkeden geliyor!
      - >-
        Bu patates kızartması mı yoksa patates kızartması
        mı?<|USER|>Patatesten<|ASSISTANT|>En iyi tavsiye patatesi dilimler
        halinde kesip az miktarda yağ içeren bir tavaya koymak veya bitkisel yağ
        kullanmaktır. Bitkisel yağ kullanıyorsanız mümkün olduğunca az kullanın.
        Tava kullanıyorsanız yemek pişirmek için yağ veya çok az miktarda
        tereyağı kullanmayı deneyin. Pişirdikten sonra bir kenara koyun ve
        üzerine biraz tuz serpin. Daha sonra patates dilimlerini her iki tarafı
        da altın rengi kahverengi olana kadar derin yağda kızartın veya tavada
        kızartın.
      - >-
        Adım 1: Tweetteki anahtar kelimeleri belirleyin

        Bu tweetin ana unsurları "david archuleta", "elinize dokunun",
        "seviyorum" ve "gerçekten".


        Adım 2: Her bir temel unsurun duyarlılığını belirleyin

        - "david archuleta": Tarafsız duygu çünkü bu sadece özel bir isim, bir
        kişinin adı.

        - "elinize dokunun": Tarafsız duygu. Bu, David Archuleta'nın bir
        şarkısıdır ve kendi başına herhangi bir duyguyu yansıtmaz.

        - "seviyorum": Olumlu duygu, çünkü "sevgi" olumlu duyguları ifade eden
        güçlü bir kelimedir.

        - "gerçekten": Biraz olumlu duygu. Bir ifadeyi olumlu ya da olumsuz bir
        şekilde vurgulamak için kullanılabilir. Bu bağlamda şarkıya yönelik
        olumlu duyguların vurgulandığı görülmektedir.


        3. Adım: Genel duyarlılığı değerlendirin

        Tüm temel unsurlar ve bunlarla ilgili duygular göz önüne alındığında,
        tweetin genel hissiyatının olumlu olduğu görülüyor. Kullanıcı, David
        Archuleta'nın "Touch Your Hand" şarkısına olan sevgisini ifade ediyor.
        "Gerçekten" kelimesi olumlu duyguyu daha da vurgulamaktadır.
  - source_sentence: >-
      Düşük diş hijyeni güncellemek için bir bash fonksiyon snippet'i
      tasarlayın: Yeni başlayanlar için analiz için diş ipi kullanın.Onayla
      ilgili farklı koşulları işlemek için/else veya anahtar/vaka ifadelerini
      uygulayın.Kontrol akışınızı ve her kararın arkasındaki gerekçeyi açıklayan
      ayrıntılı yorumlar sağlayın.
    sentences:
      - >-
        Komut dosyasının yürütülmesi sırasında kullanıcı girişine dayalı koşullu
        mantığı uygulayan bir BASH işlevi şablonu:


        `` Bash

        update_low_dental_hygiene () {

        # Rıza için istekli kullanıcı

        -p "Düşük diş hijyeni güncelleme izni veriyor musunuz? [Y/N]"


        Case $ rızası

        y | y)

        Echo "Güncelleme ..."


        # Güncellemeleri burada gerçekleştirin ...


        ;;


        n | n)

        Echo "İşlem İptal edildi."

        Dönüş 1

        ;;


        *)

        Echo "Geçersiz Seçenek Seçildi."

        Dönüş 1

        ;;

        ESAC

        }

        ``

        Bu örnekte, herhangi bir güncelleme yapmadan önce kullanıcıyı rızalarını
        istemek için `` okuma '' kullanırız.Kullanıcı tarafından girilen değer
        `` $ onay '' değişkeninde saklanır.Daha sonra, kullanıcının yanıtını
        değerlendirmek ve uygun önlemleri almak için bir dizi ``/`başka ''
        ifadeleri (parantez yerine` [[]] `` kullanarak) kullanırız.Kullanıcı
        rızası verirse (`$ cisent = 'y'`), istenen güncellemeleri ilk` `eco`
        gövdesinde gerçekleştirebiliriz.Eğer rızayı reddederlerse (`$ consent =
        'n'`), bir mesaj görüntüler ve` return` anahtar kelimesini kullanarak
        sıfır olmayan bir durum koduyla işlevden çıkarız.
      - >-
        Çevirmenlerin tarih boyunca orijinal anlamın ve diğer önemli değerlerin
        eşdeğerlerini ararken benimsedikleri genel yaklaşım nedir?
      - >-
        Bir UILabel'i bir SKView üzerinde görüntülemek için, UILabel'i SKView'ü
        içeren ana görünümün bir alt görünümü olarak ekleyebilirsiniz. Örneğin,
        ana görünüm bir UIViewController'ın görünümü ise, UILabel'i şu şekilde
        ekleyebilirsiniz:


        ''''

        UILabel *label = [[UILabel tahsisi] initWithFrame:CGRectMake(0, 0, 200,
        50)];

        label.text = @"Etiketim";

        label.center = CGPointMake(self.view.center.x, self.view.center.y - 50);
        // konumu gerektiği gibi ayarlayın

        [self.view addSubview:etiket];

        ''''


        Bu, "Etiketim" metnini içeren bir UILabel oluşturacak ve onu ana
        UIView'ın ortasına, SKView'ün yukarısına konumlandıracaktır. Etiketin
        konumunu ve boyutunu gerektiği gibi ayarlamak için çerçeve ve merkez
        özelliklerini değiştirebilirsiniz.
  - source_sentence: >-
      Süslenmiş Fyodor Dostoyevski ve Dylan Thomas arasında bir Rap Savaşı
      yaratın
    sentences:
      - >-
        YANLIŞ.Sağlanan öneri, sorulan soruyu cevaplamıyor.Soru, erken
        Kanadalıların başlıca ekonomik faaliyetlerini sorarken, Marksist'in
        ekonomik tarihi etkiledi.Bu nedenle, öneri sorunun doğru bir cevabı
        değildir ve cevap yanlıştır.
      - |-
        # Bu problemde 0'dan 5'e kadar bir sayı doğrumuz var.
        # Bir nokta (2,5) aralığındaysa 4'e yakındır.
        # Yani olumlu sonuçlar, uzunluğu 3 olan (2,5] aralığındaki noktalardır.
        # Toplam sonuçlar, uzunluğu 5 olan [0,5] aralığındaki noktalardır.
        # Yani olasılık, olumlu sonuçların toplam sonuçlara oranıyla verilir.

        # Olumlu sonuçların uzunluğu
        olumlu_sonuçlar = 3

        # Toplam sonuçların uzunluğu
        toplam_sonuçlar = 5

        # Olasılığı hesapla
        olasılık = olumlu_sonuçlar / toplam_sonuçlar

        # Olasılığı en yakın onluğa kadar yazdır
        print(yuvarlak(olasılık, 1))
      - >-
        SüslenmişFyodor Dostoyevski:

        Dinle genç Dylan, kavgaya hazırsın

        Ben Rus edebiyatının kralıyım, içgörü ustasıyım

        Galce cazibene ve lirik akışına sahip olabilirsin

        Ama  hikaye anlatmaya gelince, gösteriyi ben yürütüyorum


        Dylan Thomas:

        Sen kral olabilirsin ama ben bu ülkenin ozanıyım

        Kelimeler ve ritim elimde, hepsi benim emrimde

        Ayetlerim ateş gibidir, parlak ve gerçek yanarlar

        Rus olabilirsin ama sana Gallilerin neler yapabileceğini göstereceğim


        SüslenmişFyodor Dostoyevski:

        Büyük bir oyun konuşuyorsun ama bunu destekleyebilir misin?

        Suç ve Ceza ve Karamazov Kardeşler gibi klasikler yazdım.

        Çalışmanız güzel olabilir ama derinlik ve ruhtan yoksun

        Sen sadece hip hop rolü olan gösterişli bir çocuksun


        Dylan Thomas:

        Gücümü ve zekamı hafife alma

        Seni vazgeçirecek sözlerim, ritmim ve kalbim var

        Şiirlerim sonsuza kadar yaşayacak, hikayelerinizde kıvılcım yok

        Ünlü olabilirsin ama ben her zaman bir iz bırakacağım


        SüslenmişFyodor Dostoyevski:

        Kelimelerle aranız iyi olabilir ama ciddiyetten yoksunsunuz

        Benim karakterlerim hayat nefes alıyor, seninki ise sadece bir
        kabarıklık yığını

        Ben ağır siklet şampiyonuyum ve sen sadece yeni gelensin

        Ringten inin ve ustanın devam etmesine izin verin


        Dylan Thomas:

        Yeni adam olabilirim ama burada kalacağım

        Benim sözlerim seninkilerden daha uzun süre dayanacak çünkü asla
        bozulmayacaklar

        Klasiklerini alacağım ve şiirsel parıltımı ekleyeceğim

        Ve dünyaya Dylan Thomas'ın paylaşmak için burada olduğunu gösterin!


        (İki şair birbirlerinin sanatına karşılıklı saygı göstererek geri
        çekilirken kalabalıktan alkışlar yükseliyor)
  - source_sentence: >-
      S: İtalyanca bir cümle göz önüne alındığında, cümle üzerinde küçük
      değişiklikler yaparak yeni bir İtalyan cezası üretin.Burada,
      değişikliklerin anlamsal olarak ilişkili olduğundan ve girişe sözdizimsel
      olarak benzer olduğundan emin olun.Ve üretilen cümlenin yüksek sağduyulu
      mantıklılığı olması gerekir, yani bunun doğru olma olasılığı vardır.

      Siete entusiasti di scavare un Serpente Un Luogo Nascosto.

      A:
    sentences:
      - >-
        Verilen cümlede küçük değişiklikler yaparak yeni bir İtalyan cümle
        oluşturmak için şu adımları izleyeceğim:


        Adım 1: Orijinal cümlenin anlamını anlayın.

        "Siete entusiasti di scavare un Serpente Un Luogo Nascosto" "" Gizli bir
        yerde bir yılanı kazmaktan heyecan duyuyorsunuz. "Konunun (siz) gizli
        bir yerde bir yılanı kazma eylemi konusunda hevesli olduğunu ima eder.


        Adım 2: Cümledeki temel öğeleri tanımlayın.

        Cümledeki temel unsurlar:

        - Konu: "Siete" (siz)

        - fiil: "çöpe" (kazmak için)

        - Nesne: "Un Serpente" (bir yılan)

        - Konum: "Un Luogo Nascosto'da" (Gizli Bir Yerde)


        Adım 3: Anlamsal olarak ilgili değişikliklerle yeni bir cümle oluşturun.

        Anlamsal alaka düzeyini korumak için, genel anlamı sağlam tutarken
        orijinal cümlede küçük değişiklikler yapacağım.İşte yeni cümle:


        "Un Luogo Misterioso'da Siete Entusiasti di Scoprire un Serpente."

        Bu yeni cümle "Gizemli bir yerde bir yılan keşfetmekten heyecan
        duyuyorsunuz" anlamına geliyor.Keşif ve heyecan duygusunu korumak için
        "Scoprire" ile "Scoprire" (keşfetmek) ile değiştirdim.Ayrıca, gizlilik
        ve entrika fikrini korumak için "nascosto" (gizli) "Misterioso" olarak
        değiştirdim.


        Adım 4: Sözdizimsel benzerlik sağlayın.

        Yeni cümle, orijinal cümle ile aynı sözdizimsel yapıyı, "siete" (siz),
        "scoprire" (keşfetmek için) fiili, "un serpente" (bir yılan) nesnesi ile
        korurLuogo Misterioso "(gizemli bir yerde).Bu, yeni cümlenin sözdizimsel
        olarak orijinaline benzer olmasını sağlar.


        Adım 5: Sağlıklı uygunluğu doğrulayın.

        Üretilen cümlenin makul bir gerçek olma olasılığı olmasını sağlamak
        için, tarif edilen senaryonun uygunluğunu göz önünde bulundurmamız
        gerekir.Gizemli bir yerde bir yılan keşfetmek yaygın olmasa da, olasılık
        alanı içindedir.Bu nedenle, üretilen cümlenin yüksek bir sağduyulu
        vardır.


        Bu adımları izleyerek, anlamsal olarak ilişkili, sözdizimsel olarak
        benzer ve yüksek sağduyse sahip olma kriterlerini karşılayan yeni bir
        İtalyan cümle oluşturdum.
      - >-
        Mühendisler için ellerin iyice kurulanması şeklindeki ekstrem el yıkama
        tekniğini uygulayan, C++ ile yazılmış bazı örnek kodlar aşağıda
        verilmiştir:

        ```c++

        #include <iostream>

        ad alanı std'sini kullanma;
         
        int ana() {
         //Kullanıcıdan adını girmesini isteyin
         cout << "Lütfen adınızı giriniz: ";
         dize adı;
         getline(cin, isim);
         
         // İsme göre kimin ellerini kurutması gerektiğini belirleyin
         bool needToDry = false;
         if (isim == "John") {
         needToDry = doğru;
         } else if (isim == "Jane") {
         needToDry = yanlış;
         } başka {
         // Gerektiğinde diğer adları burada işleyin
         while (doğru) {
         cout << "Geçersiz ad girildi. Lütfen tekrar deneyin: ";
         getline(cin, isim);
         
         if (isim == "John") {
         needToDry = doğru;
         kırmak;
         } else if (isim == "Jane") {
         needToDry = yanlış;
         kırmak;
         }
         }
         }
         
         // Sonucu göster
         if (needToDry) {
         cout << "Merhaba " + name + ". Görünüşe göre ellerinizi kurutmanız gerekiyor."
         << son
         << "En az 20 saniye fırçaladığınızdan emin olun, iyice durulayın"
         << "ve ardından bunları tamamen kurutmak için kağıt havlu kullanın." << endl;
         } başka {
         cout << "Merhaba " + name + ". Adınıza göre görünmüyor"
         << "işe dönmeden önce ellerinizi kurutmanız gerektiği gibi." 
         << endl;
         }
         
         0 değerini döndür;
        }

        ''''

        Bu kod, John'un veya Jane'in ellerini kurulaması gerekip gerekmediğini
        belirlemek için "if" ifadesini kullanır. Kullanıcının girdiği ad bu iki
        değerden biriyle eşleşirse karşılık gelen boole değeri buna göre
        ayarlanacaktır. Ancak, girilen ad tanınmazsa kod geri döner ve
        kullanıcıdan "John" veya "Jane" yazana kadar adını yeniden girmesini
        ister. 'While' döngüsü, kullanıcının adını girerken yapmış olabileceği
        hataları düzeltme şansına sahip olmasını sağlar. Doğru ad girildiğinde,
        kullanıcıya ellerini kurulaması gerekip gerekmediğini bildiren uygun
        mesaj görüntülenir.
      - >-
        Cümle eksik ve mantıklı olmak için bitirilmesi gerekiyor.Her ikisi de
        "Lawrence, gece boyunca yağmurda elektrikli biçme makinesini bıraktı" ya
        da "Matthew gece boyunca yağmurda elektrik biçme makinesini dışarıda
        bıraktı."
datasets:
  - trmteb/cleaned_turkish_embedding_model_training_data_colab
pipeline_tag: sentence-similarity
library_name: sentence-transformers
metrics:
  - cosine_accuracy
  - cosine_accuracy_threshold
  - cosine_f1
  - cosine_f1_threshold
  - cosine_precision
  - cosine_recall
  - cosine_ap
  - cosine_mcc
model-index:
  - name: SentenceTransformer based on dbmdz/bert-base-turkish-uncased
    results:
      - task:
          type: binary-classification
          name: Binary Classification
        dataset:
          name: dev
          type: dev
        metrics:
          - type: cosine_accuracy
            value: 0.9999994108754744
            name: Cosine Accuracy
          - type: cosine_accuracy_threshold
            value: -0.11720609664916992
            name: Cosine Accuracy Threshold
          - type: cosine_f1
            value: 0.9999997054376504
            name: Cosine F1
          - type: cosine_f1_threshold
            value: -0.11720609664916992
            name: Cosine F1 Threshold
          - type: cosine_precision
            value: 1
            name: Cosine Precision
          - type: cosine_recall
            value: 0.9999994108754744
            name: Cosine Recall
          - type: cosine_ap
            value: 1
            name: Cosine Ap
          - type: cosine_mcc
            value: 0
            name: Cosine Mcc

SentenceTransformer based on dbmdz/bert-base-turkish-uncased

This is a sentence-transformers model finetuned from dbmdz/bert-base-turkish-uncased on the cleaned_turkish_embedding_model_training_data_colab dataset. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

Model Details

Model Description

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

pip install -U sentence-transformers

Then you can load this model and run inference.

from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("trmteb/bert-base-turkish-uncased-cachedmnrl-contrastive-loss")
# Run inference
sentences = [
    'S: İtalyanca bir cümle göz önüne alındığında, cümle üzerinde küçük değişiklikler yaparak yeni bir İtalyan cezası üretin.Burada, değişikliklerin anlamsal olarak ilişkili olduğundan ve girişe sözdizimsel olarak benzer olduğundan emin olun.Ve üretilen cümlenin yüksek sağduyulu mantıklılığı olması gerekir, yani bunun doğru olma olasılığı vardır.\nSiete entusiasti di scavare un Serpente Un Luogo Nascosto.\nA:',
    'Verilen cümlede küçük değişiklikler yaparak yeni bir İtalyan cümle oluşturmak için şu adımları izleyeceğim:\n\nAdım 1: Orijinal cümlenin anlamını anlayın.\n"Siete entusiasti di scavare un Serpente Un Luogo Nascosto" "" Gizli bir yerde bir yılanı kazmaktan heyecan duyuyorsunuz. "Konunun (siz) gizli bir yerde bir yılanı kazma eylemi konusunda hevesli olduğunu ima eder.\n\nAdım 2: Cümledeki temel öğeleri tanımlayın.\nCümledeki temel unsurlar:\n- Konu: "Siete" (siz)\n- fiil: "çöpe" (kazmak için)\n- Nesne: "Un Serpente" (bir yılan)\n- Konum: "Un Luogo Nascosto\'da" (Gizli Bir Yerde)\n\nAdım 3: Anlamsal olarak ilgili değişikliklerle yeni bir cümle oluşturun.\nAnlamsal alaka düzeyini korumak için, genel anlamı sağlam tutarken orijinal cümlede küçük değişiklikler yapacağım.İşte yeni cümle:\n\n"Un Luogo Misterioso\'da Siete Entusiasti di Scoprire un Serpente."\nBu yeni cümle "Gizemli bir yerde bir yılan keşfetmekten heyecan duyuyorsunuz" anlamına geliyor.Keşif ve heyecan duygusunu korumak için "Scoprire" ile "Scoprire" (keşfetmek) ile değiştirdim.Ayrıca, gizlilik ve entrika fikrini korumak için "nascosto" (gizli) "Misterioso" olarak değiştirdim.\n\nAdım 4: Sözdizimsel benzerlik sağlayın.\nYeni cümle, orijinal cümle ile aynı sözdizimsel yapıyı, "siete" (siz), "scoprire" (keşfetmek için) fiili, "un serpente" (bir yılan) nesnesi ile korurLuogo Misterioso "(gizemli bir yerde).Bu, yeni cümlenin sözdizimsel olarak orijinaline benzer olmasını sağlar.\n\nAdım 5: Sağlıklı uygunluğu doğrulayın.\nÜretilen cümlenin makul bir gerçek olma olasılığı olmasını sağlamak için, tarif edilen senaryonun uygunluğunu göz önünde bulundurmamız gerekir.Gizemli bir yerde bir yılan keşfetmek yaygın olmasa da, olasılık alanı içindedir.Bu nedenle, üretilen cümlenin yüksek bir sağduyulu vardır.\n\nBu adımları izleyerek, anlamsal olarak ilişkili, sözdizimsel olarak benzer ve yüksek sağduyse sahip olma kriterlerini karşılayan yeni bir İtalyan cümle oluşturdum.',
    'Mühendisler için ellerin iyice kurulanması şeklindeki ekstrem el yıkama tekniğini uygulayan, C++ ile yazılmış bazı örnek kodlar aşağıda verilmiştir:\n```c++\n#include <iostream>\nad alanı std\'sini kullanma;\n \nint ana() {\n //Kullanıcıdan adını girmesini isteyin\n cout << "Lütfen adınızı giriniz: ";\n dize adı;\n getline(cin, isim);\n \n // İsme göre kimin ellerini kurutması gerektiğini belirleyin\n bool needToDry = false;\n if (isim == "John") {\n needToDry = doğru;\n } else if (isim == "Jane") {\n needToDry = yanlış;\n } başka {\n // Gerektiğinde diğer adları burada işleyin\n while (doğru) {\n cout << "Geçersiz ad girildi. Lütfen tekrar deneyin: ";\n getline(cin, isim);\n \n if (isim == "John") {\n needToDry = doğru;\n kırmak;\n } else if (isim == "Jane") {\n needToDry = yanlış;\n kırmak;\n }\n }\n }\n \n // Sonucu göster\n if (needToDry) {\n cout << "Merhaba " + name + ". Görünüşe göre ellerinizi kurutmanız gerekiyor."\n << son\n << "En az 20 saniye fırçaladığınızdan emin olun, iyice durulayın"\n << "ve ardından bunları tamamen kurutmak için kağıt havlu kullanın." << endl;\n } başka {\n cout << "Merhaba " + name + ". Adınıza göre görünmüyor"\n << "işe dönmeden önce ellerinizi kurutmanız gerektiği gibi." \n << endl;\n }\n \n 0 değerini döndür;\n}\n\'\'\'\'\nBu kod, John\'un veya Jane\'in ellerini kurulaması gerekip gerekmediğini belirlemek için "if" ifadesini kullanır. Kullanıcının girdiği ad bu iki değerden biriyle eşleşirse karşılık gelen boole değeri buna göre ayarlanacaktır. Ancak, girilen ad tanınmazsa kod geri döner ve kullanıcıdan "John" veya "Jane" yazana kadar adını yeniden girmesini ister. \'While\' döngüsü, kullanıcının adını girerken yapmış olabileceği hataları düzeltme şansına sahip olmasını sağlar. Doğru ad girildiğinde, kullanıcıya ellerini kurulaması gerekip gerekmediğini bildiren uygun mesaj görüntülenir.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Evaluation

Metrics

Binary Classification

Metric Value
cosine_accuracy 1.0
cosine_accuracy_threshold -0.1172
cosine_f1 1.0
cosine_f1_threshold -0.1172
cosine_precision 1.0
cosine_recall 1.0
cosine_ap 1.0
cosine_mcc 0.0

Training Details

Training Dataset

cleaned_turkish_embedding_model_training_data_colab

  • Dataset: cleaned_turkish_embedding_model_training_data_colab at d35bbe7
  • Size: 32,523,072 training samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchor positive
    type string string
    details
    • min: 6 tokens
    • mean: 139.24 tokens
    • max: 512 tokens
    • min: 7 tokens
    • mean: 234.7 tokens
    • max: 512 tokens
  • Samples:
    anchor positive
    Yüksek Sosyal Medyayı Hesaplayan bir Julia komut dosyası pasajı oluşturun: Yeni Başlayanlar İçin Mühendis için Kullanıcı Etkileşimi. Bias'a dayalı olarak farklı eylemleri koşullu olarak gerçekleştirmek için if/else veya switch/case ifadelerini kullanın. Prova yapın ve ardından kontrol akışının ana hatlarını çizen ve farklı senaryoları nasıl ele aldığınıza dair yorumları ekleyin. Burada, tespit edilen önyargının türüne bağlı olarak hangi eylemin gerçekleştirileceğini belirlemek için koşullu ifadeler (if...else) kullanarak yeni başlayan mühendisler için yüksek sosyal medya kullanıcı etkileşimini hesaplayan örnek bir Julia komut dosyası verilmiştir: ```julia kullanma CSV içe aktarma DataFrames # Giriş dosyası yolunu ve sütun adlarını tanımlayın input_file = "data.csv" sütunlar = ["post", "beğeniler", "retweetler", "yanıtlar"] # CSV dosyasındaki giriş verilerini DataFrame df =DataFrames'e okuyun. okunabilir(giriş_dosyası, sütunlar=sütunlar) # Beğenileri, retweetleri, yanıtları toplayarak toplam etkileşimleri hesaplayın etkileşimler = df[:, :likes] .+ df[:, :retweets] + df[:, :replies] # Şunun için eşikleri tanımlayın: düşük, orta ve yüksek düzeyde etkileşim low_threshold = 10 orta_threshold = 25 high_threshold = 40 # Olumlu yanıtların yüzdesini hesaplama işlevi function get_percentage(x) return round((count(y -> y == true, x)/length( x))*100; rakam=2) end # 1:size...
    İşte bir hedef: Kamp ateşinde patlamış mısır yapmak. Bu hedefe ulaşmak için hangi yol daha mantıklıdır? Kamp ateşinde patlamış mısır yapmanın farklı yolları vardır, ancak mantıklı olan yollardan biri patlamış mısır patlatıcısı kullanmaktır. Patlamış mısır patlatıcısı, patlamış mısır tanelerini patlarken karıştıracak bir mekanizmaya sahip, uzun saplı ve kapaklı özel bir tenceredir. Patlamış mısır patlatıcısını kullanmak için önce bir kamp ateşi yakarsınız ve ateşin sıcak kömürlere dönüşmesine izin verirsiniz. Daha sonra patlamış mısır patlatıcısını sıcak kömürlerin üzerine yerleştirip biraz yağ ve patlamış mısır taneleri eklersiniz. Daha sonra kapağı kapatıp sapı ateşin üzerinde tutarken, kolu çevirerek çekirdekleri karıştırırsınız. Çekirdekler patladıkça tencereyi dolduracak ve kamp ateşinizde taze patlamış mısırın tadını çıkarabilirsiniz! Bu yöntem mantıklıdır çünkü kamp ateşinde patlamış mısır yapmanın güvenli ve etkili bir yoludur ve patlamış mısırın eşit şekilde pişmesini ve yanmamasını sağlar.
    Aşağıdaki soruyu cevaplayın: İşlem: - Bulaşık Makinesini açın - Alt rafı dışarı kaydırın - Kirli bir tabak alın - Tabağı durulayın - Tabağı rafa yerleştirin - Suyun tüm parçalara ulaşması için yeterli alan bırakarak tekrarlayın - Sabunu doldurun fincan - Bulaşık makinesini açın. Soru: Diyelim ki sadece birkaç eşya yerleştiriliyor, bulaşık makinesinin daha iyi temizlenmesine YARDIMCI olmayı nasıl etkileyecek? - A: daha fazla - B: daha az - C: etkisi yok Cevap: C: etkisi yok Adım adım gerekçe: 1. Bulaşık makinesinin açılması: Bu, kirli bulaşıklara erişmek ve onları yerleştirmek için gereklidir. 2. Kaydırma alt raftan dışarı: Bu, kirli bulaşıkları yüklemek için kolay erişim sağlar. 3. Kirli bir tabağın alınması: Bulaşıkların temizlenmesi için bulaşık makinesine yerleştirilmesi gerekir. 4. Plakanın durulanması: Bu, bulaşık makinesine koymadan önce büyük yiyecek parçacıklarının temizlenmesine yardımcı olur. 5. Tabağın rafa yerleştirilmesi: Tabağın, bulaşık makinesinde temizlenmesi için rafa sabitlenmesi gerekir. 6. Suyun tüm eşyalara ulaşması için yeterli alan bırakarak bu adımların tekrarlanması: Tüm bulaşıkların düzgün bir şekilde yerleştirilmesini ve verimli bir şekilde temizlenmesi için su ve deterjan için yeterli alana sahip olmasını sağlar. 7. Sabun kabının doldurulması: Bulaşık makineleri, bulaşıkları etkili bir şekilde temizlemek için deterjana ihtiyaç duyar. 8. Bulaşık makinesinin çalıştırılması: Temizleme işleminin başlaması için bulaş...
  • Loss: CachedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "mini_batch_size": 128
    }
    

Evaluation Dataset

cleaned_turkish_embedding_model_training_data_colab

  • Dataset: cleaned_turkish_embedding_model_training_data_colab at d35bbe7
  • Size: 1,697,434 evaluation samples
  • Columns: sentence1, sentence2, and label
  • Approximate statistics based on the first 1000 samples:
    sentence1 sentence2 label
    type string string int
    details
    • min: 7 tokens
    • mean: 130.72 tokens
    • max: 512 tokens
    • min: 4 tokens
    • mean: 209.28 tokens
    • max: 512 tokens
    • 1: 100.00%
  • Samples:
    sentence1 sentence2 label
    Ar-Ge ekibi personel sayısı planlayıcımız olan ve işe alım çabaları ve yönetim için kullanılan bir elektronik tablom var (FY22-23 Talepleri olarak adlandırılıyor). Kaynak bulma ekibini yönetiyorum ve ekibim için ayrı iş akışları/listeler/grafikler oluşturmak amacıyla bu konudaki bilgileri (bulunabilecek en güncel yer burası) kullanmak istiyorum, böylece doğru rolleri/becerileri önceliklendirebilir ve kaynak sağlayabiliriz. şimdi ve gelecekteki gelecek (ilerideki gelecekteki rolleri planlamamıza olanak tanıyacak). FY22-23 e-tablosu ihtiyacımız olan tüm verileri içeriyor. İlk önce verileri size verdiğim sütunlardan (size verdikten sonra) başka bir e-tabloya çekmek için formüller oluşturmama yardımcı olabilir misiniz? Daha sonra bu verileri oluşturmak için kullanabiliriz. bize yardımcı olacak küçük araçlar (örneğin, hem o an için hem de gelecekte ihtiyaç duyacağımız şeyler/yaklaşanlar için kaynak sağlamaya odaklanmamız gereken rolleri/becerileri vurgulayan kısa vadeli ve uzun vadeli bir ö... Elbette, bu konuda size yardımcı olmaktan memnuniyet duyarım. Öncelikle verileri bir e-tablodan diğerine çekmek için formülleri nasıl kullanabileceğinizi açıklayayım. Bunu yapmak için Google E-Tablolar'daki "IMPORTRANGE" işlevini kullanabilirsiniz. Bu işlev, bir e-tablodan diğerine bir dizi hücreyi aktarmanıza olanak tanır. Bunu nasıl kullanabileceğinize dair bir örnek: =IMPORTRANGE("https://docs.google.com/spreadsheets/d/[spreadsheet-id]", "Sheet1!A1:C3") In Bu örnekte, "[e-tablo kimliği]", verileri içe aktarmak istediğiniz e-tablonun benzersiz tanımlayıcısıdır ve "Sayfa1!A1:C3", içe aktarmak istediğiniz hücre aralığıdır. Farklı hücreleri veya farklı sayıda hücreyi içe aktarmak için bu aralığı ayarlayabilirsiniz. İkinci e-tablodaki verilere sahip olduğunuzda, bunu ihtiyacınız olan listeleri ve grafikleri oluşturmak için kullanabilirsiniz. Örneğin, ekibinizin kısa ve uzun vadede odaklanacağı en önemli rollerin ve becerilerin bir listesini oluşturmak için "SIRALAMA" ve "FİLTRE" ... 1
    S: Bir cümle verildiğinde, pek olası olmayan bir sonraki ifadeyi üretin. Bir sonraki ifade verilen bağlamla mantıksal olarak ilgili olmamalıdır. İnsanlar bir kanoda küreklerle kürek çekiyorlar. Adam A: Adam aniden Shakespeare'in sonelerini mükemmel bir beşli ölçüyle okumaya başladı. Adım 1: Verilen bağlamı tanımlayın - insanlar bir kanoda küreklerle kürek çekiyorlar. Adım 2: Hiç beklenmedik bir sonraki ifadeyi oluşturun - Adam aniden Shakespeare'in sonelerini mükemmel bir beşli ölçüyle okumaya başladı. Adım 3: İfadeyi gerekçelendirin - Verilen bağlam kürekli bir kanoda kürek çeken insanlarla ilgilidir ve bu aktivite ile Shakespeare'in sonelerini okumak arasında mantıksal bir bağlantı yoktur. Bu nedenle, ifade olası değildir ve verilen bağlamla alakalı değildir. 1
    Olağanüstü Diş hijyenini dönüştüren bir Go modülü pasajı oluşturun: Profesyoneller için Karar Vermede Diş Fırçalama. Güvenliğe dayalı olarak farklı durumları ele almak için if/else veya switch/case ifadelerini ekleyin. Yaklaşımınızı açıklayan yorumlarla kontrol akışınızın iyi bir şekilde belgelendiğinden emin olun. İşte Golang'da bu işlevselliğin olası bir uygulaması: go package main import ( "fmt" ) func transformExtremeDentalHygiene(input string) string { // Çıktıyı saklayacak değişkeni tanımla var çıktı dizisi // Hangisinin hangisi olduğunu belirlemek için switch case ifadesi giriş değerine bağlı olarak uygulanacak dönüşüm switch input { case "Dişleri günde iki kez fırçalayın": çıktı = fmt.Sprintf("Bu %v, plak gelişemeyeceğinden daha iyi diş sağlığına yol açar.", input) case "Günde bir kez diş ipi kullanın" ": Output = fmt.Sprintf("Bu %v, dişlerin arasındaki yiyecek parçacıklarını uzaklaştırarak çürüme riskini azaltır.", input) default: Output = fmt.Sprintf("%v aşırı bir durum olarak görülmese de yine de önemli", input) } return çıktı } func main() { input := "Günde bir kez diş ipi kullanın" result := transformExtremeDentalHygiene(input) fmt.Println(result) } 1
  • Loss: CachedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "mini_batch_size": 128
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 32768
  • per_device_eval_batch_size: 32768
  • learning_rate: 3e-05
  • num_train_epochs: 1
  • lr_scheduler_type: cosine_with_restarts
  • warmup_ratio: 0.05
  • bf16: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 32768
  • per_device_eval_batch_size: 32768
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 3e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 1
  • max_steps: -1
  • lr_scheduler_type: cosine_with_restarts
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.05
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: True
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: False
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • tp_size: 0
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss Validation Loss dev_cosine_ap
0.8157 810 1.7383 - -
0.8258 820 1.7339 - -
0.8359 830 1.7353 - -
0.8459 840 1.7311 - -
0.8560 850 1.7383 - -
0.8661 860 1.7355 - -
0.8761 870 1.7314 - -
0.8862 880 1.7261 - -
0.8963 890 1.7358 - -
0.9063 900 1.7219 0.5177 1.0
0.9164 910 1.7281 - -
0.9265 920 1.7357 - -
0.9366 930 1.7271 - -
0.9466 940 1.7305 - -
0.9567 950 1.7279 - -
0.9668 960 1.7203 - -
0.9768 970 1.7309 - -
0.9869 980 1.724 - -
0.9970 990 1.3144 - -

Framework Versions

  • Python: 3.11.12
  • Sentence Transformers: 4.1.0
  • Transformers: 4.51.3
  • PyTorch: 2.6.0+cu124
  • Accelerate: 1.6.0
  • Datasets: 3.6.0
  • Tokenizers: 0.21.1

Citation

BibTeX

Sentence Transformers

@inproceedings{reimers-2019-sentence-bert,
    title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
    author = "Reimers, Nils and Gurevych, Iryna",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
    month = "11",
    year = "2019",
    publisher = "Association for Computational Linguistics",
    url = "https://arxiv.org/abs/1908.10084",
}

CachedMultipleNegativesRankingLoss

@misc{gao2021scaling,
    title={Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup},
    author={Luyu Gao and Yunyi Zhang and Jiawei Han and Jamie Callan},
    year={2021},
    eprint={2101.06983},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}