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