Inheritance: AlchemyAPI.AlchemyAPI_BaseParams
Ejemplo n.º 1
0
        public string TextGetTargetedSentiment(string text, string target, AlchemyAPI_TargetedSentimentParams parameters)
        {
            CheckText(text);
            CheckText(target);

            parameters.setText(text);
            parameters.setTarget(target);

            return(POST("TextGetTargetedSentiment", "text", parameters));
        }
Ejemplo n.º 2
0
        public string URLGetTargetedSentiment(string url, string target, AlchemyAPI_TargetedSentimentParams parameters)
        {
            CheckURL(url);
            CheckText(target);

            parameters.setUrl(url);
            parameters.setTarget(target);

            return(GET("URLGetTargetedSentiment", "url", parameters));
        }
Ejemplo n.º 3
0
    public static void Main()
    {
        // Create an AlchemyAPI object.
        AlchemyAPI.AlchemyAPI alchemyObj = new AlchemyAPI.AlchemyAPI();

        // Load an API key from disk.
        alchemyObj.LoadAPIKey("api_key.txt");

        // Extract sentiment for a web URL.
        string xml = alchemyObj.URLGetTextSentiment("http://www.techcrunch.com/");
        Console.WriteLine (xml);

        // Extract sentiment from a text string.
        xml = alchemyObj.TextGetTextSentiment("Hello there, my name is Bob Jones.  I live in the United States of America.  Where do you live, Fred?");
        Console.WriteLine (xml);

        // Load a HTML document to analyze.
        StreamReader streamReader = new StreamReader("data/example.html");
        string htmlDoc = streamReader.ReadToEnd();
        streamReader.Close();

        // Extract sentiment from a HTML document.
        xml = alchemyObj.HTMLGetTextSentiment(htmlDoc, "http://www.test.com/");
        Console.WriteLine (xml);

        // Extract named entities with entity-targeted sentiment.
        AlchemyAPI_EntityParams entityParams = new AlchemyAPI_EntityParams();
        entityParams.setSentiment(true);
        xml = alchemyObj.TextGetRankedNamedEntities("Bryan Adams' genius is unsurpassed.", entityParams);
        Console.WriteLine (xml);

        // Extract keywords with keyword-targeted sentiment.
        AlchemyAPI_KeywordParams keywordParams = new AlchemyAPI_KeywordParams();
        keywordParams.setSentiment(true);
        xml = alchemyObj.TextGetRankedKeywords("Bryan Adams' genius is unsurpassed.", keywordParams);
        Console.WriteLine (xml);

        // Extract Targeted Sentiment
        AlchemyAPI_TargetedSentimentParams sentimentParams = new AlchemyAPI_TargetedSentimentParams();
        sentimentParams.setShowSourceText(true);
        xml = alchemyObj.TextGetTargetedSentiment("This car is terrible.", "car", sentimentParams);
        Console.WriteLine(xml);

        xml = alchemyObj.URLGetTargetedSentiment("http://techcrunch.com/2012/03/01/keen-on-anand-rajaraman-how-walmart-wants-to-leapfrog-over-amazon-tctv/", "Walmart",sentimentParams);
        Console.WriteLine(xml);

        xml = alchemyObj.HTMLGetTargetedSentiment(htmlDoc, "http://www.test.com/", "WujWuj", sentimentParams);
        Console.WriteLine(xml);
    }
Ejemplo n.º 4
0
        public string URLGetTargetedSentiment(string url, string target, AlchemyAPI_TargetedSentimentParams parameters)
        {
            CheckURL(url);
            CheckText(target);

            parameters.setUrl(url);
            parameters.setTarget(target);

            return GET("URLGetTargetedSentiment", "url", parameters);
        }
Ejemplo n.º 5
0
        public string TextGetTargetedSentiment(string text, string target, AlchemyAPI_TargetedSentimentParams parameters)
        {
            CheckText(text);
            CheckText(target);

            parameters.setText(text);
            parameters.setTarget(target);

            return POST("TextGetTargetedSentiment", "text", parameters);
        }
Ejemplo n.º 6
0
        public string HTMLGetTargetedSentiment(string html, string url, string target, AlchemyAPI_TargetedSentimentParams parameters)
        {
            CheckHTML(html, url);
            CheckText(target);

            parameters.setHtml(html);
            parameters.setUrl(url);
            parameters.setTarget(target);

            return POST("HTMLGetTargetedSentiment", "html", parameters);
        }
Ejemplo n.º 7
0
        public string HTMLGetTargetedSentiment(string html, string url, string target, AlchemyAPI_TargetedSentimentParams parameters)
        {
            CheckHTML(html, url);
            CheckText(target);

            parameters.setHtml(html);
            parameters.setUrl(url);
            parameters.setTarget(target);

            return(POST("HTMLGetTargetedSentiment", "html", parameters));
        }
Ejemplo n.º 8
0
        public void Execute(AnalysisExecutionContext context)
        {
            _context = context;

            if (context.Results.Count <= 0)
            {
                context.OnExecutionProgress("Alchemy", new AnalysisExecutionProgressEventArgs(AnalysisExecutionStatus.Canceled, 0, 0, 0));
                return;
            }

            AlchemyAPI.AlchemyAPI session = new AlchemyAPI.AlchemyAPI();
            session.SetAPIKey(context.Key);

            AlchemyAPI_TargetedSentimentParams parameters = new AlchemyAPI_TargetedSentimentParams();
            parameters.setOutputMode(AlchemyAPI_BaseParams.OutputMode.XML);

            int processed = 0;
            int failed = 0;
            foreach (KeyValuePair<string, ResultSet> document in context.Results)
            {
                try
                {
                    string strResult = string.Empty;
                    if (context.UseDebugMode)
                    {
                        TimeSpan time = TimeSpan.Zero;
                        strResult = BenchmarkHelper.Invoke(new InvokeBenchmarkHandler(delegate(object state)
                        {
                            return session.TextGetTextSentiment(document.Value.Source, parameters);
                        }), null, out time) as string;

                        Console.WriteLine("\tAlchemyAPI: Sentiment for the document {0} has been retreived. Execution time is: {1}", document.Key, time.TotalMilliseconds);
                    }
                    else
                        strResult = session.TextGetTextSentiment(document.Value.Source, parameters);

                    using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(strResult)))
                    {
                        XmlSerializer serializer = new XmlSerializer(typeof(AlchemySentimentResult));
                        AlchemySentimentResult result = (AlchemySentimentResult)serializer.Deserialize(stream);

                        processed++;
                        document.Value.AddOutput("Alchemy", result.SentimentDetails.Score, result.SentimentDetails.Type);

                        AnalysisExecutionProgressEventArgs ea = new AnalysisExecutionProgressEventArgs(AnalysisExecutionStatus.Processed, context.Results.Count, processed, failed);
                        context.OnExecutionProgress("Alchemy", ea);

                        if (ea.Cancel)
                            break;
                    }
                }
                catch (Exception ex)
                {
                    failed++;
                    document.Value.AddOutput("Alchemy", 0, "failed");
                    AnalysisExecutionProgressEventArgs ea = new AnalysisExecutionProgressEventArgs(AnalysisExecutionStatus.Failed, context.Results.Count, processed, failed);
                    ea.Reason = ex.Message;
                    context.OnExecutionProgress("Alchemy", ea);

                    if (ea.Cancel)
                        break;
                }
            }

            context.OnExecutionProgress("Alchemy", new AnalysisExecutionProgressEventArgs(AnalysisExecutionStatus.Success, context.Results.Count, processed, failed));
        }