完成NLP第一版优化

This commit is contained in:
wulin 2023-10-08 21:23:57 +08:00
parent 7bf3121c3b
commit 1fb7296fa7
6 changed files with 3751 additions and 167 deletions

View File

@ -2,8 +2,10 @@ package com.qiuguo.iot.third.enums;
import com.qiuguo.iot.base.utils.StringUtils; import com.qiuguo.iot.base.utils.StringUtils;
import com.qiuguo.iot.data.entity.device.DeviceUserBindEntity;
import com.qiuguo.iot.data.entity.system.SystemTalkAnswerConfigEntity; import com.qiuguo.iot.data.entity.system.SystemTalkAnswerConfigEntity;
import com.qiuguo.iot.third.nlp.action.Action; import com.qiuguo.iot.third.nlp.action.Action;
import com.qiuguo.iot.third.nlp.action.ActionTime;
import com.qiuguo.iot.third.nlp.action.Actions; import com.qiuguo.iot.third.nlp.action.Actions;
import java.util.ArrayList; import java.util.ArrayList;
@ -23,7 +25,14 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
action.setAction(key);
SystemTalkAnswerConfigEntity entity = getSystemTalkWithKey(action.getAction(), keyGroup);
if(entity != null){
systemTalkAnswerConfigEntities.add(entity);
}
actions.setA(1);
return action; return action;
} }
}, },
@ -33,7 +42,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -43,7 +53,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -56,7 +67,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -66,7 +78,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
},//LAC PER },//LAC PER
@ -76,7 +89,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -86,7 +100,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -96,7 +111,9 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
action.getLbs().add(key);
return action; return action;
} }
}, },
@ -106,7 +123,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -116,7 +134,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -126,7 +145,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -136,7 +156,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
//匹配到关键词就不能作为名词加入未匹配到的分割前的都加入名词 //匹配到关键词就不能作为名词加入未匹配到的分割前的都加入名词
SystemTalkAnswerConfigEntity entity = getSystemTalkWithKey(key, keyGroup); SystemTalkAnswerConfigEntity entity = getSystemTalkWithKey(key, keyGroup);
if(entity != null){ if(entity != null){
@ -181,7 +202,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -192,7 +214,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -202,7 +225,36 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
if(StringUtils.isNotEmpty(actions.getName())){
//action.setName(name);//.add(name);
SystemTalkAnswerConfigEntity entity = getSystemTalkWithKey(actions.getName(), keyGroup);
if(entity != null){
systemTalkAnswerConfigEntities.add(entity);
actions.setA(1);//a = 1;
}else{
if(actions.getB() == 1 && actions.getA() == 0){
//本名称没有找到对应的动作
action.setSystemTalkAnswerConfigEntity(actions.getLastSystemTalkAnswerConfigEntity());
action.setAction(action.getSystemTalkAnswerConfigEntity().getAskKey());
action.setDeviceUserBindEntity(actions.getLastDeviceUserBindEntity());
actions.getActions().add(action);
actions.setLastName(action.getName());//lastName = action.getName();
actions.setLastDeviceUserBindEntity(action.getDeviceUserBindEntity());
action = new Action();
actions.setName("");//name = "";
//action.setName(new ArrayList<>());
action.setLbs(new ArrayList<>());
action.setAsk(actions.getRecordText());
}
action.setName(actions.getName());//.add(name);//加入分割前的名词
//name = "";
actions.setB(1);//b = 1;
}
}
actions.setName("");//name = "";
return action; return action;
} }
}, },
@ -212,7 +264,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -222,7 +275,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -232,7 +286,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -242,7 +297,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -252,7 +308,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -262,7 +319,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
},//LAC t },//LAC t
@ -272,7 +330,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
},//LAC vn },//LAC vn
@ -282,7 +341,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -292,7 +352,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -302,7 +363,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -312,7 +374,9 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
action.setStatus(key);
return action; return action;
} }
}, },
@ -322,7 +386,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -332,7 +397,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -343,7 +409,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -353,7 +420,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -363,7 +431,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -373,7 +442,11 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
//解析时间关键字
action.setTime(new ActionTime());
action.getTime().setTime(key);
return action; return action;
} }
},//LAC TIME },//LAC TIME
@ -383,7 +456,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
},//LAC TIME },//LAC TIME
@ -393,7 +467,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -403,7 +478,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -414,7 +490,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -424,7 +501,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -434,7 +512,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -444,7 +523,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -454,8 +534,9 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
return action; List<DeviceUserBindEntity> includs){
return c.getAction(keyGroup, key, actions, action, systemTalkAnswerConfigEntities, includs);
} }
}, },
x(30, "非语素词"){ x(30, "非语素词"){
@ -464,7 +545,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -474,7 +556,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
},//LAC xc },//LAC xc
@ -484,7 +567,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
},//LAC xc },//LAC xc
@ -494,7 +578,8 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
@ -504,31 +589,65 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
zd(99, "自定义"){ zd(99, "自定义"){
@Override @Override
public Action getAction(ConcurrentHashMap<String, SystemTalkAnswerConfigEntity> keyGroup, public Action getAction(ConcurrentHashMap<String, SystemTalkAnswerConfigEntity> keyGroup,
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action; return action;
} }
}, },
qg(100, "在查找字符串时用来临时替换用户命名的设备目前最多同时支持20个见LAC字典"){ qg(100, "在查找字符串时用来临时替换用户命名的设备目前最多同时支持20个见LAC字典"){
@Override @Override
public Action getAction(ConcurrentHashMap<String, SystemTalkAnswerConfigEntity> keyGroup, public Action getAction(ConcurrentHashMap<String, SystemTalkAnswerConfigEntity> keyGroup,
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities){ List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
if(actions.getB() == 1 && actions.getA() == 0){
//本名称没有找到对应的动作
action.setSystemTalkAnswerConfigEntity(actions.getLastSystemTalkAnswerConfigEntity());
action.setAction(action.getSystemTalkAnswerConfigEntity().getAskKey());
action.setDeviceUserBindEntity(actions.getLastDeviceUserBindEntity());
actions.getActions().add(action);
actions.setLastName(action.getName());// lastName = action.getName();
actions.setLastDeviceUserBindEntity(action.getDeviceUserBindEntity());
action = new Action();
actions.setName("");//name = "";
//action.setName(new ArrayList<>());
action.setLbs(new ArrayList<>());
action.setAsk(actions.getRecordText());
}
int index = Integer.parseInt(key.replace(">", "").replace("<", ""));
action.setDeviceUserBindEntity(includs.get(index));
actions.setName("");//name = "";
action.setName(action.getDeviceUserBindEntity().getBindName());//.add(action.getDeviceUserBindEntity().getBindName());
actions.setB(1);//b = 1;
return action; return action;
} }
}, },
DEFAULT(1000, "默认"){
@Override
public Action getAction(ConcurrentHashMap<String, SystemTalkAnswerConfigEntity> keyGroup,
String key,
Actions actions,
Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs){
return action;
}
}
; ;
ChinesePartSpeechEnum(Integer c, String n){ ChinesePartSpeechEnum(Integer c, String n){
code = c; code = c;
@ -552,7 +671,7 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
return e; return e;
} }
} }
return null; return DEFAULT;
} }
public static ChinesePartSpeechEnum getEnumWithName(String name){ public static ChinesePartSpeechEnum getEnumWithName(String name){
@ -562,11 +681,11 @@ public enum ChinesePartSpeechEnum implements IChinesePartSpeech{
return e; return e;
} }
} }
return null; return DEFAULT;
} }
private static SystemTalkAnswerConfigEntity getSystemTalkWithKey(String key, ConcurrentHashMap<String, SystemTalkAnswerConfigEntity> keyGroup){ private static SystemTalkAnswerConfigEntity getSystemTalkWithKey(String key, ConcurrentHashMap<String, SystemTalkAnswerConfigEntity> keyGroup){
if(keyGroup.contains(key)){ if(keyGroup.containsKey(key)){
return keyGroup.get(key); return keyGroup.get(key);
} }
return null; return null;

View File

@ -1,5 +1,6 @@
package com.qiuguo.iot.third.enums; package com.qiuguo.iot.third.enums;
import com.qiuguo.iot.data.entity.device.DeviceUserBindEntity;
import com.qiuguo.iot.data.entity.system.SystemTalkAnswerConfigEntity; import com.qiuguo.iot.data.entity.system.SystemTalkAnswerConfigEntity;
import com.qiuguo.iot.third.nlp.action.Action; import com.qiuguo.iot.third.nlp.action.Action;
import com.qiuguo.iot.third.nlp.action.Actions; import com.qiuguo.iot.third.nlp.action.Actions;
@ -12,5 +13,6 @@ public interface IChinesePartSpeech {
String key, String key,
Actions actions, Actions actions,
Action action, Action action,
List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities); List<SystemTalkAnswerConfigEntity> systemTalkAnswerConfigEntities,
List<DeviceUserBindEntity> includs);
} }

View File

@ -122,114 +122,13 @@ public class NlpService {
} }
if(key.getType().equals(ChinesePartSpeechEnum.v.getCode())){ action = ChinesePartSpeechEnum.getEnumWithCode(key.getType()).getAction(systemTalkAnswerConfigService.getSystemTalkWithKeyGroup(),
action.setAction(key.getKey()); key.getKey(),
SystemTalkAnswerConfigEntity entity = systemTalkAnswerConfigService.getSystemTalkWithKey(action.getAction()); actions,
if(entity != null){ action,
systemTalkAnswerConfigEntities.add(entity); systemTalkAnswerConfigEntities,
} includs);
actions.setA(1);//a = 1;
}else if(key.getType().equals(ChinesePartSpeechEnum.n.getCode())){
//匹配到关键词就不能作为名词加入未匹配到的分割前的都加入名词
SystemTalkAnswerConfigEntity entity = systemTalkAnswerConfigService.getSystemTalkWithKey(key.getKey());
if(entity != null){
systemTalkAnswerConfigEntities.add(entity);
actions.setA(1);//a = 1;
if(StringUtils.isNotEmpty(actions.getName())){//已记录的加进去
//
entity = systemTalkAnswerConfigService.getSystemTalkWithKey(actions.getName());
if(entity != null){
systemTalkAnswerConfigEntities.add(entity);
actions.setA(1);//a = 1;
}else{
//这里会走到a+b=2
action.setName(actions.getName());//.add(name);//加入分割前的名词
actions.setB(1);//b = 1;
actions.setName("");//name = "";
}
}
}else{
if(actions.getB() == 1 && actions.getA() == 0){
//本名称没有找到对应的动作
action.setSystemTalkAnswerConfigEntity(actions.getLastSystemTalkAnswerConfigEntity());
action.setAction(action.getSystemTalkAnswerConfigEntity().getAskKey());
action.setDeviceUserBindEntity(actions.getLastDeviceUserBindEntity());
actions.getActions().add(action);
actions.setLastName(action.getName());//lastName = action.getName();
actions.setLastDeviceUserBindEntity(action.getDeviceUserBindEntity());
action = new Action();
actions.setName("");//name = "";
//action.setName(new ArrayList<>());
action.setLbs(new ArrayList<>());
action.setAsk(actions.getRecordText());
}
actions.setName(actions.getName() + key.getKey());//name += key.getKey();
//b = 1;
}
}else if(key.getType().equals(ChinesePartSpeechEnum.m.getCode())){
action.setStatus(key.getKey());
}else if(key.getType().equals(ChinesePartSpeechEnum.c.getCode()) ||
key.getType().equals(ChinesePartSpeechEnum.w.getCode())){//标点符号连接词
if(StringUtils.isNotEmpty(actions.getName())){
//action.setName(name);//.add(name);
SystemTalkAnswerConfigEntity entity = systemTalkAnswerConfigService.getSystemTalkWithKey(actions.getName());
if(entity != null){
systemTalkAnswerConfigEntities.add(entity);
actions.setA(1);//a = 1;
}else{
if(actions.getB() == 1 && actions.getA() == 0){
//本名称没有找到对应的动作
action.setSystemTalkAnswerConfigEntity(actions.getLastSystemTalkAnswerConfigEntity());
action.setAction(action.getSystemTalkAnswerConfigEntity().getAskKey());
action.setDeviceUserBindEntity(actions.getLastDeviceUserBindEntity());
actions.getActions().add(action);
actions.setLastName(action.getName());//lastName = action.getName();
actions.setLastDeviceUserBindEntity(action.getDeviceUserBindEntity());
action = new Action();
actions.setName("");//name = "";
//action.setName(new ArrayList<>());
action.setLbs(new ArrayList<>());
action.setAsk(actions.getRecordText());
}
action.setName(actions.getName());//.add(name);//加入分割前的名词
//name = "";
actions.setB(1);//b = 1;
}
}
actions.setName("");//name = "";
}else if(key.getType().equals(ChinesePartSpeechEnum.nt.getCode())){
action.getLbs().add(key.getKey());
}else if(key.getType().equals(ChinesePartSpeechEnum.t.getCode())){
//解析时间关键字
action.setTime(new ActionTime());
action.getTime().setTime(key.getKey());
}else if(key.getType().equals(ChinesePartSpeechEnum.qg.getCode())){
//替换成对应的设备
if(actions.getB() == 1 && actions.getA() == 0){
//本名称没有找到对应的动作
action.setSystemTalkAnswerConfigEntity(actions.getLastSystemTalkAnswerConfigEntity());
action.setAction(action.getSystemTalkAnswerConfigEntity().getAskKey());
action.setDeviceUserBindEntity(actions.getLastDeviceUserBindEntity());
actions.getActions().add(action);
actions.setLastName(action.getName());// lastName = action.getName();
actions.setLastDeviceUserBindEntity(action.getDeviceUserBindEntity());
action = new Action();
actions.setName("");//name = "";
//action.setName(new ArrayList<>());
action.setLbs(new ArrayList<>());
action.setAsk(actions.getRecordText());
}
int index = Integer.parseInt(key.getKey().replace(">", "").replace("<", ""));
action.setDeviceUserBindEntity(includs.get(index));
actions.setName("");//name = "";
action.setName(action.getDeviceUserBindEntity().getBindName());//.add(action.getDeviceUserBindEntity().getBindName());
actions.setB(1);//b = 1;
}
} }
//下面判断最后一个名词 //下面判断最后一个名词
if(StringUtils.isNotEmpty(actions.getName())){ if(StringUtils.isNotEmpty(actions.getName())){

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff