İşte Scala'da yazılmış , keyfi uzunluktaki kelime dizilerinin olasılıklarını hesaba katan biraz daha karmaşık bir kelime tabanlı algoritma . (Bu orijinal ayrılmış basın algoritması değil .)
Algoritma aşağıdaki gibidir. Her adımda, rastgele bir konumdan başlayarak metnin yuvarlanan yarısını seçin, o yarıda meydana gelen en uzun kuyruk dizisini arayın (bu 0 kelime olabilir) ve sonraki kelimeyi çıktılayın.
import io._, collection.mutable.ArrayBuffer, util.Random
import java.io.FileInputStream
val lines = new BufferedSource(new FileInputStream("markov.txt")) getLines
val wordregex = "\\b[a-zA-Z]+\\b|[.,?!]".r
val words = lines flatMap (wordregex findAllIn _) toArray
val rollingwords = words ++ words.slice(0, words.length / 2)
val rnd = new Random()
val outwords = new ArrayBuffer[String]()
for (i <- 1 to 1000) {
val startposition = rnd nextInt (words.length * 2 / 3)
val half = rollingwords slice (startposition, startposition + words.length / 3)
var newword = ""; var n = 0; var index = 0
while (index >= 0 && n < half.length && n < outwords.length) {
index = half.indexOfSlice(outwords.takeRight(n))
if (index >= 0 && index < half.length - n) {
newword = half(index + n)
}
n = n + 1
}
outwords += newword
}
println(outwords.foldLeft("")(_ + " " + _))
Markov zincirleri hakkındaki wikipedia makalesinden de üretilen bir örnek çıktı:
bugün sabit dağılımlar benzersiz olmayacaktır I olasılıklar k rightarrow pozisyonunu karşılar, geçiş olasılığı dağılımı sadece sistemdeki parametreler, n'nin benzersiz olmasına izin verirse, sabit dağılımda veya değişmez ölçümde i Q'nun sabit dağılımını karşılar.
Kullanmak arada, eğer "[a-zA-Z .,!?]".r
yanı wordregex
sen de mektup dayalı ayrışmış basın üretmek için kullanabilir:
Bu figüran veya Pater ext durumunun stocha ile bir mirasının Mi pimatransie'nin nerede olduğu sınıfını test ederse, nnn'nin bir sistem durumunun ihtiyaç duyduğu hataların hatalı olduğunu açması durumunda bir dizi haksızlık olduğunda, daha sonra tüm görevi limporlayın.
Jargon dosyası gibi büyük bir metin dosyasıyla gerçekten ilginç hale geliyor . Şimdi mektup tabanlı zaten oldukça iyi:
Diğer yön algoritması mutlulukla hatalar ve nadirdir; LMSP Mac öncesi İnternet erişim iş istasyonu etrafında inşa edilmiş promlar ve meta-konum kesmek için kısaydı. Bu ölü olabilir. ağda karşılaşılan, özellikle bir ağdan.
Kelime tabanlı oldukça eğlenceli hale gelir:
Bu o zamandan beri bildirildi. Bir kaynak sızıntısı beklediği tek şey n. Yarı efsanevi bir dil tutarsız bir yapıdadır çünkü ilk etapta ayarlanamaz. Oynak ve biten bir bilgisayara girerseniz Gerçek bir bilgisayar alın! imp. Konuşan alaycı davetiye. Küçük kablo gerçek programlama için suçlandı. Pascal on yıl sonra, ancak ürünümüzün çoğunluğu aynı modern alt kabuk değil. Bu girişin herkesin annesi olup olmadığı konusunda bazı anlaşmazlıklar var.