2017-06-13 71 views
-1

我要用twitter标签进行感性分析,并且我正在为这个项目使用Java。如何编码Java以搜索特定的哈希标签并显示文本?用Java寻找Twitter标签

这是我已经试过:

public static void main(String[] args) throws TwitterException { 
    ConfigurationBuilder configurationBuider = new ConfigurationBuilder(); 
    configurationBuider.setDebugEnabled(true) 
      .setOAuthConsumerKey("") 
      .setOAuthConsumerSecret("") 
      .setOAuthAccessToken("") 
      .setOAuthAccessTokenSecret(""); 

    TwitterFactory tf=new TwitterFactory(configurationBuider.build()); 
    twitter4j.Twitter twitter=tf.getInstance(); 

    List<Status> status=twitter.getHomeTimeline(); 
    for(Status s:status){ 
     System.out.println(s.getUser().getName()+" "+s.getText()); 
    } 
} 

}

我所得到的仅仅是用户名和时间轴上的文字。 谢谢你的帮助。

回答

0

的问题是不是你想要做什么完全清楚,但这里是我的解释:

你要搜索最近的20个Twitter消息的主题标签上 时间轴特定井号。如果该帖子包含 #标签,则您希望显示发布该帖子的用户以及帖子的文字 。

下面是我认为这是一个工作示例。

public static void main(String[] args) throws TwitterException { 
ConfigurationBuilder configurationBuider = new ConfigurationBuilder(); 
configurationBuider.setDebugEnabled(true) 
     .setOAuthConsumerKey("") 
     .setOAuthConsumerSecret("") 
     .setOAuthAccessToken("") 
     .setOAuthAccessTokenSecret(""); 

TwitterFactory tf=new TwitterFactory(configurationBuider.build()); 
twitter4j.Twitter twitter=tf.getInstance(); 

// You can pull this in from user input, etc. 
String hashTagToSearchFor = "testme"; 

List<Status> status=twitter.getHomeTimeline(); 
for(Status s:status){ 
    HashtagEntity[] hashTags = s.getHashtagEntities(); 
    for (HashtagEntity hashtag : hashTags) { 
     if (hashtag.equals(hashTagToSearchFor)) { 
      System.out.println(s.getUser().getName() + ": " + s.getText()); 

      // Assuming all hashtags are unique... 
      continue; 
     } 
    } 
} 
} 

请让我知道如果我做了任何不正确的假设,我很乐意编辑我的答案进行调整。

+0

感谢的人。我试过你的代码,它什么也没有显示。代码运行成功,我把“运动”放在Hashtag中搜索,但没有使用#sport的注释出现。 –

+0

你有任何我们可以更轻松地交谈的社交应用吗? –

+0

我不幸。我要做的第一件事是打印出每个帖子的整个hashtagen列表,看看它们是什么,因为记住:twitter.getHomeTimeline()只返回20个帖子。您可以探索twitter4j javadoc以查看可以获取帖子的其他方法。 –

0

谢谢你的人我已经解决了这样Kylon泰纳

Query query = new Query("flood"); 
    QueryResult result = twitter.search(query); 
    for (Status status : result.getTweets()) { 
     System.out.println("@" + status.getUser().getScreenName() + " : " + status.getText() + " : " + status.getGeoLocation()); 
    }