Nlp 检测包含非字母字符的单词中的音节

Nlp 检测包含非字母字符的单词中的音节,nlp,spell-checking,readability,hyphenation,Nlp,Spell Checking,Readability,Hyphenation,我正在实现可读性测试,并实现了检测sylables的简单算法。 检测元音序列我在单词中计算它们,例如单词“shoud”包含一个元音序列,即“ou”。在计算它们之前,我先去掉-les、-e、-ed等后缀(例如,“like”一词包含一个音节,但包含两个元音序列,所以这种方法很有效) 但是。。。 考虑这些词/序列: x光片(包含两个音节) 我是(一个音节,也许我可以删除文本中的所有撇号?) 去 我会的 n'(例如猪肉和豆类) 第三(如何治疗?) 12345 如何处理特殊角色?把它们都拿走?大多数单

我正在实现可读性测试,并实现了检测sylables的简单算法。 检测元音序列我在单词中计算它们,例如单词“shoud”包含一个元音序列,即“ou”。在计算它们之前,我先去掉-les、-e、-ed等后缀(例如,“like”一词包含一个音节,但包含两个元音序列,所以这种方法很有效)

但是。。。 考虑这些词/序列:

  • x光片(包含两个音节)
  • 我是(一个音节,也许我可以删除文本中的所有撇号?)
  • 我会的
  • n'(例如猪肉和豆类)
  • 第三(如何治疗?)
  • 12345
如何处理特殊角色?把它们都拿走?大多数单词都可以,但用“n”和“x光”就不行了。以及如何治疗cyphers


这些都是单词的特例,但我很高兴看到这方面的一些经验或想法。

我建议您首先确定有多少数据由这些单词组成,以及它们对程序的整体性能有多重要。也要收集一些统计数据,看看哪种情况发生得最多

这个问题没有简单正确的解决方案,但我可以提出一些启发:

  • 两个辅音之间的
    不应该
    )似乎表示省略了一个音节
  • 一个单面有元音或单词边界的
    I'd
    goin'
    )似乎不会这样做(但请注意,
    goin'
    仍然是两个音节)
  • 任何单词,包括
    n'
    至少有一个音节长
  • 破折号(
    -
    )可以通过将两侧的文本视为单独的单词来处理
3rd
可以通过将序数写为单词的代码或更简单的启发式方法来处理