From b57839f3ffbb5e80bfff11ca96fc8075496cb4fc Mon Sep 17 00:00:00 2001 From: lidapeng Date: Sat, 29 Feb 2020 12:04:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ src/main/java/org/wlld/naturalLanguage/Talk.java | 16 +++++++++++----- src/test/java/org/wlld/LangTest.java | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index f08c1d5..00e027d 100644 --- a/README.md +++ b/README.md @@ -200,6 +200,8 @@ //返回的集合中每个值代表了输入语句,每个标点符号前语句的分类 List list = talk.talk("帮我配把锁"); System.out.println(list); + //这里做一个特别说明,语义分类的分类id不要使用"0",本框架约定如果类别返回数字0,则意味不能理解该语义,即分类失败 + //通常原因是模板量不足,或者用户说的话的语义,不在你的语义分类训练范围内 } #### 最终说明 * TempleConfig():配置模版类,一定要静态在内存中长期持有,检测的时候不要每次都NEW, diff --git a/src/main/java/org/wlld/naturalLanguage/Talk.java b/src/main/java/org/wlld/naturalLanguage/Talk.java index 06209cfb..cc2abb0 100644 --- a/src/main/java/org/wlld/naturalLanguage/Talk.java +++ b/src/main/java/org/wlld/naturalLanguage/Talk.java @@ -105,12 +105,18 @@ public class Talk { private List catchSentence(String sentence) {//把句子拆开 int len = sentence.length(); List sentences = new ArrayList<>(); - for (int j = 0; j < len - 2; j++) { - Sentence sentenceWords = new Sentence(); - for (int i = j; i < len; i++) { - String word = sentence.substring(j, i + 1); - sentenceWords.setWord(word); + if (len > 2) { + for (int j = 0; j < len - 2; j++) { + Sentence sentenceWords = new Sentence(); + for (int i = j; i < len; i++) { + String word = sentence.substring(j, i + 1); + sentenceWords.setWord(word); + } + sentences.add(sentenceWords); } + } else { + Sentence sentenceWords = new Sentence(); + sentenceWords.setWord(sentence); sentences.add(sentenceWords); } return sentences; diff --git a/src/test/java/org/wlld/LangTest.java b/src/test/java/org/wlld/LangTest.java index 8ae2f67..103e174 100644 --- a/src/test/java/org/wlld/LangTest.java +++ b/src/test/java/org/wlld/LangTest.java @@ -25,7 +25,7 @@ public class LangTest { //识别过程 Talk talk = new Talk(); //我饿了,我想吃个饭 - List list = talk.talk("找个上门取件的快递员"); + List list = talk.talk("语速"); System.out.println(list); } }