如何在Prolog中进行大小写转换?

时间:2009-08-07 09:12:42

标签: prolog wordnet

我正在与WordNet接口,我想要分类的一些术语(各种专有名称)在数据库中大写,但我得到的输入可能没有正确大写。我最初的想法是写一个谓词,产生输入可能的各种资本化,但我不知道如何去做。

有没有人知道如何实现这一目标,甚至更好,一种更有效的方式来实现我想做的事情?

1 个答案:

答案 0 :(得分:2)

这取决于您正在使用的Prolog实现,但可能存在可以使用的库函数。

e.g。来自SWI-Prolog reference manual

  

4.22.1案例转换

     

Prolog标准中没有任何内容可以转换文本数据中的案例。 SWI-Prolog   谓词code_type / 2和char_type / 2可用于测试和转换个体   字符。我们已经开始提供一些额外的支持:

     

downcase_atom(+ AnyCase,-LowerCase)

     

将AnyCase的字符转换为小写,如char_type / 2所做的那样(即基于   如果Prolog在托管平台上提供了语言环境支持,则定义语言环境并统一   使用LowerCase的小写原子。

     

upcase_atom(+ AnyCase,-UpperCase)

     

将类似于downcase_atom / 2的原子转换为大写。

由于这只会降低传递给它的内容,因此在进行任何分析之前,您可以轻松编写一个简单的谓词来清理每个输入。