Commit 5128e47b by 石头

Merge remote-tracking branch 'origin/master'

2 parents 6cd3fbaf 04701e41
...@@ -20,6 +20,9 @@ import com.dookay.cihai.core.aip.consts.DepPostTagConst; ...@@ -20,6 +20,9 @@ import com.dookay.cihai.core.aip.consts.DepPostTagConst;
import com.dookay.cihai.core.aip.consts.DeprelConst; import com.dookay.cihai.core.aip.consts.DeprelConst;
import com.dookay.cihai.core.aip.consts.LexerNeConst; import com.dookay.cihai.core.aip.consts.LexerNeConst;
import com.dookay.cihai.core.aip.consts.LexerPosConst; import com.dookay.cihai.core.aip.consts.LexerPosConst;
import com.dookay.cihai.core.aip.model.DepParserItem;
import com.dookay.cihai.core.aip.model.LexerItem;
import com.dookay.cihai.core.aip.model.WordRelation;
import com.dookay.coral.common.core.exception.ServiceException; import com.dookay.coral.common.core.exception.ServiceException;
import com.dookay.coral.common.core.utils.lang.CollectionUtils; import com.dookay.coral.common.core.utils.lang.CollectionUtils;
import com.dookay.coral.common.core.utils.lang.StringUtils; import com.dookay.coral.common.core.utils.lang.StringUtils;
...@@ -47,7 +50,7 @@ import java.util.stream.Collectors; ...@@ -47,7 +50,7 @@ import java.util.stream.Collectors;
*/ */
@Component @Component
@Slf4j @Slf4j
public final class AipUtilBean { public final class AipWordUtilBean {
private static final ConcurrentHashMap<String, Double> SCORE_MAP = new ConcurrentHashMap<>(); private static final ConcurrentHashMap<String, Double> SCORE_MAP = new ConcurrentHashMap<>();
...@@ -64,7 +67,7 @@ public final class AipUtilBean { ...@@ -64,7 +67,7 @@ public final class AipUtilBean {
private final StringRedisTemplate template; private final StringRedisTemplate template;
@Autowired @Autowired
public AipUtilBean(AipNlp aipNlp, StringRedisTemplate template) { public AipWordUtilBean(AipNlp aipNlp, StringRedisTemplate template) {
this.aipNlp = aipNlp; this.aipNlp = aipNlp;
this.template = template; this.template = template;
} }
...@@ -211,9 +214,10 @@ public final class AipUtilBean { ...@@ -211,9 +214,10 @@ public final class AipUtilBean {
double score = doSimnet(word1, word); double score = doSimnet(word1, word);
if (score > RELATE_CRITICAL_VALUE) { if (score > RELATE_CRITICAL_VALUE) {
WordRelation relation = new WordRelation(); WordRelation relation = new WordRelation();
relation.setWord1(word1); int from = words.indexOf(word1);
relation.setWord2(word); int to = words.indexOf(word);
relation.setScore(score); relation.setFrom(from);
relation.setTo(to);
wordRelations.add(relation); wordRelations.add(relation);
} }
} }
......
package com.dookay.cihai.core.aip; package com.dookay.cihai.core.aip.model;
/***************************************** /*****************************************
* * * *
......
package com.dookay.cihai.core.aip; package com.dookay.cihai.core.aip.model;
/***************************************** /*****************************************
* * * *
......
package com.dookay.cihai.core.aip; package com.dookay.cihai.core.aip.model;
/***************************************** /*****************************************
* * * *
...@@ -24,7 +24,6 @@ import lombok.Data; ...@@ -24,7 +24,6 @@ import lombok.Data;
*/ */
@Data @Data
public class WordRelation { public class WordRelation {
private String word1; private int from;
private String word2; private int to;
private double score;
} }
package com.dookay.cihai.core.aip.model;
/*****************************************
* *
* @dookay.com Internet make it happen *
* ----------- ----------------------- *
* dddd ddddd Internet make it happen *
* o o o Internet make it happen *
* k k k Internet make it happen *
* a a a Internet make it happen *
* yyyy yyyyy Internet make it happen *
* ----------- ----------------------- *
* @dookay.com Internet make it happen *
* *
****************************************/
import lombok.Data;
/**
* @author houkun
* @date 2017/12/7
*/
@Data
public class WordSequence {
private int id;
private String label;
public WordSequence(int id, String label) {
this.id = id;
this.label = label;
}
}
...@@ -14,10 +14,9 @@ package com.dookay.cihai.core; ...@@ -14,10 +14,9 @@ package com.dookay.cihai.core;
* * * *
****************************************/ ****************************************/
import com.alibaba.fastjson.JSON; import com.dookay.cihai.core.aip.AipWordUtilBean;
import com.dookay.cihai.core.aip.AipUtilBean; import com.dookay.cihai.core.aip.model.WordRelation;
import com.dookay.cihai.core.aip.WordRelation; import com.dookay.cihai.core.aip.model.WordSequence;
import org.apache.commons.lang3.tuple.Pair;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -28,7 +27,7 @@ import org.springframework.util.FileCopyUtils; ...@@ -28,7 +27,7 @@ import org.springframework.util.FileCopyUtils;
import java.io.File; import java.io.File;
import java.io.FileReader; import java.io.FileReader;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.stream.Collectors;
/** /**
* @author houkun * @author houkun
...@@ -37,7 +36,7 @@ import java.util.Map; ...@@ -37,7 +36,7 @@ import java.util.Map;
public class BaiduTest extends CihaiCoreApplicationTests { public class BaiduTest extends CihaiCoreApplicationTests {
@Autowired @Autowired
private AipUtilBean aipUtilBean; private AipWordUtilBean aipWordUtilBean;
@Test @Test
public void testQuery() throws Exception { public void testQuery() throws Exception {
...@@ -49,11 +48,11 @@ public class BaiduTest extends CihaiCoreApplicationTests { ...@@ -49,11 +48,11 @@ public class BaiduTest extends CihaiCoreApplicationTests {
String expectResult = "十九大"; String expectResult = "十九大";
String keyword1 = aipUtilBean.extractQueryKeyword(text1); String keyword1 = aipWordUtilBean.extractQueryKeyword(text1);
String keyword2 = aipUtilBean.extractQueryKeyword(text2); String keyword2 = aipWordUtilBean.extractQueryKeyword(text2);
// String keyword3 = aipUtilBean.extractQueryKeyword(text3); // String keyword3 = aipUtilBean.extractQueryKeyword(text3);
// String keyword4 = aipUtilBean.extractQueryKeyword(text4); // String keyword4 = aipUtilBean.extractQueryKeyword(text4);
String keyword5 = aipUtilBean.extractQueryKeyword(text5); String keyword5 = aipWordUtilBean.extractQueryKeyword(text5);
Assert.assertEquals(expectResult, keyword1); Assert.assertEquals(expectResult, keyword1);
Assert.assertEquals(expectResult, keyword2); Assert.assertEquals(expectResult, keyword2);
// Assert.assertEquals(expectResult, keyword3); // Assert.assertEquals(expectResult, keyword3);
...@@ -72,19 +71,12 @@ public class BaiduTest extends CihaiCoreApplicationTests { ...@@ -72,19 +71,12 @@ public class BaiduTest extends CihaiCoreApplicationTests {
File file = resource.getFile(); File file = resource.getFile();
FileReader reader = new FileReader(file); FileReader reader = new FileReader(file);
String text = FileCopyUtils.copyToString(reader); String text = FileCopyUtils.copyToString(reader);
List<String> list = aipUtilBean.extractKeyWords("中国共产党第十九次全国代表大会", text, 15); List<String> list = aipWordUtilBean.extractKeyWords("中国共产党第十九次全国代表大会", text, 15);
System.out.println(JSON.toJSONString(list)); List<WordSequence> wordSequences = list.stream().map(l -> new WordSequence(list.indexOf(l), l)).collect(Collectors.toList());
// Map<Pair<String, String>, Double> map = aipUtilBean.calcKeywordsRelated("中国共产党第十九次全国代表大会", list); List<WordRelation> wordRelations = aipWordUtilBean.generateWordsMap(list);
// System.out.println(map); System.out.println(wordSequences);
// for (String s : list) {
// Map<Pair<String, String>, Double> map1 = aipUtilBean.calcKeywordsRelated(s, list);
// System.out.println(map1);
// }
List<WordRelation> wordRelations = aipUtilBean.generateWordsMap(list);
System.out.println(wordRelations); System.out.println(wordRelations);
System.out.println(wordRelations.size()); System.out.println(wordRelations.size());
// Map<String, Long> map = aipUtilBean.extractNounWordsWithCount(text);
// System.out.print(map.toString());
} }
} }
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
package com.dookay.cihai.wechat.controller; package com.dookay.cihai.wechat.controller;
import com.dookay.cihai.core.aip.AipUtilBean; import com.dookay.cihai.core.aip.AipWordUtilBean;
import com.dookay.cihai.core.theme.domain.ThemeDomain; import com.dookay.cihai.core.theme.domain.ThemeDomain;
import com.dookay.cihai.core.theme.query.ThemeQuery; import com.dookay.cihai.core.theme.query.ThemeQuery;
import com.dookay.cihai.core.theme.service.IThemeService; import com.dookay.cihai.core.theme.service.IThemeService;
...@@ -45,7 +45,7 @@ public class HomeController extends BaseController { ...@@ -45,7 +45,7 @@ public class HomeController extends BaseController {
private IThemeService themeService; private IThemeService themeService;
@Autowired @Autowired
private AipUtilBean aipUtilBean; private AipWordUtilBean aipWordUtilBean;
/** /**
* @author 石磊 * @author 石磊
...@@ -66,18 +66,17 @@ public class HomeController extends BaseController { ...@@ -66,18 +66,17 @@ public class HomeController extends BaseController {
@RequestMapping(value = "/home/search", method = RequestMethod.GET) @RequestMapping(value = "/home/search", method = RequestMethod.GET)
@ResponseBody @ResponseBody
public JsonResult search(String keyword) { public JsonResult search(String keyword) {
System.out.println("进入搜索");
try { try {
System.out.println("keyword="+keyword); String result = aipWordUtilBean.extractQueryKeyword(keyword);
String result = aipUtilBean.extractQueryKeyword(keyword);
System.out.println("搜索result"+result);
ThemeQuery query = new ThemeQuery(); ThemeQuery query = new ThemeQuery();
query.setKeyword(result); query.setKeyword(keyword);
ThemeDomain themeDomain = themeService.getFirst(query); ThemeDomain themeDomain = themeService.getFirst(query);
if (themeDomain == null) return errorResult(String.format("暂无\"%s\"检索结果",keyword)); if (themeDomain == null) return errorResult("暂无检索结果");
System.out.println(themeDomain); System.out.println(themeDomain);
return successResult("success", "/theme/detail/" + themeDomain.getId()); return successResult("success", "/theme/detail/" + themeDomain.getId());
} catch (Exception ex) { } catch (Exception ex) {
return errorResult(String.format("暂无\"%s\"检索结果",keyword)); return errorResult("暂无检索结果");
} }
} }
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!