Advertisement
Guest User

Untitled

a guest
May 22nd, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.91 KB | None | 0 0
  1. private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
  2.  
  3. //File file = new File(name);
  4. //ff=file.listFiles();
  5. int[] mass;
  6. String regex = "";
  7. String regexSyfix = "";
  8. String regexSyfixEnd = "";
  9. String regexEnd = "";
  10. String regexPretext = "";
  11. String s;
  12. StringBuffer sb;
  13. Pattern p;
  14. Matcher m;
  15. Pattern p1;
  16. Matcher m1;
  17. int i;
  18. String end;
  19. File file = new File(name);
  20. ff=file.listFiles();
  21. Database.getInstance().openConnection();
  22. ArrayList<String> pretext = Database.getInstance().getAllPretext();
  23. ArrayList<String> array = Database.getInstance().getAllEndOf();
  24. ArrayList<String> array1 = Database.getInstance().getAllSufix();
  25. ArrayList<String> array2 = new ArrayList<>();
  26. array2.addAll(array1);
  27. array2.addAll(array);
  28. for (String el : array2) {
  29. regex += "\\b[^А-Яа-яіїє][а-яіїє’]*" + el + "\\b(?!’)|";
  30. }
  31. regex = regex.substring(0, regex.length() - 1);
  32.  
  33. for (String el : array1) {
  34. regexSyfix += el + "|";
  35. regexSyfixEnd += el + "\\b(?!’)|";
  36. }
  37. for (String el : array) {
  38. regexEnd += el + "\\b(?!’)|";
  39. }
  40. for (String el : pretext) {
  41. regexPretext += el + "\\s*$|";
  42. }
  43. regexSyfixEnd = regexSyfixEnd.substring(0, regexSyfixEnd.length() - 1);
  44. regexSyfix = regexSyfix.substring(0, regexSyfix.length() - 1);
  45. regexEnd = regexEnd.substring(0, regexEnd.length() - 1);
  46. regexPretext = regexPretext.substring(0, regexPretext.length() - 1);
  47. //Map<Integer, HashMap <Integer,HashSet<Integer>>> charct = new HashMap<Integer, HashMap<Integer,HashSet<Integer>>>();
  48. // Map<Integer, HashMap <String, HashSet> charct = new HashMap<>();
  49.  
  50. Map <Integer, HashMap<String, HashSet<Integer>>> charct = new HashMap<>();
  51. //Map <String, Integer> charct = new HashMap <String, Integer>();
  52. for (int ii = 1; ii < 5; ii++) {
  53. charct.put(ii, new HashMap<String, HashSet<Integer>>());
  54. charct.get(ii).put("V", new HashSet<Integer>());
  55. charct.get(ii).put("N", new HashSet<Integer>());
  56. charct.get(ii).put("R", new HashSet<Integer>());
  57. }
  58.  
  59. for (File entry : file.listFiles()) {
  60. try {
  61. s = WorkWithText.read(entry);
  62.  
  63. sb = new StringBuffer(s);
  64. p = Pattern.compile(regex);
  65. m = p.matcher(s);
  66. i = 0;
  67. while (m.find()) {
  68. if (m.group().replaceAll("ти\\b", "").length() == m.group().length()) {
  69. p1 = Pattern.compile(regexSyfix);
  70. m1 = p1.matcher(m.group());
  71. if (m1.find()) {
  72. end = getEnd(regexEnd, m.group());
  73. if (end.length() == 0) {
  74. sb.insert(m.start() + i + m.group().length(), " <pos=\"N\">");
  75. i += 10;
  76. sb.insert(m.start() + m.group().length() + i, "</>");
  77. i += 3;
  78. } else {
  79. String concat = m.group().substring(0, m.group().length() - end.length());
  80. if (getEnd(regexSyfixEnd, concat).length() != 0) {
  81. Pattern p2 = Pattern.compile(regexPretext);
  82. Matcher m2 = p2.matcher(sb.substring(m.start() - 16, m.start() - 1));
  83.  
  84. HashMap<Integer, int[]> map = Database.getInstance().getAllIdOfEnding(end);
  85. if (m2.find()) {
  86. String str = "";
  87. for (Map.Entry<Integer, int[]> entr : map.entrySet()) {
  88. if (entr.getValue()[1] != 1) {
  89. getProperties(entr.getValue(), charct);
  90. }
  91. }
  92. str = getStringProp(charct);
  93. sb.insert(m.start() + i + m.group().length(), " <pos=\"N\" gram=" + str + ">");
  94. i += str.length() + 17;
  95. sb.insert(m.start() + m.group().length() + i, "</>");
  96. i += 3;
  97.  
  98. } else {
  99. // <pos="N" gram="I, i, s, c | f | m" />
  100. String str1 = "";
  101. for (Map.Entry<Integer, int[]> entr : map.entrySet()) {
  102. getProperties(entr.getValue(), charct);
  103. }
  104. str1 = getStringProp(charct);
  105. sb.insert(m.start() + i + m.group().length(), " <pos=\"N\" gram=" + str1 + ">");
  106. i += str1.length() + 17;
  107. sb.insert(m.start() + m.group().length() + i, "</>");
  108. i += 3;
  109. }
  110. }
  111. }
  112. // mass = Database.getInstance().getCharacteristicsOfId(Database.getInstance().getIdEndOf(end));
  113. }
  114. }
  115. }
  116. writeUsingFiles(sb.toString().replaceAll("\n", "\r\n"), entry.getName());
  117. } catch (FileNotFoundException ex) {
  118. Logger.getLogger(Analyzer.class.getName()).log(Level.SEVERE, null, ex);
  119. }
  120. }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement