MarkovUnchained 0.1.0

MarkovUnchained 0.1.0

Ben Kray维护。



MarkovUnchained

Version License Platform

MarkovUnchained是一个简单通用的Swift实现,用于处理马尔可夫链。参见http://setosa.io/ev/markov-chains/,获取有关马尔可夫链的详细描述(配以酷炫的视觉效果)。使用MarkovUnchained,您可以使用一组状态建立马尔可夫链,并为任何给定现有状态预测下一个状态。

示例

要运行示例项目,请先克隆仓库,然后首先从Example目录运行pod install。该项目使用乔治·奥威尔的1984文本作为语料库,并根据给定启始词生成100个单词。

安装

MarkovUnchained可以通过CocoaPods获得。要安装它,只需将以下行添加到您的Podfile中

pod 'MarkovUnchained'

使用

构建马尔可夫链

可以使用任何可哈希类型来构建马尔可夫链。`.build(from: _)`函数和提供的回调在后台队列上运行。

let corpus = readSomeTextFile()
let chain = MarkovChain<String>()
chain.build(from: corpus) {
    // on complete
}

使用马尔可夫链

预测状态的每次检索都可以通过以下枚举来设置选择方式:

public enum SelectionType {
    case random // purely random as to which state is chosen
    case weighted // states with higher weights are likely to be chosen
    case mixed // default, either random or weighted is used to choose next state
}
单个预测状态
let nextState = chain.nextState(for: "me", selectionType: .random)
预测状态列表
let states = "This is a short sentence but now it's long".split(separator: " ")
let predictedStates = chain.nextStates(for: states, selectionType: .weighted)
N个预测状态
let predictedStates = chain.nextStates(100, for: "lmao", using: .mixed)

许可协议

MarkovUnchained 适用于 MIT 许可协议。有关更多信息,请参阅 LICENSE 文件。