WordNetとやり取りしていて、分類したい用語の一部(さまざまな固有名)がデータベースで大文字になっていますが、取得した入力が正しく大文字になっていない可能性があります。ここでの私の最初のアイデアは、入力の可能なさまざまな大文字化を生成する述語を作成することですが、それをどのように実行するかはわかりません。
誰かがこれをどうやってやるのか、もっと良いのは私がやりたいことを達成するためのより効率的な方法を知っていますか?
使用しているProlog実装によって異なりますが、使用できるライブラリ関数がある場合があります。
4.22.1ケース変換
テキストデータの大文字小文字を変換するためのProlog標準には何もありません。SWI-Prolog述語code_type/2およびchar_type/2を使用して、個々の文字をテストおよび変換できます。追加のサポートを開始しました。
downcase_atom(+ AnyCase、-LowerCase)
char_type / 2のように(つまり、Prologがホスティングプラットフォームでロケールサポートを提供する場合は定義されたロケールに基づいて)AnyCaseの文字を小文字に変換し、小文字のアトムをLowerCaseと統合します。
upcase_atom(+ AnyCase、-UpperCase)
downcase_atom / 2と同様に、アトムを大文字に変換します。
これは渡されたものをすべて小文字にするだけなので、分析を行う前にすべての入力をサニタイズする簡単な述語を簡単に書くことができます。