如何从文件读取规则

时间:2018-07-27 16:46:51

标签: stanford-nlp

我正试图使句子与规则相匹配。

我可以使用以下方法来编译多个规则并将其与CoreLabel进行匹配:

TokenSequencePattern pattern1 = TokenSequencePattern.compile("([{tag:/NN.*//*}])");
TokenSequencePattern pattern2 = TokenSequencePattern.compile("([{tag:/NN.*//*}])");

List<TokenSequencePattern> tokenSequencePatterns = new ArrayList<>();
tokenSequencePatterns.add(pattern1);
tokenSequencePatterns.add(pattern2);

MultiPatternMatcher multiMatcher = TokenSequencePattern.getMultiPatternMatcher(tokenSequencePatterns);
List<SequenceMatchResult<CoreMap>> matched=multiMatcher.findNonOverlapping(tokens);

我在文件中有很多规则。有什么办法可以加载规则文件?

我已经看到了一种使用以下方法从文件加载规则的方法:

CoreMapExpressionExtractor extractor = CoreMapExpressionExtractor.createExtractorFromFiles(TokenSequencePattern.getNewEnv(), "en.rules");
List<MatchedExpression> matched = extractor.extractExpressions((CoreMap)sentence);

但是它接受CoreMap作为其参数。但我需要将其与CoreLabel

进行匹配

1 个答案:

答案 0 :(得分:1)

请参阅有关TokensRegex的综合文章:

https://stanfordnlp.github.io/CoreNLP/tokensregex.html