gpt4 book ai didi

java - 提取指定单词之后的所有单词直到句子结尾

转载 作者:太空宇宙 更新时间:2023-11-04 14:41:40 25 4
gpt4 key购买 nike

我需要提取以下单词之后直到句子结尾的所有单词 (/[Ee]ach+/) ([tag:NN]+|[tag:NNS]+) (/has+/|/have+/) 但我在第 13 行遇到错误,下面是我的代码:

 1  String file="Each campus has one club. Each programme has a unique code, title, level and   duration.";
2 Properties props = new Properties();
3 props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
4 StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
5 Annotation document = new Annotation(file);
6 pipeline.annotate(document);
7 List<CoreLabel> tokens = new ArrayList<CoreLabel>();

8 List<CoreMap> sentences = document.get(CoreAnnotations.SentencesAnnotation.class);
9 for(CoreMap sentence: sentences)
10 {
11 for (CoreLabel token: sentence.get(CoreAnnotations.TokensAnnotation.class))
12 tokens.add(token);

13 TokenSequencePattern pattern = TokenSequencePattern.compile("(/[Ee]ach+/) ([tag:NN]+|[tag:NNS]+) (/has+/|/have+/) [A-Z]");
14 TokenSequenceMatcher matcher = pattern.getMatcher(tokens);
15 while( matcher.find()){
16 JOptionPane.showMessageDialog(rootPane, matcher.group());
17 String matched = matcher.group();
18 }
19 tokens.removeAll(tokens);
20 }

最佳答案

在许多语言中,您在正则表达式周围看到的斜杠,例如

/someregex/

与正则表达式没有任何关系:斜杠是应用程序语言的产物,而 java 不是使用它们的语言之一。

一旦你去掉这些斜杠,修复你的正则表达式更改,并删除意图不正确的字符类,以及一些其他调整,这个正则表达式应该可以工作:

([Ee]ach|tag:NNS?|ha(s|ve)) +\w+

关于java - 提取指定单词之后的所有单词直到句子结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24863261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com