我是机器学习和计算概率的新手。这是an example from Lingpipe,用于通过训练数据在单词中添加音节。
Given a source model p(h) for hyphenated words, and a channel model p(w|h) defined so that p(w|h) = 1 if w is equal to h with the hyphens removed and 0 otherwise. We then seek to find the most likely source message h to have produced message w by:
ARGMAXh p(h|w) = ARGMAXh p(w|h) p(h) / p(w)
= ARGMAXh p(w|h) p(h)
= ARGMAXh s.t. strip(h)=w p(h)
where we use strip(h) = w to mean that w is equal to h with the hyphenations stripped out (in Java terms, h.replaceAll(" ","").equals(w)). Thus with a deterministic channel, we wind up looking for the most likely hyphenation h according to p(h), restricting our search to h that produce w when the hyphens are stripped out.
我不明白如何使用它来构建音节化模型。
如果有训练集包含:
a bid jan
a bide
a bie
a bil i ty
a bim e lech
如何制作一个可以对单词进行音节化的模型?我的意思是为了找到新单词的可能音节中断而计算的内容。
首先计算什么?然后计算什么?你能举个具体的例子吗?
非常感谢。
答案 0 :(得分:3)
本文中描述的方法基于统计规律,允许计算观察嘈杂值的正确值。换句话说,非音节词是嘈杂或不正确,如picnic
,目标是找到一个可能正确的值,pic-nic
。
Here是关于这个主题的精彩视频课程(滚动到1:25,但整套讲座值得一看)。
此方法对单词分隔特别有用,但有些人也将其用于音节分类。中文语言只有逻辑结构才有空格分隔符,但大多数单词都是相互跟随的,没有分隔符。但是,每个字符都是一个音节,也不例外。
还有其他语言有更复杂的语法。例如,泰语在单词之间没有空格,但是每个音节可以由几个符号构成,例如, สวัสดี
- > ส-วัส-ดี
。基于规则的音节化可能很难,但可能。
根据英语,我不会打扰Markov chains和N-grams而只是使用几个简单的规则来提供相当不错的匹配率(但并不完美):
VCCV
- 在它们之间分开VC-CV
,如c of-fe e,p ic-ni c, 除了代表单一声音的“群集辅音”:m eth-o d,R o-che ster,h ang -o UT VCCCV
- 将混合物分开,如m on-ste r或ch ild-re n (这似乎是最困难的,因为你无法避免字典) VCV
- 在第一个元音V-CV
之后分裂,如b a-co n, a-ri d VV
- 在它们之间分开,除了它们代表“群集元音”:p oe m,但gla cier ,earl- IER 我首先从“主要”规则开始,然后用“防护”规则覆盖它们,防止群集元音和辅音被分开。此外,还有一个明显的防守规则,以防止单个辅音成为一个音节。完成后,我会根据字典添加另一个保护规则。