Exemple #1
0
  public String getNYTLaius() {
    StringBuilder sb = new StringBuilder();

    sb.append("<div style=\"font-size:120%;\">");
    sb.append("<b>");
    sb.append("Media presence</b><br>");
    sb.append("</div>");

    if (!controllerBean.isNYTfound()) {
      sb.append("No media presence was detected for ");
      sb.append(controllerBean.getSearch().getFullname());
      sb.append(" (experimental feature).");

    } else {
      sb.append(controllerBean.getSearch().getFullname());
      sb.append(" is mentioned in the following article(s) fron the New York Times:<br>");
      for (Document element : controllerBean.getSetMediaDocs()) {
        if (!element.getPublication_outlet().equals("New York Times")) {
          continue;
        }
        sb.append(element.getYear());
        sb.append(". \"<a href=\"");
        sb.append(element.getNyt_url());
        sb.append("\">");
        sb.append(element.getTitle());
        sb.append("</a>.\"");
        sb.append("<br>");
      }
    }

    sb.append("<p></p>");
    return sb.toString();
  }
Exemple #2
0
 public MainForm() {
   alfa.setValue(1);
   beta.setValue(1);
   gamma.setValue(1);
   loadDatabase.addActionListener(
       e -> {
         fileChooser.setCurrentDirectory(new File(database.getText()));
         int returnVal = fileChooser.showOpenDialog(panel1);
         if (returnVal == JFileChooser.APPROVE_OPTION) {
           File file = fileChooser.getSelectedFile();
           database.setText(file.getPath());
         }
       });
   loadKeyword.addActionListener(
       e -> {
         fileChooser.setCurrentDirectory(new File(keywords.getText()));
         int returnVal = fileChooser.showOpenDialog(panel1);
         if (returnVal == JFileChooser.APPROVE_OPTION) {
           File file = fileChooser.getSelectedFile();
           keywords.setText(file.getPath());
         }
       });
   search.addActionListener(
       e -> {
         isKeywordsEnabled = keywordsEnabled.getSelectedIndex() != 0;
         DatabaseCollection.clear();
         if (isKeywordsEnabled) {
           new KeywordParser(keywords.getText()).parse();
         }
         new DocumentParser(database.getText()).parse();
         Method method1 = Method.valueOf((String) MainForm.this.method.getSelectedItem());
         Document query1 = new Document(MainForm.this.query.getText(), "", false);
         showResults(method1, query1);
       });
   oznacz.addActionListener(
       e -> {
         for (Result result : results.getSelectedValuesList()) {
           result.setMarkedAsGood(!result.isMarkedAsGood());
         }
         results.repaint();
       });
   newQuestion.addActionListener(
       e -> {
         ResultModel model = (ResultModel) results.getModel();
         Document query1 = model.getQuery();
         calculateRelevance(
             model.getResultList(),
             query1,
             (Integer) alfa.getValue(),
             (Integer) beta.getValue(),
             (Integer) gamma.getValue());
         queryHelp.setText(query1.getQueryText());
         Method method1 = Method.valueOf((String) MainForm.this.method.getSelectedItem());
         showResults(method1, query1);
       });
 }
Exemple #3
0
 private double avg(Term term, List<Document> documents) {
   double count = 0;
   if (documents == null || documents.isEmpty()) {
     return 0;
   }
   for (Document document : documents) {
     count += document.getTermCount(term);
   }
   return count / documents.size();
 }
Exemple #4
0
 private void calculateRelevance(
     List<Result> resultList, Document query, double alfa, double beta, double gama) {
   List<Document> goodDocuments = new ArrayList<>();
   List<Document> badDocuments = new ArrayList<>();
   for (Result result : resultList) {
     if (result.isMarkedAsGood()) {
       goodDocuments.add(result.getDocument());
     } else {
       badDocuments.add(result.getDocument());
     }
   }
   for (Term term : DatabaseCollection.getTermMap().values()) {
     double relevance =
         alfa * query.getTermRelevance(term)
             + (avg(term, goodDocuments)) * beta
             - avg(term, badDocuments) * gama;
     query.setTermRelevance(term, relevance);
   }
 }
Exemple #5
0
  public String getListDocs() {
    StringBuilder sb = new StringBuilder();
    sb.append("<b>List of ");
    sb.append(controllerBean.getSearch().getFullname());
    sb.append("'s publications</b>:<br>");
    ArrayList<Document> listDocs = new ArrayList();
    listDocs.addAll(controllerBean.getSetDocs());
    Collections.sort(listDocs, new DocSortByYear());
    for (Document doc : listDocs) {
      sb.append(doc.getAuthorsToString());
      sb.append(" ");
      sb.append("(<b>").append(doc.getYear()).append("</b>).");
      sb.append(" \"").append(doc.getTitle()).append("\". ");
      sb.append("<i>").append(doc.getPublication_outlet()).append("</i>.");
      sb.append("<p></p>");
    }

    return sb.toString();
  }
Exemple #6
0
 private List<Result> getQuerySimilarity(Method method, Document query) {
   List<Result> resultList = new ArrayList<>();
   List<Result> list = new ArrayList<>();
   for (Document document : DatabaseCollection.getDocumentList()) {
     double similarity = document.similarity(query, method);
     if (similarity != -1) {
       list.add(new Result(document, similarity));
     }
   }
   list.stream()
       .sorted(
           (o1, o2) -> {
             double diff = o1.getSimilarity() - o2.getSimilarity();
             if (diff < 0) {
               return 1;
             } else if (diff > 0) {
               return -1;
             }
             return 0;
           })
       .limit(5)
       .forEach(resultList::add);
   return resultList;
 }
Exemple #7
0
 public int compare(Document d1, Document d2) {
   return -d1.getYear().compareTo(d2.getYear());
 }