find hot named entities using stanford ner
[pnews.git] / war / src / main / java / pnews / servlet / HTML.java
index a9ad838..89ce7c5 100644 (file)
@@ -1,13 +1,17 @@
 package pnews.servlet;
 
+import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import com.rometools.rome.io.FeedException;
+
 import pnews.Article;
 import pnews.Category;
+import pnews.EntityStat;
 import pnews.Language;
 
 public class HTML {
@@ -101,10 +105,11 @@ public class HTML {
                buf.append("</nav>\n");
        }
        
-       public static String toHTML(List<Article> articles, Category catActive, Config cfg) {
+       public static String toHTML(List<Article> articles, Category catActive, Config cfg, ArticleProvider provider) {
                StringBuffer buf;
                int i;
                Category[] cats;
+               List<EntityStat> entities;
                
                buf = new StringBuffer();
                buf.append("<!DOCTYPE html>\n");
@@ -122,6 +127,27 @@ public class HTML {
                
                appendMenu(buf, catActive, cfg);
                
+               try {
+                       entities = provider.getEntityStats(catActive);
+
+                       if (entities.size() > 0) {
+                               buf.append("Hot topics: ");
+                               buf.append("<ul>");
+                               i = 0;
+                               for (EntityStat s: entities) {
+                                       buf.append("<li>");
+                                       buf.append(s.getEntity());
+                                       buf.append("</li>");
+                                       i++;
+                                       if (i > 10)
+                                               break;
+                               }                               
+                               buf.append("</ul>");
+                       }
+                } catch (IllegalArgumentException | FeedException | IOException e2) {
+                        LOG.log(Level.SEVERE, "Failed to get entities", e2);
+                }
+               
                i = 0;
                for (Article e: articles) {
                        try {