Nlp 如何理解和添加本例中的音节中断?
我是机器学习和计算概率方面的新手。这是通过训练数据在单词中添加音节Nlp 如何理解和添加本例中的音节中断?,nlp,machine-learning,Nlp,Machine Learning,我是机器学习和计算概率方面的新手。这是通过训练数据在单词中添加音节 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
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
如何建立一个将单词音节化的模型?我指的是为了找到一个新词可能的音节断裂而要计算的内容
首先计算什么?那么计算什么呢?你能举个具体的例子吗
非常感谢。本文中描述的方法基于统计定律,允许通过观察噪声值来计算正确的值。换句话说,非音节化的单词是嘈杂的或不正确的,比如
野餐
,目标是找到一个可能正确的值,即pic nic
这是一个非常好的视频课程,非常适合这个主题(滚动到1:25,但整套课程值得一看)
这种方法特别适用于单词定界,但也有一些用于音节化。中文只有逻辑结构的空格分隔符,但大多数单词没有分隔符。然而,每个字符都是一个音节,也不例外
还有其他一些语言的语法更复杂。例如,泰语单词之间没有空格,但每个音节可以由几个符号构成,例如สวัสดี代码>->ส-วัส-ดี代码>。基于规则的教学大纲可能很难,但也有可能
根据英语,我不想麻烦,而只是使用几个简单的规则,给出了相当好的匹配比率(但并不完美):
两个元音之间的两个辅音VCCV
-在它们之间分开VC-CV
,如Coffee,pic nic,除了表示单个声音的“集群辅音”:Method,Ro chester,hang out
元音之间有三个或三个以上的辅音vccv
-将混合音分开,就像在mon-ster或child-ren中一样(这似乎是最困难的,因为你无法避免字典)
两个元音VCV
之间的一个辅音-在第一个元音V-CV
之后分开,如在ba-con,a-rid中
上述规则也有一个基于混合的例外:cour年龄,播放时间
两个元音合在一起VV
-两个元音之间分开,除了它们代表一个“簇元音”:poem,但冰河,厄尔
我会先从“主”规则开始,然后用“守护”规则来覆盖它们,以防止元音和辅音群分裂。此外,还有一个明显的保护规则,防止单个辅音变成音节。完成后,我会添加另一个基于词典的保护规则。非常感谢您如何将单词拆分为可能的音节。现在我大致了解了如何使用语言规则来完成您所解释的任务。你建议的链接也很有用。这项任务似乎不那么容易,因为发音中可能有很多例外或不规则之处。您能否建议或评论基于规则和基于机器学习的方法来处理将单词拆分成音节的问题?感谢您对我的回答的赞赏。我从未为英语开发过音节化工具,但我为泰语开发过。在算法上,它看起来很简单:(1)得到一个简单的单词|标点符号|空格
;(2) 对于每个单词,获得可能的中断位置列表;(3) 根据守卫规则清除一些位置。还有一个想法。Delphi很可能有免费的库来完成这项工作。对不起,我不能给出更具体的回答。如果您不介意函数方法,您可以使用Haskell
和parsec
或F
和fParsec
。