|
@@ -0,0 +1,110 @@
|
|
|
+package org.diagbot.nlp.test;
|
|
|
+
|
|
|
+import org.diagbot.nlp.similar.SimilarUtil;
|
|
|
+import org.diagbot.pub.jdbc.MysqlJdbc;
|
|
|
+
|
|
|
+import java.io.BufferedReader;
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileNotFoundException;
|
|
|
+import java.io.FileReader;
|
|
|
+import java.io.IOException;
|
|
|
+import java.sql.Connection;
|
|
|
+import java.sql.PreparedStatement;
|
|
|
+import java.sql.SQLException;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @Description:
|
|
|
+ * @Author: HUJING
|
|
|
+ * @Date: 2019/10/16 10:11
|
|
|
+ */
|
|
|
+public class Similar2DBTest {
|
|
|
+ private String user = "root";
|
|
|
+ private String password = "diagbot@20180822";
|
|
|
+ private String url = "jdbc:mysql://192.168.2.235:3306/med-s?useUnicode=true&characterEncoding=UTF-8";
|
|
|
+
|
|
|
+ public static void main(String[] args) {
|
|
|
+// String fileName = "D:/大数据小组/相似度知识库.txt";
|
|
|
+// Similar2DBTest similar2DBTest = new Similar2DBTest();
|
|
|
+// Map<String, Set<String>> similarFile = similar2DBTest.readSimilarFile(fileName);
|
|
|
+// similar2DBTest.write2DB(similarFile);
|
|
|
+ List<String> similarList = SimilarUtil.getSimilarList("表情淡漠");
|
|
|
+ System.out.println(similarList);
|
|
|
+ similarList = SimilarUtil.getSimilarList("右侧乳房");
|
|
|
+ System.out.println(similarList);
|
|
|
+// SimilarCacheFileManager similarCacheFileManager = new SimilarCacheFileManager();
|
|
|
+// String resourcePath = similarCacheFileManager.getResourcePath();
|
|
|
+// System.out.println(resourcePath);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public Map<String, Set<String>> readSimilarFile(String fileName) {
|
|
|
+ BufferedReader reader = null;
|
|
|
+ Map<String, Set<String>> similarMap = new HashMap<>();
|
|
|
+ Set<String> similarSet = null;
|
|
|
+ try {
|
|
|
+ reader = new BufferedReader(new FileReader(new File(fileName)));
|
|
|
+ String line = "";
|
|
|
+ while ((line = reader.readLine()) != null) {
|
|
|
+ line = line.replaceAll("\'|]|\\[", "");
|
|
|
+ String[] words = line.split(",");
|
|
|
+ if (similarMap.get(words[0]) == null) {
|
|
|
+ similarSet = new HashSet<>();
|
|
|
+ similarSet.add(words[1]);
|
|
|
+ similarMap.put(words[0], similarSet);
|
|
|
+ } else {
|
|
|
+ similarMap.get(words[0]).add(words[1]);
|
|
|
+ }
|
|
|
+ // System.out.println(line);
|
|
|
+ }
|
|
|
+ } catch (FileNotFoundException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ try {
|
|
|
+ reader.close();
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return similarMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void write2DB(Map<String, Set<String>> similarMap) {
|
|
|
+ MysqlJdbc jdbc = new MysqlJdbc(user, password, url);
|
|
|
+ Connection conn = jdbc.connect();
|
|
|
+ PreparedStatement pst = null;
|
|
|
+ String sql = "INSERT INTO doc_similar(similar_1,similar_2) VALUES(?,?)";
|
|
|
+ try {
|
|
|
+ pst = conn.prepareStatement(sql);
|
|
|
+
|
|
|
+ String similar1 = "";
|
|
|
+ int i = 1;
|
|
|
+ for (Map.Entry<String, Set<String>> similarFileMap : similarMap.entrySet()) {
|
|
|
+ // System.out.println(similarFileMap.getKey());
|
|
|
+ similar1 = similarFileMap.getKey();
|
|
|
+ pst.setString(1, similar1);
|
|
|
+ for (String similar2 : similarFileMap.getValue()) {
|
|
|
+ pst.setString(2, similar2);
|
|
|
+ System.out.println(i++);
|
|
|
+ pst.addBatch();
|
|
|
+ pst.executeBatch();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (SQLException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ try {
|
|
|
+ pst.close();
|
|
|
+ conn.close();
|
|
|
+ } catch (SQLException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|