aboutsummaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorzkwip2015-06-09 18:25:20 +0200
committerzkwip2015-06-09 18:25:31 +0200
commit4fcfb60fe79640aa1e0717da1400562bb35c3c4a (patch)
tree22a9531732e14a431c031c98ccfcc585bff914f0 /app/src
parentMerge branch 'master' of github:camilstaps/RSSin (diff)
Summary fix
and changed a default string
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/org/rssin/summaries/BablukiAPI.java46
1 files changed, 41 insertions, 5 deletions
diff --git a/app/src/main/java/org/rssin/summaries/BablukiAPI.java b/app/src/main/java/org/rssin/summaries/BablukiAPI.java
index 782b54a..8d5a1af 100644
--- a/app/src/main/java/org/rssin/summaries/BablukiAPI.java
+++ b/app/src/main/java/org/rssin/summaries/BablukiAPI.java
@@ -5,10 +5,15 @@
*/
package org.rssin.summaries;
+import android.graphics.drawable.Drawable;
+import android.text.Editable;
import android.text.Html;
import java.util.ArrayList;
+import java.util.LinkedList;
+
import org.rssin.rss.FeedItem;
+import org.xml.sax.XMLReader;
/**
* Java/SummaryAPI implementation of the Babluki summary tool.
@@ -44,6 +49,8 @@ public class BablukiAPI implements SummaryAPIInterface{
String desc = f.getDescription();
if (stripHtml)
desc = Html.fromHtml(desc).toString();
+
+
String title = f.getTitle();
String t = getSumText(desc,title);
Summary s = new Summary(t);
@@ -69,6 +76,9 @@ public class BablukiAPI implements SummaryAPIInterface{
*/
private String getSumText(String content, String title)
{
+ if (content.isEmpty())
+ android.util.Log.d("No text to summarize", title);
+
SentenceScore[] ranks = getSentenceRanks(content);
String[] paragraphs = splitIntoParagraphs(content);
@@ -86,6 +96,8 @@ public class BablukiAPI implements SummaryAPIInterface{
sents.add(sentence);
}
}
+
+ int senc = sents.size();
//reduce if neccesairy
@@ -107,7 +119,16 @@ public class BablukiAPI implements SummaryAPIInterface{
o += sep;
}
}
-
+
+ if (o.isEmpty()) {
+ if (senc == 0)
+ android.util.Log.d("Empty summary", "No sentences could be found: " + title);
+ else if (sents.size() == 0)
+ android.util.Log.d("Empty summary", "None of the found sentences fits the summary limit: " + title);
+ else
+ android.util.Log.d("Empty summary", "all sentences are empty: " + title);
+ return title;
+ }
return o;
}
@@ -163,21 +184,37 @@ public class BablukiAPI implements SummaryAPIInterface{
private String[] splitIntoSentences(String content)
{
+ //ik word gek
+ String ends = "qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
+ //String ends = "a";
content = content.replaceAll("\n", " ");
String[] ss = content.split("(\\.|!) +");
- for(String s: ss)
- s=s.trim();
+ for(int i=0; i<ss.length; i++) {
+ String s = ss[i].trim();
+ while (s.length() > 0) {
+ if (ends.indexOf(s.charAt(s.length()-1)) < 0)
+ s = s.substring(0, s.length() - 1);
+ else
+ break;
+ }
+ ss[i] = s;
+ }
return ss;
}
private String[] splitIntoParagraphs(String content)
{
- return content.split("\n *\n");
+ String[] ss = content.split("\n *\n");
+ if (ss.length > 1) return ss;
+ return content.split("\n");
}
private double sentenceIntersection(String sent1, String sent2)
{
+ sent1 = sent1.trim();
+ sent2 = sent2.trim();
+
String[] s1 = sent1.split(" ");
String[] s2 = sent2.split(" ");
@@ -200,7 +237,6 @@ public class BablukiAPI implements SummaryAPIInterface{
}
return ints;
-
}
private String formatSentence(String sentence)