在这个例子中如何理解和添加音节中断?

时间:2012-05-12 16:38:25

标签: nlp machine-learning

我是机器学习和计算概率的新手。这是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

如何制作一个可以对单词进行音节化的模型?我的意思是为了找到新单词的可能音节中断而计算的内容。

首先计算什么?然后计算什么?你能举个具体的例子吗?

非常感谢。

1 个答案:

答案 0 :(得分:3)

本文中描述的方法基于统计规律,允许计算观察嘈杂值的正确值。换句话说,非音节词是嘈杂不正确,如picnic,目标是找到一个可能正确的值,pic-nic

Here是关于这个主题的精彩视频课程(滚动到1:25,但整套讲座值得一看)。

此方法对单词分隔特别有用,但有些人也将其用于音节分类。中文语言只有逻辑结构才有空格分隔符,但大多数单词都是相互跟随的,没有分隔符。但是,每个字符都是一个音节,也不例外。

还有其他语言有更复杂的语法。例如,泰语在单词之间没有空格,但是每个音节可以由几个符号构成,例如, สวัสดี - > ส-วัส-ดี。基于规则的音节化可能很难,但可能。

根据英语,我不会打扰Markov chainsN-grams而只是使用几个简单的规则来提供相当不错的匹配率(但并不完美):

  1. 两个元音之间的两个辅音VCCV - 在它们之间分开VC-CV,如c of-fe e,p ic-ni c, 除了代表单一声音的“群集辅音”:m eth-o d,R o-che ster,h ang -o UT
  2. 元音之间有三个或更多个辅音VCCCV - 将混合物分开,如m on-ste r或ch ild-re n (这似乎是最困难的,因为你无法避免字典)
  3. 两个元音之间的一个辅音VCV - 在第一个元音V-CV之后分裂,如b a-co n, a-ri d
  4. 上述规则也有基于混合的例外:co ur-a ge,pl ay-ti me
  5. 两个元音在一起VV - 在它们之间分开,除了它们代表“群集元音”:p oe m,但gla cier ,earl- IER
  6. 我首先从“主要”规则开始,然后用“防护”规则覆盖它们,防止群集元音和辅音被分开。此外,还有一个明显的防守规则,以防止单个辅音成为一个音节。完成后,我会根据字典添加另一个保护规则。