我在管道中使用斯坦福正則表達式。我想識別[0-9] [0-9] - [0-9] [0-9] - [0-9] [0-9](例如27-02-16)形式的字符串爲日期,其中ner識別爲NUMBER。所以,我在一個映射文件中定義了一個正則表達式並將其提供給regexner。但是regexNer無法識別日期等字符串。這些令牌的ner仍然是NUMBER。 以下是映射文件:使用正則表達式識別窗體 d d d d d d的日期
[0-9]{2}-[0-9]{2}-[0-9]{2} date NUMBER
我保證,列製表符分隔。我嘗試了幾個版本的正則表達式,例如\ d \ d- \ d \ d- \ d \ d和[0-9] [0-9] - [0-9] [0-9] - [0-9] [0-9],但他們都沒有工作。任何指向我可能會出錯的地方?我正在使用斯坦福CoreNLP 3.7。這裏是我正在運行的Java代碼。
Properties PROPS = new Properties();
PROPS.put("annotators", "tokenize, ssplit, pos, lemma, ner, regexner");
StanfordCoreNLP PIPELINE = new StanfordCoreNLP(PROPS);
PIPELINE.addAnnotator(
new RegexNERAnnotator("/home/jyoti/workspace-jee/QA_Rest/src/main/resources/Gazetter.txt"));
我進一步調查,發現正則表達式不匹配,只有當它由全整數任何字符串。我試着用字母作爲它的前綴,它起作用了(即a \ d \ d- \ d \ d- \ d \ d與a14-07-12匹配)。
@stanfordnlphelp,任何指針請。 – user7568303