5

複数形であると仮定する (英語の) 単語が与えられた場合、単数形を導出することは可能ですか? 可能であれば、ルックアップ/辞書テーブルを避けたいです。

いくつかの例:

例 -> 単純な 's' サフィックスの例
Glitch -> Glitch 'es' サフィックス、上記とは対照的に
国 -> 国「ies」サフィックス。
Sheep -> Sheep 変更なし: 不確定な値のフォールバックの可能性

または、これはかなり網羅的なリストのようです。

language でのライブラリの提案はx、それらがオープンソースである限り問題ありません (つまり、誰かがそれらを調べて language でそれを行う方法を決定できるようにするためy) 。

4

6 に答える 6

11

それは、「プログラムによって」という意味に大きく依存します。英語の一部は理解しやすいルールで機能し、一部はそうではありません。主に周波数が関係しています。簡単な概要については、Pinker の「Words and Rules」を読むことができますが、言語学の生成理論全体を完全に心に留めないでください。そこには、その学派が実際に追求に役立つよりもはるかに多くの経験主義があります.

多くの英語は、統計的に見出し語化できます。ちなみに、ステミングまたはレンマタイゼーションは、あなたが探している用語です。頻度ベースの例外でブートストラップされた統計ルールから動作する最も効果的なレンマタイザーの 1 つは、Morpha Lemmatizerです。英語で特定の用語を表す文字列のこの種の単純化が必要なプロジェクトがある場合は、これを試すことができます。

関連用語の正規化に関して多くのことを達成するさらに単純なアプローチがあります。Porter Stemmerを見てみましょう。これは、英語のほとんどの用語をまとめるのに十分効果的です。

于 2009-09-04T03:17:10.813 に答える
5

単数形から複数形になると、英語の複数形は、私が少し慣れている他のいくつかのヨーロッパ言語と比較して、実際にはかなり規則的です。たとえば、ドイツ語では、複数形を作成するのは非常に複雑です (例: Land -> Länder)。およそ 20 ~ 30 の例外があり、残りはかなり単純なルールセットに従っていると思います。

  • -y -> -ies (ファミリー -> ファミリー)
  • -us -> -i (サボテン -> サボテン)
  • -s -> -ses (損失 -> 損失)
  • それ以外の場合は -s を追加

そうは言っても、逆のケースにはあいまいさがあるため、複数形から単数形への変換ははるかに難しくなります。例えば:

  • pies: py ですか、それともパイですか?
  • ski: 'skus' は単数形ですか、それとも複数形ですか?
  • 糖蜜: 「糖蜜」または「糖蜜」は単数形ですか、複数形ですか?

したがって、それは可能ですが、例外のリストがはるかに大きくなり、多くの誤検知 (つまり、複数形に見えるがそうでないもの) を保存する必要があります。

于 2009-09-04T03:28:02.797 に答える
3

"axes" は "ax" または "axis" の複数形ですか? 人間でさえ、文脈なしでは判断できません。

于 2009-09-04T04:13:51.837 に答える
1

Inflector.netを見ることができます- 私の Rails の屈折クラスのポートです。

于 2009-09-04T04:17:59.987 に答える
0

いいえ、英語は多くの規則に固執する言語ではありません。

あなたの最善の策は次のいずれかだと思います:

  • 一般的な単語とその複数形の辞書を使用します (または、複数形の規則に従ってそれらをグループ化します。たとえば、S を追加するだけの単語、ES を追加する単語、Y を削除して IES を追加する単語をグループ化します...)
  • アプリケーションを再考する
于 2009-09-04T03:11:25.593 に答える
-3

ニックフがすでに言ったように、それは不可能です。あなたが説明した単語のクラスについては簡単ですが、自然に s で終わるすべての単語についてはどうでしょうか? たとえば、私の名前、マリウスは、マリウの複数形ではありません。バスと同じだと思います。英語の単語の複数形化は一方向関数 (ハッシュ関数) であり、通常は文または段落の残りの部分が文脈のために必要です。

于 2009-09-04T03:16:05.807 に答える