为什么在运行此功能时,正在通过不再出现的情绪值来清除推文。如果未调用cleanData方法,则会显示情绪值。有谁知道这是否是由于正在使用和导入的斯坦福图书馆?
public class WhatToThink {
public static void main(String[] args) {
String topic = "Brussels";
ArrayList<String> tweets = TweetManager.getTweets(topic);
NLP.init();
tweets = cleanData(tweets);
for (String tweet : tweets) {
tweets = cleanData(tweets);
System.out.println(tweet + " : " + NLP.findSentiment(tweet));
}
}
public static ArrayList<String> cleanData(ArrayList<String> tweets) {
ArrayList<String> newTweets = new ArrayList<>();
Iterator itr = tweets.iterator();
while (itr.hasNext()) {
String tweet = itr.next().toString();
//convert tweet to lower case
tweet = tweet.toLowerCase();
//remove urls
tweet = tweet.replaceAll("((www\\.[^\\s]+)|(https?://[^\\s]+))", "URL");
//remove user names
tweet = tweet.replaceAll("@[^\\s]+", "ATUSER");
//remove # from hash tag
tweet = tweet.replaceAll("#", "");
//remove punctuation
tweet = tweet.replaceAll("\\p{Punct}+", "");
System.out.println(tweet);
}
return newTweets;
}
}
答案 0 :(得分:1)
cleanData
返回空ArrayList
。尝试将tweet
添加到newTweets
。
我强烈建议您至少编写一些基本的单元测试。即使是对cleanData最基本的测试也会遇到这种情况。