【问题标题】:NLP grammar: fixing a to an?NLP 语法:将 a 固定为 an?
【发布时间】:2023-03-18 13:05:01
【问题描述】:

有没有办法检查a是否真的应该是一个句子中的an

例如,它确实应该修复以下问题:

A apple => An apple

但以下是正确的:

A urologist

在英语中,a和an的正确选择取决于首字母 一个单词的发音,而不是首字母,他们说的单词的声音 先于。字母 a 应该用在所有以 a 开头的单词之前 辅音除了无声 h (一种荣誉)和单词开始之前 带有表示组合辅音和元音的元音 (大学,单位)。

【问题讨论】:

  • 区分'a'和'an'真的是你的全部问题吗?还是您真的对更通用的系统感兴趣?例如,“谁”与“谁”; “它”与“它”;纠正动词形式(“我看到”->“我看到”);等等(我相信你可以想出几十个类似的错误类)。如果“a”与“an”真的是整个问题,那么像@Kunukn 这样的简单启发式可能是明智的。如果您正在寻找更通用的解决方案,您可能需要在问题中注明。

标签: algorithm language-agnostic nlp


【解决方案1】:

使用文本到音标翻译器并检查单词是否以元音开头。

英文音标 http://www.phon.ucl.ac.uk/home/wells/phoneticsymbolsforenglish.htm

apple     ->  ˈæpl̩ 
urologist ->  jʊəˈrɒlədʒi 

编辑: 有一些特殊情况是规则的例外。

  • 具有历史意义的 -> hɪˈstɒrɪk
  • 可怕的 -> həˈrɪfɪk
  • 酒店 -> ˌhəʊˈtel

更多信息在这里 http://www.oxforddictionaries.com/words/a-historic-event-or-an-historic-event

【讨论】:

【解决方案2】:

我会采用统计方法,获取大量集合(语料库),并为其中的每个单词找出它前面有 a 的次数以及它前面的次数an。 (这是一次,预处理)。

根据上述情况,确定您的a 是否真的应该是an

【讨论】:

  • 似乎有点矫枉过正。
  • 让我们两全其美。语音化你的语料库然后训练一个语言模型(二阶马尔可夫模型应该可以解决问题)。我们不要忘记,这个想法是为了获得有关英语音系的知识。 (顺便说一句,哪个英语?)。这种生成方法的另一大优势是您现在也可以处理未知情况...
  • 万一还有人来这里,这些对我很有用:stackoverflow.com/questions/1288291/…, home.nerbonne.org/A-vs-An
猜你喜欢
  • 2012-01-01
  • 2019-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-19
  • 2012-02-21
  • 2022-11-20
  • 2020-11-30
相关资源
最近更新 更多