Dưới đây là một thuật toán dựa trên từ phức tạp hơn một chút được viết bằng Scala , có tính xác suất của các chuỗi từ có độ dài tùy ý. (Đó không phải là thuật toán báo chí phân tách ban đầu .)
Thuật toán như sau. Trong mỗi bước, chọn một nửa văn bản bắt đầu tại một vị trí ngẫu nhiên, tìm kiếm chuỗi đuôi dài nhất của các từ đầu ra xảy ra trong nửa đó (có thể là 0 từ) và xuất từ tiếp theo.
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("")(_ + " " + _))
Đây là một đầu ra mẫu cũng được tạo ra từ bài viết trên wikipedia về chuỗi markov:
ngày nay các phân phối cố định sẽ không phải là duy nhất Tôi có thể đáp ứng k vị trí bên phải không phải là phân phối xác suất chuyển tiếp chỉ có thể được biểu diễn ánh xạ nếu các tham số trên đơn vị hệ thống, cho phép n là duy nhất, trong đó tôi trong phân phối cố định hoặc đo bất biến nếu nó Đáp ứng phân phối cố định cho Q.
Nhân tiện, nếu bạn sử dụng "[a-zA-Z .,!?]".r
như wordregex
bạn có thể sử dụng điều này để tạo ra báo chí phân tách dựa trên thư:
Điều này xảy ra hoặc giai đoạn khi khả năng phản ứng ngược trạng thái Pater ext với stochare một số điều đáng ghét nếu lớp điều trị trong đó Mi pimatransie, mở ra rằng nhu cầu cần thiết của một trạng thái hệ thống là sai lầm, sau đó hạn chế mọi nhiệm vụ.
Nó thực sự thú vị với một tệp văn bản lớn như tệp Jargon . Bây giờ thư dựa đã khá tốt:
Thuật toán hướng khác sẽ vui vẻ lỗi, và không phổ biến; đó là cách viết tắt của "ra những quảng cáo và hack vị trí meta với nhiều thập kỷ được xây dựng xung quanh máy trạm truy cập Internet trước LISP Mac. Điều này có thể đã chết. với sự gặp gỡ trên mạng, đặc biệt từ một mạng. Thông thường là `khách hàng và trên mạng, nó trở lại trên giấy. Một số có trong các thuộc tính duy nhất.
Wordbasing trở nên khá thú vị:
Điều này đã được báo cáo. Điều duy nhất nó mong đợi một tài nguyên bị rò rỉ n. Một ngôn ngữ bán huyền thoại xây dựng không nhất quán vì nó không thể điều chỉnh ở nơi đầu tiên. Nếu bạn vào máy tính một cách vui tươi và kết thúc Hãy lấy một máy tính thật! imp. Sarcastic mời nói Talking. Cáp nhỏ bị đổ lỗi cho lập trình thực sự. Pascal mười năm sau, nhưng phần lớn sản phẩm của chúng tôi không hoàn toàn giống với subshell hiện đại. Có một số tranh cãi về việc liệu mục này của mẹ mọi người.