1

我正在尝试使用pyhyphen获取单词的音节。如果我使用的是英语词典,我认为撇号的处理是正确的

import hyphen
h = hyphen.Hyphenator('en_US')
h.syllables(u"Hammond's")

它只包含在一个音节中

[u'Ham', u"mond's"]

但是如果我用德语词典做同样的事情

h = hyphen.Hyphenator('de_CH')
h.syllables(u"Hammond's")
h.syllables(u"Bismarck'sche")

撇号被看作是它自己的音节:

[u'Ham', u'mond', u"'s"]
[u'Bis', u'marck', u"'", u'sche']

我想知道是否可以为某些字符定义异常(不中断)?就像在LaTex中一样。

我想到的解决方法是在音节中寻找前导撇号,然后与前一个撇号连接:

syl = [u'Bis', u'marck', u"'", u'sche']
syls2 = []
for syl in syls:
    if syl.startswith("'"):
        if not syls2:
            syls2.append(syl)
        else:
            syls2[-1]+=syl
    else:
        syls2.append(syl)

[u'Bis', u"marck'", u'sche']

但这不是一个好的或通用的解决方案,我对如何定义单词的断字规则很感兴趣,在哪里做错了。

4

0 回答 0