- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在实现前向后向/Baum-Welch 算法,如 Jurafsky + Martin 的语音和语言处理(第 2 版)中所述,作为词性标注器。我的代码大致结构如下:
#Initialize transition probability matrix A and observation likelihood matrix B
(A,B) = init() #Assume this is correct
#Begin forward-backward/Baum-Welch algorithm
for training_sentence in training_data:
(A,B) = forward_backward(A,B,training_sentence, vocabulary, hidden_state_set)
#Use new A,B to test
i = 0
for test_sentence in test_data:
predicted_tag_sequence = viterbi(test_sentence, vocabulary, A,B)
update_confusion_matrix(predicted_tag_sequence, actual_tag_sequences[i])
i += 1
我的实现在调用 forward_backward 之前初始化 A 和 B。那么forward_backward每次迭代使用的A,B就是上一次迭代计算的A,B。
我遇到了 2 个问题:
我做错了什么?我最大的担忧是理论上的:我用上一次迭代中的 A、B 调用 forward_backward 是否正确?或者我应该使用我的初始 A、B 进行 forward_backward 的所有迭代,并将我的最终 A、B 作为结果的平均值?如果我的代码理论上没问题,还有什么地方可能出错?
最佳答案
不,你不应该在每个句子之后更新 A 和 B 矩阵;每次遍历训练数据时,A 和 B 应该只更新一次。您应该使用上一次迭代的 A 和 B 来计算每个句子的部分计数,然后将这些计数相加以获得新的 A 和 B,用于下一次传递数据。
程序应该是:
关于algorithm - 在 Jurafsky + Martin,第 2 版中实现前向后向/Baum-Welch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13349304/
我试图理解这个草图,但无法理解。如果我错了,请纠正我,但基本上,假设我有一个文本数据..单词..我有一个散列函数..它接受一个单词并创建一个整数散列,然后我将该散列转换为二进制位向量?正确的..然后我
我正在考虑实现 Robert Martin 的 Clean Architecture在一个项目中,我试图找出如何处理非平凡用例。 我发现很难将架构扩展到复杂/组合的用例,尤其是参与者是系统而不是用户的
我正在尝试实现 Clean Architecture由罗伯特·马丁描述。更具体地说,我正在使用 VIPER这是 Clean Architecture 的 iOS 版本。 我遇到的问题如下: 用户开始查
好吧,Martin Fowler 从 POEAA 一书中介绍了这种工作单元的概念。如果您想拥有自动提交系统,它会非常有效,在该系统中,您的域模型使用工作单元将自己标记为新的、脏的、已删除的或干净的。然
我正在研究 Coq 并试图证明 Martin-Lof 的等式和路径归纳的等式之间的同构。 我将这两个等式定义如下。 Module MartinLof. Axiom eq : forall A, A -
在 Martin Odersky 的演讲中:http://youtu.be/9PkxE_L_LMo ,在第 49 分钟,他谈到了一个问题,即由于静态数据,“编译器不可重入”。 我对“可重入”一词在 J
我阅读了 Robert Martin 关于接口(interface)隔离原则的文章 here .在文章的最后,在解决 ATM UI 架构的问题时,他说: Consider also that each
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
以下是我为实现 Flajolet and Martin’s Algorithm 而编写的代码.我使用 Jenkins 哈希函数 生成数据的 32 位哈希值。该程序似乎遵循了该算法,但偏离了大约 20%
这是一个关于函数只做一件事的概念的问题。如果没有一些相关的上下文上下文就没有意义,所以我会在这里引用它们。它们出现在第 37-38 页: To say this differently, we wan
在Domain Logic and SQL , Martin Fowler 谈到了 3 种与数据库接口(interface)的方式: 交易脚本 领域模型,以及 SQL 中的逻辑 我想知道的是: 在使用
我正在处理Odersky's ScalaDays 2011 keynote talk ,当我到达这一特定行时(分配 charCode),他用极少的代码行构建了一个电话号码同义词生成器: val mne
const mostLikes = (blogs) => { if (!blogs.length) { return 0 } const distinctAuthors = [..
我正在使用 Martin Peris 代码使用 OpenCV 和 PCL 进行 3D 重建(链接如下): http://blog.martinperis.com/2012/01/3d-reconstr
我正在实现前向后向/Baum-Welch 算法,如 Jurafsky + Martin 的语音和语言处理(第 2 版)中所述,作为词性标注器。我的代码大致结构如下: #Initialize trans
我想调整简单容器的高度,以匹配使用 $.ajax 从服务器返回的数据传递的不断变化的深度要求。 似乎一旦触发模态,所有 CSS 都会即时更改,例如$('#someid').css('高度','500p
目前正在学习在线类(class)《响应式编程原理》由 Martin Odersky、Erik Meijer、Roland Kuhn 编写,一年前就已经结束了,我想这门类(class)的讨论论坛中没有人
马丁·福勒 (Martin Fowler) 说 avoid automatic deserialization在 API 中: I prefer to avoid automatic deserial
我决定尝试学习 Electron ,所以我克隆了 electron quick start并使用 npm i 安装依赖项然后跑 npm start但由于此错误,我需要帮助: dyld: Symbol
我是一名优秀的程序员,十分优秀!