2

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

如何有一个可以音节化单词的模型?我的意思是为了找到一个新单词的可能的音节中断要计算什么。

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

非常感谢。

4

1 回答 1

3

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

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

这种方法对分词特别有用,但有些人也将其用于音节。中文只有用于逻辑结构的空格分隔符,但大多数单词之间没有分隔符。但是,每个字符都是一个音节,也不例外。

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

根据 English,我不会打扰马尔可夫链N-gram,而是使用几个简单的规则来提供相当好的匹配率(但是并不完美):

  1. 两个元音之间的两个辅音VCCV- 在它们之间分开,VC-CV如 c of-fe e, p ic-ni c,除了代表单个声音的“簇辅音”:m eth-o d、R o-che ster、h ang-输出_
  2. 元音之间的三个或更多辅音VCCCV- 分裂保持混合在一起,如 m on-ster或 ch ild-re n (这似乎是最困难的,因为你无法避免字典)
  3. 两个元音之间的一个辅音VCV- 在第一个元音之后拆分,V-CV如 b a-con , a-ri d
  4. 上面的规则也有一个基于混合的例外:co ur-a ge, play-time me
  5. 两个元音在一起VV- 分开,除了它们代表一个“集群元音”:p o-e m,but gla cier,earl- ier

我会先从“主要”规则开始,然后用“保护”规则覆盖它们,防止簇元音和辅音被分裂。此外,将有一个明显的保护规则来防止单个辅音成为音节。完成后,我会添加另一个基于字典的保护规则。

于 2012-05-14T03:03:24.327 回答