さて、あなたが実装しようとしていることは間違いなく非常に挑戦的ですが、また非常に困難です。
論理
手始めに、最初に文法規則を少し調べます。
基本的な文型:
(もちろん、「主語+動詞+間接目的語+直接目的語」の形式などについて話すこともできます(たとえば、私はあなたにボールを与えます)が、これは今のところ複雑になりすぎます...)
明らかに、このスキームは非常に単純ですが、今はそれに固執しましょう。
次に(別の過度に単純化された仮定)、各部分は単一の単語であるということです。
つまり、基本的に次の文スキームがあります。
WORD WORD WORD
これは通常、次のような正規表現を使用して一致させることができます。
([\w]+)\s+([\w]+)\s+([\w]+)?
説明 :
([\w]+) # first word (=subject)
\s+ # one or more spaces
([\w]+) # second word (=verb)
\s+ # one or more spaces
([\w]+)? # (optional) third word (=object - if the verb is transitive)
さて、明らかに「あなたは私を愛している」ではなく「あなたは私を愛している」のような文を定式化するために、あなたのアルゴリズムはそれを「理解」する必要があります:
- 文の3番目の部分はオブジェクトの役割を果たします
- 「私」は人称代名詞であるため(主格の場合にのみ使用されます:「主語として」)、その「対格」(=オブジェクトとして)を使用する必要があります。したがって、この目的のために、たとえば次のような人称代名詞の表も必要になる場合があります。
- 私-私の-私
- あなた-あなた-あなた
- 彼-彼-彼
- 等...
ほんの少しのアイデア...(純粋に言語学に対する私の熱意からです:-))
データ
あなたが興味を持っているワードリストに関しては、ほんの少しのサンプル: