2017-11-11 215 views
1

我需要使用正則表達式和字典中的標記標記註釋。這是我的規則使用REGEXP和字典中的令牌在UIMA中創建註釋

ANY {REGEXP(「new」),Book.names.ct ==「personal book」 - > MARK(NewPersonalBook)};

具有與下面的輸入工作:

  1. 新的個人書申請
  2. 打開一個新的個人書

的PROGRAMM顯示了在代碼中沒有錯誤,但它不標註註釋「NewPersonalBook」作爲輸入。 如何解決這個問題?

+1

我覺得問題可能是第二個條件,它試圖解決與類型ANY匹配註釋相同的偏移類型註釋。如果它不是textspan「新」,那麼Book annoation可能會更大。所以條件不符。你能否擴展這個例子? 'b:Book {b.names.ct ==「personal book」,REGEXP(。* new。*) - > NewPersonalBook};' –

回答

0

我不知道如果我理解你的情況,但我試圖複製你想要做

我創建了一個單詞表

personal book, nicebook

然後,我有我的文字例如什麼

new personal book application. open a new personal book. my new nicebook is nice.

腳本

 
WORDLIST BooksList = 'books.txt'; 

DECLARE Book, NewBook; 

Document{-> MARKFAST(Book, BooksList)}; 
W{REGEXP("new")} Book.ct == "personal book" {-> MARK(NewBook, 1, 2)}; //if you want to test a specific text 
W{REGEXP("new")} Book {-> MARK(NewBook, 1, 2)}; //this will annotate NewBook for a books with the word new before it 

如果你不想在 「新」 字的Wi您需要刪除整數參數的註釋(因爲它們表示您想要覆蓋的範圍,在這種情況下,第一個匹配的文本是「新」,第二個是書本文本)

聲明:我是新UIMA RUTA,希望這可以幫助