我正在与WordNet接口,我想要分类的一些术语(各种专有名称)在数据库中大写,但我得到的输入可能没有正确大写。我最初的想法是写一个谓词,产生输入可能的各种资本化,但我不知道如何去做。
有没有人知道如何实现这一目标,甚至更好,一种更有效的方式来实现我想做的事情?
答案 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的原子转换为大写。
由于这只会降低传递给它的内容,因此在进行任何分析之前,您可以轻松编写一个简单的谓词来清理每个输入。