This is an automated email from the ASF dual-hosted git repository. sergeykamov pushed a commit to branch NLPCRAFT-483 in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/NLPCRAFT-483 by this push: new 23c18b7 Minor fixes. 23c18b7 is described below commit 23c18b7528de26d7f0dbfc1868fb639920caebd2 Author: Sergey Kamov <skhdlem...@gmail.com> AuthorDate: Sat Feb 26 12:19:34 2022 +0300 Minor fixes. --- .../examples/lightswitch/LightSwitchRuModel.scala | 10 +++++- .../examples/lightswitch/NCRuPipeline.scala | 37 ---------------------- .../nlp/token/parser/NCRuTokenParser.scala | 31 ++++++++---------- 3 files changed, 23 insertions(+), 55 deletions(-) diff --git a/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchRuModel.scala b/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchRuModel.scala index 802934c..822e98c 100644 --- a/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchRuModel.scala +++ b/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchRuModel.scala @@ -19,12 +19,17 @@ package org.apache.nlpcraft.examples.lightswitch import org.apache.nlpcraft.* import org.apache.nlpcraft.examples.lightswitch.nlp.entity.parser.semantic.NCRuSemanticEntityParser +import org.apache.nlpcraft.examples.lightswitch.nlp.token.enricher.NCRuStopWordsTokenEnricher +import org.apache.nlpcraft.examples.lightswitch.nlp.token.parser.NCRuTokenParser import org.apache.nlpcraft.nlp.entity.parser.nlp.NCNLPEntityParser import org.apache.nlpcraft.nlp.entity.parser.semantic.NCSemanticEntityParser import org.apache.nlpcraft.nlp.entity.parser.semantic.impl.en.NCEnSemanticPorterStemmer import org.apache.nlpcraft.nlp.token.enricher.en.NCStopWordsTokenEnricher import org.apache.nlpcraft.nlp.token.parser.opennlp.NCOpenNLPTokenParser +import java.util +import scala.jdk.CollectionConverters.* + /** * This example provides very simple implementation for NLI-powered light switch. * You can say something like this: @@ -40,7 +45,10 @@ import org.apache.nlpcraft.nlp.token.parser.opennlp.NCOpenNLPTokenParser class LightSwitchRuModel extends NCModelAdapter( new NCModelConfig("nlpcraft.lightswitch.ru.ex", "LightSwitch Example Model RU", "1.0"), - new NCRuPipeline(new NCRuSemanticEntityParser("lightswitch_model_ru.yaml")) + new NCModelPipeline: + override val getTokenParser: NCTokenParser = new NCRuTokenParser() + override val getTokenEnrichers: util.List[NCTokenEnricher] = Seq(new NCRuStopWordsTokenEnricher()).asJava + override val getEntityParsers: util.List[NCEntityParser] = Seq(new NCRuSemanticEntityParser("lightswitch_model_ru.yaml")).asJava ): /** * Intent and its on-match callback. diff --git a/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/NCRuPipeline.scala b/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/NCRuPipeline.scala deleted file mode 100644 index 3fe37d1..0000000 --- a/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/NCRuPipeline.scala +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.nlpcraft.examples.lightswitch - -import org.apache.nlpcraft.* -import org.apache.nlpcraft.examples.lightswitch.nlp.token.enricher.NCRuStopWordsTokenEnricher -import org.apache.nlpcraft.examples.lightswitch.nlp.token.parser.NCRuTokenParser -import org.apache.nlpcraft.internal.util.NCResourceReader -import org.apache.nlpcraft.nlp.token.enricher.en.* -import org.apache.nlpcraft.nlp.token.parser.opennlp.NCOpenNLPTokenParser - -import java.util -import java.util.* -import scala.jdk.CollectionConverters.* - -/** - * Default RU implementation based on Open Nlp token parser, and stopword token enricher. - * Also at least one entity parser must be defined. */ -class NCRuPipeline(parser: NCEntityParser) extends NCModelPipeline: - override val getTokenParser: NCTokenParser = new NCRuTokenParser() - override val getEntityParsers: util.List[NCEntityParser] = Seq(parser).asJava - override val getTokenEnrichers: util.List[NCTokenEnricher] = Seq(new NCRuStopWordsTokenEnricher()).asJava diff --git a/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/nlp/token/parser/NCRuTokenParser.scala b/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/nlp/token/parser/NCRuTokenParser.scala index feca7fc..73e4b33 100644 --- a/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/nlp/token/parser/NCRuTokenParser.scala +++ b/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/nlp/token/parser/NCRuTokenParser.scala @@ -55,22 +55,19 @@ class NCRuTokenParser extends NCTokenParser: spans.zip(tags).zipWithIndex.map { case ((span, tag), idx) => val readings = tag.getReadings.asScala - val (lemma, pos) = - readings.size match - // No data. Lemma is word as is, POS is undefined. - case 0 => (span.word, "") - // Takes first. Other variants ignored. - case _ => - val aTok: AnalyzedToken = readings.head - (nvl(aTok.getLemma, span.word), nvl(aTok.getPOSTag, "")) + val (lemma, pos) = readings.size match + // No data. Lemma is word as is, POS is undefined. + case 0 => (span.word, "") + // Takes first. Other variants ignored. + case _ => + val aTok: AnalyzedToken = readings.head + (nvl(aTok.getLemma, span.word), nvl(aTok.getPOSTag, "")) - val tok: NCToken = - new NCPropertyMapAdapter with NCToken: - override val getText: String = span.word - override val getIndex: Int = idx - override val getStartCharIndex: Int = span.start - override val getEndCharIndex: Int = span.end - override val getLemma: String = lemma - override val getPos: String = pos - tok + new NCPropertyMapAdapter with NCToken: + override val getText: String = span.word + override val getIndex: Int = idx + override val getStartCharIndex: Int = span.start + override val getEndCharIndex: Int = span.end + override val getLemma: String = lemma + override val getPos: String = pos }.asJava \ No newline at end of file