Monday, October 27, 2014

Using Stanford NLP to run a sentiment analysis with F#

Stanford NLP is a great tool for text analysis and Sergey Tihon did a great job demonstrating how it can be called from .NET code with C# and F#.

Purpose of this post is to show how StanfordNLP sentiment analysis can be called from F# application. Code used in this example provides sentiment value - from very negative to very positive - for all sentences of the specified text.


    -Nuget Stanford.NLP.CoreNLP package needs to be installed (this code works with  
    -Java binaries should be downloaded from and unzipped. After that you need to extract content of stanford-corenlp-3.4-
models.jar(it is part of the zip file)to some directory.  

Source code:

    F# code is elegant as usual :)

    To call this method you can use following code, where models location should be set to modelsDir variable:



  1. With public sentiment, nothing can fail. Without it, nothing can succeed.
    See the link below for more info.


  2. Hi, I was testing this and I observed that for each iteration with the same text time is getting increased by 3 to 4 seconds.
    Below is our code :

    let analyzer = makeSentimentAnalyzer "ModelDirectoryPath"
    let result =
    |> x -> analyzer someText)

    and output is :

    iteration = 1 and its Time : 00:00:04.7943076
    iteration = 2 and its Time : 00:00:07.8334975
    iteration = 3 and its Time : 00:00:11.0907054
    iteration = 4 and its Time : 00:00:14.3769231
    iteration = 5 and its Time : 00:00:17.7311399
    iteration = 6 and its Time : 00:00:20.9423484
    iteration = 7 and its Time : 00:00:24.3025585
    iteration = 8 and its Time : 00:00:27.5257557
    iteration = 9 and its Time : 00:00:30.9089676
    iteration = 10 and its Time : 00:00:34.1181736

    Any suggestions ?

  3. problem got resolved we were using older version now we are using 12 December library.