首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用regexner标识表单的日期\d-\d-\d\d

使用regexner标识表单的日期\d-\d-\d\d
EN

Stack Overflow用户
提问于 2017-04-14 11:20:55
回答 1查看 190关注 0票数 0

我正在使用斯坦福大学的regexNer和ner一起在一个管道中。我想将0-9-0-0-0-9(例如27-02-16)表格的字符串识别为日期,ner将其标识为数字。因此,我在映射文件中定义了regex,并将其交给regexner。但是regexNer无法将这样的字符串识别为日期。这些标记的ner仍然是数字。以下是映射文件:

代码语言:javascript
复制
[0-9]{2}-[0-9]{2}-[0-9]{2}  date    NUMBER

我确保列是制表符分隔开的。我尝试了几个版本的这个regex,比如\d\d-\d\d\d和0-9-0-0-0-9,但是没有一种有效。关于我可能错在哪里有什么建议吗?我正在使用斯坦福大学的CoreNLP 3.7。这里是我正在运行的java代码。

代码语言:javascript
复制
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匹配a14-07-12)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-16 03:54:17

你是如何运行这个的,因为你原来的规则对我来说很好。

我发布了以下命令:

代码语言:javascript
复制
java -Xmx8g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,regexner -regexner.mapping date-rules.txt -file date-example.txt -outputFormat text
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43410522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档