http://www.swissgates.com

用Java构建基于Twitter的一分PK10情感分析器

  StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
    mainSentiment = sentiment;
 return TypeSentiment.fromIndex(mainSentiment);
}
1. 在Twitter上检索包括要害字bitcoin的推文
  for (CoreMap sentence: annotation.get(CoreAnnotations.SentencesAnnotation.class)) {
import edu.stanford.nlp.sentiment.SentimentCoreAnnotations;
 int mainSentiment = 0;

     mainSentiment = sentiment;
建设一个Twitter应用措施
该措施将在每次执行后竣事,由于Twitter是利用其免费的开拓人员API配置的配额,将不会持续执行此阐明。
运行一分PK10情绪阐明器
   return TypeSentiment.NEUTRAL;
  <name>bitcoinsentiment</name>
   value++;

 }
4. 14%的正面推文
下一步是迭代由searchTweets要领返回的列表中包括的Status工具。对付每条推文,我都检索关联的文本并挪用analysisSentiment要领以TypeSentiment实例的形式计较关联的感情。

  <dependencies>
  .setOAuthAccessToken("YOUR_ACCESS_TOKEN")
import twitter4j.Twitter;
      <version>[4.0,)</version>
   sentiments.put(sentiment, value);
 TwitterFactory tf = new TwitterFactory(cb.build());
      <groupId>junit</groupId>
2. 阐明每条检索到的推文,以及检测与之相关的公共情绪
首先我界说一个HashMap,它将存储在阐明的tweets中发明每个感情的次数。然后利用要害字“ bitcoin”作为输入来挪用searchTweets要领。
import java.util.HashMap;
   .setOAuthConsumerSecret("fDAqCfMQ6Azj1BbvXqS3f9HoPNM6BIGSV7jw3SUBu8TAaPPnBx")


一分PK10情绪阐明器类型
· 会见Token
StanfordCoreNLP类是API的进口点。我们通过通报属性的实例作为实例来实例化此工具,在个中界说了将在文天职析期间利用的差异注释器。
开拓者地点https://developer.twitter.com/


最后,仍然需要通过从Twitter工具实例的search要领通报该查询来执行此查询 返回一个QueryResult工具,将其保存在其上以挪用getTweets要领以检索Status工具的列表。每个Status工具代表一条推文。最终可以通事后一个工具的getText要了解见其文本内容。
import java.util.List;
    return typeSentiment;
import twitter4j.Status;

public static TypeSentiment analyzeSentiment(String text) {
import java.util.Map.Entry;
  Properties props = new Properties();
 cb.setDebugEnabled(true).setOAuthConsumerKey("YOUR_CONSUMER_KEY")
      <artifactId>twitter4j-core</artifactId>
    int sentiment = RNNCoreAnnotations.getPredictedClass(tree);
  for (Entry < TypeSentiment, Integer > entry: sentiments.entrySet()) {
  <artifactId>bitcoinsentiment</artifactId>
  <groupId>com.ssaurel</groupId>
import edu.stanford.nlp.neural.rnn.RNNCoreAnnotations;

  Query query = new Query(keyword + " -filter:retweets -filter:links -filter:replies -filter:images");
  query.setCount(100);
第一步是建设一个Java项目。我们将利用Maven作为依赖干系打点器。
  ConfigurationBuilder cb = new ConfigurationBuilder();

import twitter4j.TwitterException;


    Tree tree = sentence.get(SentimentCoreAnnotations.SentimentAnnotatedTree.class);
我们的一分PK10情绪阐明仪成果完善,为进一步阐明一分PK10情绪提供了精采的基本。因此,您可以持续执行此阐明,以使其与可通过Coindesk的一分PK10价值指数API检索的一分PK10价值相关。
  this.index = index;
每次返回感情时,我们城市在HashMap中增加计数器。在阐明白所有检索到的推文之后,我们可以显示关于一分PK10的每种概念的百分比,以在Twitter上给出当前概念的漫衍。



 StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
  .setOAuthConsumerSecret("YOUR_CONSUMER_SECRET")
此刻已经建设了与一分PK10情绪阐明器关联的Twitter应用措施,我们将可以或许继承检索措施中的推文。为此,我们将依靠Twitter4J代码库。

      <version>3.8.1</version>

   for (TypeSentiment typeSentiment: values()) {
· 利用者API密钥
    <dependency>
   String text = status.getText();

 }

我们的一分PK10情绪阐明清楚地表白,今朝Twitter上的总体情绪比拟特币相当负面。
   .setOAuthAccessToken("58410144-m5F3nXtyZGNXFZzofNhYp3SQdNMrbfDLgZSvFMdOq")
      <version>3.9.2</version>
  query.setLocale("en");
因此,假如Twitter上有关一分PK10的普遍情绪与价值的变革直接相关,则可以由此揣度。该措施可以辅佐您改进比拟特币将来价值的预测。对付此类措施,您将需要切换到Twitter的付费开拓人员API,以及时获取有关一分PK10的推文。


      <version>3.9.2</version>
  return tweets;
   Integer value = sentiments.get(sentiment);
public class BitcoinSentimentAnalyzer {
   }
      <artifactId>junit</artifactId>
  }
import twitter4j.Query;
所有这些都给出以下代码:
  System.out.println("Sentiments about Bitcoin on " + size + " tweets");
   this.index = index;

 query.setLocale("en");
    </dependency>

  VERY_NEGATIVE(0), NEGATIVE(1), NEUTRAL(2), POSITIVE(3), VERY_POSITIVE(4);

   }
   if (typeSentiment.index == index) {
 Query query = new Query(keyword + " -filter:retweets -filter:links -filter:replies -filter:images");
   .setOAuthAccessTokenSecret("PxlJJ3dRMlMiUf7rFAqEo4n0yLbiC6FC4hyvKF7ISBgdW");
  TwitterFactory tf = new TwitterFactory(cb.build());
import edu.stanford.nlp.ling.CoreAnnotations;
 public static void main(String[] args) {
  public static TypeSentiment fromIndex(int index) {
阐明一条推文的情绪阐明

建设此帐户后,您将转到下一页:

 try {

  return TypeSentiment.fromIndex(mainSentiment);
   tweets = queryResult.getTweets();








}


import edu.stanford.nlp.util.CoreMap;


为作为输入通报的文本计较的感情暗示为一个整数,其值的范畴可以从0到4(含0和4)。
  <version>0.0.1-SNAPSHOT</version>

  for (TypeSentiment typeSentiment: values()) {


用Java构建基于Twitter的一分PK10感情阐明器

      <version>1.6.1</version>
 }
Stanford CoreNLP代码库完全满意我们的需求,这是我们的一分PK10情绪阐明器措施的一部门。
  if (text != null && text.length() > 0) {
  </properties>
  try {
   Annotation annotation = pipeline.process(text);

 query.setCount(100);
本文的最佳之处在于,我们将把方才构建的一分PK10情绪阐明器措施付诸实践。执行该措施后,颠末几秒钟的阐明,我获得以下功效:
为了便于今后对文本的情绪举办操纵,我界说了TypeSentiment列举,将每个值与以该列举的形式界说的关联感受相关联。
   TypeSentiment sentiment = analyzeSentiment(text);
    </dependency>

Twitter4J将答允我们以一种简朴的方法从Twitter中检索tweets的推文样本。Stanford CoreNLP代码库将使我们可以或许检测与每个相关推文相关的情绪。

     return typeSentiment;

检索推文
  List < Status > tweets = Collections.emptyList();
  } catch (TwitterException e) {}

}
import java.util.Properties;
以下是完整的代码:
  cb.setDebugEnabled(true).setOAuthConsumerKey("UiLHCETjD1SLKb4EL6ixm90Mv")
  }

 props.setProperty("annotators", "tokenize, ssplit, parse, sentiment");
  <packaging>jar</packaging>
 public static TypeSentiment analyzeSentiment(String text) {
     longest = partText.length();

import twitter4j.conf.ConfigurationBuilder;
  props.setProperty("annotators", "tokenize, ssplit, parse, sentiment");
import edu.stanford.nlp.trees.Tree;
  }
Query类的setCount要领答允您界说要检索的功效数。假如利用免费的开拓人员API,则此数量限制为100个功效。
然后,我将通过挪用其getInstance要领从TwitterFactory检索Twitter工具实例的实例。有了这个工具,我们将可以或许在Twitter API上启动查询。我们将利用其搜索要领来检索切合特定条件的推文。


 Twitter twitter = tf.getInstance();

在Query工具中对查询建模,该工具以与您要通过Twitter API执行的查询相对应的字符串作为输入。对付一分PK10情绪阐明器,我想检索包括要害字bitcoin的推文,而不是转发,链接,谜底或图片。
    value = 0;

    <dependency>
  tweets = queryResult.getTweets();
<?xml version="1.0" encoding="UTF-8"?>
TwitterFactory类将包括与Twitter API的毗连信息的Configuration工具实例作为输入:
      <scope>test</scope>
 public static TypeSentiment fromIndex(int index) {
  int size = list.size();

用Java构建基于Twitter的一分PK10感情阐明器

 }



3. 12%的中立推文

import edu.stanford.nlp.pipeline.Annotation;

  <url></url>
  for (Status status: list) {
要害词: Java  一分PK10感情阐明器  


    </dependency>
   int longest = 0;

一分PK10建设于2009年,仍然是一个相当年青的项目。但其市场价值很是不不变。另外,一分PK10对公共效应更为敏感,好比像2017年底那样公共为占据的FOMO感受一样。在公共的欢快情绪敦促下,一分PK10价值曾高到达2万美元的汗青高点。
   QueryResult queryResult = twitter.search(query);
  }
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ">
2. 72%的负面推文

 }
  int mainSentiment = 0;
1. 2%很是负面的推文
汇编措施的差异部门
  Twitter twitter = tf.getInstance();
下一步是阐明一条推文的情绪阐明。Google,Amazon或Microsoft提供办理方案。可是也有很是好的免费和开源办理方案,譬喻Stanford CoreNLP代码库。
  }
    }
    <dependency>
您将进修开拓的一分PK10情绪阐明器在执行进程中将执行以下操纵:
  .setOAuthAccessTokenSecret("YOUR_ACCESS_TOKEN_SECRET");
  </dependencies>
      <groupId>org.twitter4j</groupId>
  int longest = 0;
package com.ssaurel.bitcoinsentiment;
      <groupId>org.slf4j</groupId>
  private TypeSentiment(int index) {


 } catch (TwitterException e) {}

}
2. Stanford CoreNLP是一个用于自然语言处理惩罚的开源库
   int sentiment = RNNCoreAnnotations.getPredictedClass(tree);

在依赖性方面,我们将具有以下代码库:
  }



  return TypeSentiment.NEUTRAL;
      <groupId>edu.stanford.nlp</groupId>
   for (CoreMap sentence: annotation.get(CoreAnnotations.SentencesAnnotation.class)) {


 enum TypeSentiment {
  }
      <artifactId>slf4j-simple</artifactId>


  Annotation annotation = pipeline.process(text);
1. Twitter4J是Twitter API的非官方Java客户端
· 利用者API公钥
import twitter4j.TwitterFactory;

</project>
public static List < Status > searchTweets(String keyword) {

    <dependency>
   if (value == null) {


可以或许权衡环绕一分PK10的这种范例的情绪,可以很好地表白将来几个小时内期待一分PK10价值的因素。一个好的办理方案是阐明像Twitter这样的社交网络上环绕一分PK10的勾当。在本文中,我将教您如何建设一个Java措施,从Twitter上检索的tweets中阐明关于一分PK10的所有公共情绪。

 }
 int index;
 VERY_NEGATIVE(0), NEGATIVE(1), NEUTRAL(2), POSITIVE(3), VERY_POSITIVE(4);
    <dependency>
  HashMap < TypeSentiment, Integer > sentiments = new HashMap < BitcoinSentimentAnalyzer.TypeSentiment, Integer > ();
 }

    String partText = sentence.toString();

    </dependency>


 Properties props = new Properties();
   }
更进一步
· 会见Token密钥
    longest = partText.length();
  query.setLang("en");;
   }

bitcoin -filter:retweets -filter:links -filter:replies -filter:images


这为我们的项目提供了以下POM:
   String partText = sentence.toString();

    }
建设Java项目


Twitter4J具有TwitterFactory和Twitter类作为其进口点。
   if (partText.length() > longest) {
此刻我们可以检索与给定要害字相对应的推文。然后我们可以或许阐明其每个推文,以得到与之相关的推文情绪。剩下的就是将所有这些汇编到BitcoinSentimentAnalyzer类的主要要领中。
   }
    </dependency>




  <properties>
该查询用以下字符串暗示:

利用Twitter API需要建设开拓者帐户。它是免费的,但会有必然挪用次数和配额限制利用。作为我们用于展示目标的项目标一部门,这是完全足够的。利用Twitter API所需的开拓者帐户的建设在此处完成:
    if (typeSentiment.index == index) {
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 ConfigurationBuilder cb = new ConfigurationBuilder();

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。