我正在尝试使用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']
但这不是一个好的或通用的解决方案,我对如何定义单词的断字规则很感兴趣,在哪里做错了。