2013-12-12 67 views
2

我試圖解析非英文語言的內容,例如韓文,中文等。 UIMA是否有任何內置支持。在Apache UIMA門戶中,我無法獲得有關此信息的更多信息。 所有我能想到的都是unicode正則表達式模式,但即使那些由於某種原因似乎不起作用。我的正則表達式模式具有unicode字符不是註釋我需要的單詞。Apache UIMA解析多語言內容

正在使用JDK1.7,UIMA 2.4.2。

非常感謝任何幫助或建議。

下面這樣的例子我想

文字:NÚMERO日預訂新445566553代碼【本文是在我使用FileSystemCollectionReader讀文件,我已經將編碼設置爲UTF-8]

我正則表達式(= \ SCODE?)

預期輸出(< =民\ u00E9ro \ SDE \ SR \ u00E9servation \ S?)(*?):445566553

+2

發佈正在使用的正則表達式,解析文本並突出顯示要提取的短語或詞 – alkis

回答

0

我不知道,如果你遇到的問題是用uima,但是你用普通的java處理的正則表達式對我來說似乎沒問題。我正在使用java 1.7.0_45。我稍微修改了您的正則表達式以允許數字周圍有多個空格。下面是一個SSCCE運行輸出時爲'445566553'

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class RegexExample { 
    public static void main(String[] args) { 
     String test = "Numéro de réservation 445566553 \tCode"; 
     Pattern pattern = Pattern.compile("(?<=Num\\u00E9ro\\sde\\sr\\u00E9servation)\\s+(.*?)\\s+(?=Code)"); 
     Matcher matcher = pattern.matcher(test); 
     while(matcher.find()) { 
      System.out.println("'"+matcher.group(1)+"'"); 
     } 
    } 
} 

如果這是不是你在找什麼,然後提供包含您想解決將是有益的測試用例的SSCCE。

+1

感謝您的解決方案。我發現我使用的文件沒有被保存爲UTF-8格式。我現在開始工作了。非常感謝 – immzi