educationai
Çalışma uygulamaları için Swift paketi: FSRS-6 ile aralıklı tekrar, çalışma kuyruğu, yazılı cevap eşleştirme ve quiz'ler.
Lisans: MIT
Özet
- Flashcard uygulamaları için öğrenme mantığı: FSRS-6 aralıklı tekrar, çalışma kuyruğu, yazılı cevap notlama ve quizler.
- Testler py-fsrs 6.3.2'den gelen 2.400 tekrarı sekiz yapılandırmada yeniden oynatır ve her tekrardan sonra sonuçları karşılaştırır.
- SM2Scheduler SM-2 verisini çalışır tutar ve SM-2 kartlarını her kartın vade tarihini koruyarak FSRS'ye dönüştürür.
- Yalnızca Foundation kullanarak cihaz üzerinde çalışır, Swift 6 strict concurrency için yazılmıştır ve içinde sinir ağı yoktur.
- v2.0.0 etiketinde macOS 27.0.1 üzerinde Swift 6.4 ile 11 suite içinde 124 test geçti.
EducationAI, bir flashcard ya da çalışma uygulamasının öğrenme mantığını taşır. FSRSScheduler her kartın ne zaman geri geleceğini Anki'nin FSRS zamanlayıcısının arkasındaki hafıza modeli FSRS-6 ile belirler; testleri 2.400 tekrarı referans uygulama py-fsrs 6.3.2 ile karşılaştırır. SM2Scheduler eski SM-2 verisini çalıştırır ve FSRS'e taşır. Zamanlayıcının etrafında çalışma kuyruğu, yazım hatası toleranslı yazılı cevap notlama, quiz'ler, zorluk ayarlayıcı, iş yükü tahmini, tekrar istatistikleri ve çalışma serileri vardır. Cihazda çalışır, yalnız Foundation kullanır ve Swift 6 strict concurrency için yazılmıştır. İçinde sinir ağı yoktur: FSRS istatistiksel bir hafıza modelidir.
Özellikler
- Referansa karşı denetlenen FSRS-6: testler py-fsrs 6.3.2'nin sekiz yapılandırmada hesapladığı 2.400 tekrarı yeniden oynatır ve her tekrardan sonra stability, difficulty, vade tarihi ve retrievability değerlerini karşılaştırır
- Öğrenme ve yeniden öğrenme adımları, hedef hatırlama oranı, en uzun aralık, aralık fuzz'ı ve özel ağırlıklar (FSRS-6'dan 21 ya da FSRS-5'ten 19); cevap düğmeleri için dört puanın tamamının önizlemesi
- Yayımlandığı haliyle SM-2 ve SM-2 kartlarını her kartın vade tarihini koruyarak FSRS'e taşıyan dönüşüm
- Büyük-küçük harf, aksan, genişlik ve noktalamayı cihaz dilinden bağımsız olarak yok sayan, yazım hatalarını cevabın uzunluğuna göre affeden ve düşmanca girdide sınırlı iş yapan yazılı cevap notlama
- Kartlardan oluşturulan çoktan seçmeli ve yazılı quiz'ler; her sonuç zamanlayıcı için bir puan önerir, kaydedilmiş bir quiz yüklenirken yeniden notlanır
- Günlük sınırlı çalışma kuyruğu, gün gün tahmin, hatırlama istatistikleri, öğrencinin takvim günleriyle sayılan seriler ve doğruluğu hedef bantta tutan zorluk ayarlayıcı
- Sendable, Codable değer tipleri: her fonksiyon çalıştığı tarihi parametre olarak alır, rastgelelik tohumlanabilen bir üreteçten gelir, saklanan değerler kullanılmadan önce denetlenir ve çökme yerine hata fırlatılır
- Bağımlılık yok, yalnız Foundation; dört rehberli DocC referansı ve iOS ile macOS için StudyDeck örnek uygulaması
Hızlı Başlangıç
1struct FlashcardsView: View {2 @State private var cards = [3 Flashcard(front: "Capital of Japan", back: "Tokyo"),4 Flashcard(front: "Capital of Kenya", back: "Nairobi"),5 Flashcard(front: "Capital of Peru", back: "Lima")6 ]7 @State private var showsAnswer = false8 private let scheduler = FSRSScheduler.default9 10 var body: some View {11 if let card = StudyQueue.cards(from: cards).first,12 let index = cards.firstIndex(where: { $0.id == card.id }) {13 VStack(spacing: 24) {14 Text(card.front).font(.title)15 if showsAnswer {16 Text(card.back).font(.title2).bold()17 HStack {18 ForEach(Rating.allCases, id: \.self) { rating in19 Button(String(describing: rating).capitalized) {20 if let outcome = try? scheduler.review(card.review, rating: rating) {21 cards[index].review = outcome.state22 }23 showsAnswer = false24 }25 .buttonStyle(.bordered)26 }27 }28 } else {29 Button("Show Answer") { showsAnswer = true }30 .buttonStyle(.borderedProminent)31 }32 }33 .padding()34 } else {35 Text("All done for now")36 }37 }38}Kurulum
Xcode (File › Add Package Dependencies…)
1https://github.com/muhittincamdali/educationai.gitSwift Package Manager (Package.swift)
1dependencies: [2 .package(url: "https://github.com/muhittincamdali/educationai.git", from: "2.0.0")3],4targets: [5 .target(name: "YourApp", dependencies: [6 .product(name: "EducationAI", package: "educationai")7 ])8]Ekran Görüntüleri




Zaman Çizelgesi
Repo açıldı; 1.0.0 7 Ağustos'ta etiketlendi: öğrenme modelleri olan bir EducationAI sınıfı, Alamofire, RxSwift, SnapKit ve SDWebImage bağımlılıklarıyla
Bağımlılıksız olarak yeniden yazıldı: SM-2 zamanlayıcısı, quiz, ilerleme, öneri ve oyunlaştırma motorları
Yerel bir klasöre bağımlılık (../SwiftAI) ve yer tutucu "neural tutor" ile "enterprise" tipleri eklendi; paket başka hiç kimse için çözülemez oldu
2.0.0: py-fsrs 6.3.2 ile aynı sonucu veren bir FSRS-6 zamanlayıcısı etrafında yeniden kuruldu; Haziran kodu ve 1.x'in bütün tipleri kaldırıldı