Построение грамматики для описания имен файлов с соответствующими метаданными
У меня есть несколько циркулярных писем IMO, которые я хочу автоматизировать для извлечения метаданных. К сожалению, метаданные PDF не годятся для этого. Но имена файлов значимы и содержат много.
Ниже приведен пример списка:
Circular Letter No.1886-Rev.1 - Implementation Of Resolution A.600(15) - Imo Ship Identification NumberScheme.pdf
Circular Letter No.1886-Rev.2 - Implementation of resolution A.600(15) - IMO ship identification numberscheme.pdf
Circular Letter No.1886-Rev.3 - Implementation Of Resolution A.600(15) - Imo Ship Identification Number Scheme (Secretariat).pdf
Circular Letter No.1886-Rev.4 - Implementation Of Resolution A.600(15) - Imo Ship Identification NumberScheme (Secretariat).pdf
Circular Letter No.1886-Rev.5 - Implementation Of Resolution A.1078(28) - Imo Ship Identification Number Scheme (Secretariat).pdf
Circular Letter No.1886-Rev.6 - Implementation Of Resolution A.1078(28) - Imo Ship Identification Number Scheme (Secretariat).pdf
Circular Letter No.2047 - Subject Amendments to tables A-II1 and A-II2 of the Seafarers' Training, Certification and....pdf
Circular Letter No.2086 - Subject Operating Agreement on the International Mobile SatelliteOrganization (Inmarsat) -....pdf
Конечно, есть больше вариаций, чем в именах файлов, но это достаточно хороший пример для начала.
Я хотел бы описать следующие части в EBNF или другой обычной грамматике, которую я мог бы использовать с Nearley ( https://nearley.js.org/);
- Круглый номер
- Если документ представляет собой номер версии и редакции (представлен -REV. Номером в первых 6 примерах)
- Заголовок, следующий за - после номера ревизии или циклического номера
- Если заголовок неполный, представлен... в конце.
Я полагаю, что когда у меня будет этот пример, я смогу построить другие необходимые вещи.