Классификация строк на основе онтологии

Недавно я начал работать с онтологиями и использую Protege для создания онтологии, которую я также хотел бы использовать для автоматической классификации строк. Следующее иллюстрирует очень простую иерархию классов:

String
|_ AlphabeticString
   |_ CountryName
   |_ CityName
|_ AlphaNumericString
   |_ PrefixedNumericString
|_ NumericString

В конечном итоге строки, такие как Spain, должны быть классифицированы как CountryNameили UE4564, будут иметь префикс с префиксомNumericString.

Однако я не знаю, как смоделировать это знание. Должен ли я сначала определить, является ли символ буквенным, числовым и т. Д., А затем построить слово из существующих символов или есть способ использовать Regexes? До сих пор мне удавалось классифицировать строки только на основе точной фразы, такой как String и значение hasString "UE4565".

Или было бы лучше сохранить regex для каждого класса в онтологии, а затем классифицировать строку в Java, используя эти regexes?

8
задан Pedro 10 March 2012 в 15:38
поделиться