3

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

但是......考虑这些单词/序列:

  • X 射线(它包含两个音节)
  • 我是(一个音节,也许我可以删除文本中的所有撇号?)
  • 进去'
  • 我本来
  • n'(例如 Pork n' Beans)
  • 3rd(如何治疗?)
  • 12345

特殊字符怎么办?全部删除?大多数单词都可以,但不能使用“n'”和“x-ray”。以及如何对待密码。

这些是单词的特殊情况,但我很高兴看到这个主题的一些经验或想法。

4

1 回答 1

1

我建议您首先确定您的数据中有多少由这些类型的单词组成,以及它对您的程序的整体性能有多大影响。还编译一些统计数据,其中最常见的类型。

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

  • '两个辅音 ( ) 之间的 Ashouldn't似乎标志着一个音节的省略
  • '一侧带有元音或单词边界的A ( I'd, goin') 似乎没有这样做(但请注意,goin'它仍然是两个音节)
  • 任何单词,包括n'至少一个音节长
  • 破折号 ( -) 可以通过将两边的文本视为单独的单词来处理

3rd可以通过将序数写成单词的代码或更简单的启发式方法来处理。

于 2010-10-17T10:58:03.073 回答