Как сделать конвертацию в Пролог? - PullRequest
2 голосов
/ 07 августа 2009

Я взаимодействую с WordNet , и некоторые термины, которые я хотел бы классифицировать (различные собственные имена), пишутся с заглавной буквы в базе данных, но вводимые мной данные могут быть заглавными. Моя первоначальная идея заключается в том, чтобы написать предикат, который выдает различные капитализации, возможные для ввода, но я не уверен, как это сделать.

У кого-нибудь есть идеи, как это сделать или, что еще лучше, более эффективный способ добиться того, чего я хотел бы сделать?

1 Ответ

2 голосов
/ 07 августа 2009

Это зависит от того, какую реализацию Prolog вы используете, но могут быть библиотечные функции, которые вы можете использовать.

например. из справочного руководства SWI-Prolog :

4.22.1 Преобразование кейса

В стандарте Prolog нет ничего для преобразования регистра в текстовые данные. SWI-Пролог Предикаты code_type / 2 и char_type / 2 могут использоваться для тестирования и преобразования отдельных персонажи. Мы начали дополнительную поддержку:

downcase_atom (+ AnyCase, -LowerCase)

Преобразует символы AnyCase в нижний регистр, как это делает char_type / 2 (т.е. на основе определенный языковой стандарт, если Prolog обеспечивает поддержку языкового стандарта на платформе хостинга) и унифицирует строчный атом в нижнем регистре.

upcase_atom (+ AnyCase, -UpperCase)

Преобразует, подобно downcase_atom / 2, атом в верхний регистр.

Так как это только уменьшает все, что было передано ему, вы можете легко написать простой предикат для очистки каждого ввода перед выполнением любого анализа.

...