извлечь текст из текстового файла с отступом, используя рута - PullRequest
0 голосов
/ 04 ноября 2019

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

Пример:

Borrower Name: Alice                             SSN: 000-00-000  
Co-Borrower Name:                                SSN:

Я аннотировал ключевое слово имени заемщика и ключевое слово SSN, но не смог определить запрос для получения имени.

Document{->RETAINTYPE(SPACE)};
DECLARE BorrowerKeyword, NameKeyword, BorrowerNameKeyword;
W{REGEXP("Borrower")->BorrowerKeyword};
W{REGEXP("Name")->NameKeyword};

(SPACE BorrowerKeyword SPACE NameKeyword){-> BorrowerNameKeyword};

DECLARE SSNKeyword;
W{REGEXP("SSN")->SSNKeyword};
DECLARE BorrowerNameLine;
Line{CONTAINS(BorrowerNameKeyword,10,100),
     CONTAINS(SSNKeyword,10,50)-> MARK(BorrowerNameLine)}; // Not able to annotate BorrowerNameLine


// other way but that also didn't work.
DECLARE BorrowerName;
RETAINTYPE(SPACE);
CW.ct=="Borrower" CW.ct=="Name" COLON n:W{-> CREATE(BorrowerName, "label"="Borrower Name", "value"=n.ct)};
RETAINTYPE;

Подскажите, пожалуйста, что я пропустил и исправьте запрос

1 Ответ

0 голосов
/ 04 ноября 2019

Попробуйте отфильтровать SPACE после использования, чтобы избежать нежелательных эффектов и упростить разработку правил.

REMOVERETAINTYPE(SPACE);
DECLARE Borrower, Name; 
CW{REGEXP("\\bBorrower") -> Borrower} CW{REGEXP("Name") -> Name};
Borrower Name COLON n:W{-> CREATE(BorrowerName, "label"="Borrower Name", "value"=n.ct)};
...