干净的数据推文

时间:2016-03-22 14:01:57

标签: java twitter

为什么在运行此功能时,正在通过不再出现的情绪值来清除推文。如果未调用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;
    }
}

1 个答案:

答案 0 :(得分:1)

cleanData返回空ArrayList。尝试将tweet添加到newTweets

我强烈建议您至少编写一些基本的单元测试。即使是对cleanData最基本的测试也会遇到这种情况。