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

标签 nlp spell-checking readability hyphenation

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

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

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

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

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

    最佳答案

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

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

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

    关于nlp - 检测包含非字母字符的单词中的音节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3949962/

    相关文章:

    python - NLTK:如何从 csv 文件创建语料库

    python - 从短文本中提取关键词并进行排名

    excel - 在 B 列中获取 A 列中 `not in dictionary` 的单词

    c++ - 使用 emacs 对 C++ 代码中的注释进行拼写检查

    java - 简单但反复出现的命名问题

    assembly - 汇编程序中标签和可读性之间的关系

    css - 为每个页面设置唯一的 css 文件(也使用全局文件)是一个很好的做法吗?

    python - 如何混合tensorflow keras模型和变压器

    java - 从 treebank 标签转换为 Java 中的 wordnet 兼容标签?

    c# - winform 中的拼写检查