<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Pahul Preet Singh Kohli</title>
    <description>Personal Technical Blog on Data Science, Artificial Intelligence, Machine Learning, Deep Learning, Business and Digital Marketing.</description>
    <link>https://pahulpreet86.github.io/</link>
    <atom:link href="https://pahulpreet86.github.io/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Thu, 13 Aug 2026 12:27:52 +0000</pubDate>
    <lastBuildDate>Thu, 13 Aug 2026 12:27:52 +0000</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      <item>
        <title>Overview of HEART Framework</title>
        <description>&lt;p&gt;The &lt;strong&gt;HEART Framework&lt;/strong&gt; is designed by Google to focus on a few primary user metrics and then quantify those metrics to evaluate them critically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Need for the Framework&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Evaluation of customer engagement on a wide scale becomes a non-rival challenge as more products and services are deployed on the web.&lt;/li&gt;
  &lt;li&gt;User-centered metrics for web applications are necessary to track the progress and direct the product decisions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;heart-framework&quot;&gt;HEART Framework&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;H - Happiness&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Describes metrics attitudinal in nature.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Relate to subjective aspect of user experience such as&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;User Satisfaction&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Visual Appeal&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Likelihood to Recommend&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Perceived Ease of Use&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;E - Engagement&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Describes the level of Engagement with the product / feature.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Metrics refers to&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;Frequency&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Intensity&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Depth of Interaction (over period of time)&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Generally reported as an average, ratios or percentages.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;A - Adoption&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Describe the use of product / feature by the new user during a period of time.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Definition of use can change based on the nature of the goals, such as&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;Visiting the feature page&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Completion of a specific task&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;R - Retention&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Describe the use of product / feature by the users of a given period still present in some later period.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Can be measured over different periods of time such as&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;Week to Week&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Monthly&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;90 Day Period&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;T - Task Success&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Describe traditional metrics of user experience such as efficiency, effectiveness, and error rate.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;If an optimal path exists for a particular task, it is possible to measure how closely users follow it.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;goals---signals---metrics-process&quot;&gt;Goals - Signals - Metrics Process&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Goals&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Articulating the goals of the product / feature.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Every user centered metric is attached to the goal and can be used to track the progress for the same.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;This step includes:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;Identify goals of product / feature.&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Identify what users need to accomplish.&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;What redesign is trying to achieve.&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Use of HEART Framework for articulation.&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Signals&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Identifying signals that indicate the success of the goals.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Translate the success / failure of goals in terms of user behaviour or attitude, and identify:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;Attitudinal / Behaviour signals.&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Signals that are sensitive and specific to the goals.&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Metrics&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Building specific metrics to track on the dashboard.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Translate signals into metrics for tracking over time, and ensuring:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;Use of stable metrics over time such as averages, ratios, and percentages&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Accuracy of metrics based on application / web logs.&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Additional metrics than the standard set for allowing products comparison with others such as competitors or within products.&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;reference&quot;&gt;Reference&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://research.google/pubs/pub36299/&quot;&gt;Measuring the User Experience on a Large Scale: User-Centered Metrics for Web Applications - Google Research Publications&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Thu, 20 May 2021 00:00:00 +0000</pubDate>
        <link>https://pahulpreet86.github.io/overview-of-heart-framework/</link>
        <guid isPermaLink="true">https://pahulpreet86.github.io/overview-of-heart-framework/</guid>
        
        
        <category>HEART Framework</category>
        
        <category>Goals</category>
        
        <category>SIgnal</category>
        
        <category>Metrics</category>
        
        <category>UX Design</category>
        
        <category>Product Management</category>
        
        <category>Product Strategies</category>
        
        <category>Web Analytics</category>
        
        <category>Web Applications</category>
        
      </item>
    
      <item>
        <title>Systematised Steps for the Chatbot Development</title>
        <description>&lt;p&gt;&lt;strong&gt;Chatbots&lt;/strong&gt; are conversational tools that automate repetitive conversation tasks. They use messaging apps to mimic a natural language / dialogues for a conversation with a person.&lt;/p&gt;

&lt;p&gt;There are several tools available to build chatbots that can be easily deployed on websites. The best chatbot platform depends on how you intend to use it and what features are required for it.&lt;/p&gt;

&lt;p&gt;However, like any software project, chatbot go through a series of standard steps that guide the development of the bot and help to improve after the release. These 6 systematised steps are as follows:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Define the objective for the chatbot&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The first step is to define what we want the chatbot to do.&lt;/li&gt;
  &lt;li&gt;Some of the commonly defined objectives for the bot are:
    &lt;ul&gt;
      &lt;li&gt;Create leads&lt;/li&gt;
      &lt;li&gt;Drive sales&lt;/li&gt;
      &lt;li&gt;Improve online brand presence&lt;/li&gt;
      &lt;li&gt;Fill out the survey’s&lt;/li&gt;
      &lt;li&gt;Direct Users to the brand’s website&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Understand the target user and brand personality&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;In this step, we try to understand the psychology of target user on the basis of the chatbot’s objective and the brand for which we are trying to build the bot.&lt;/li&gt;
  &lt;li&gt;This is crucial to make customer experience with the bot always inline with the brand’s communication style.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Design the bot storyboard and dialogues architecture&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Once, we have an understanding of the user and the brand tone, we can then design the user storyboard and dialogues architecture which to describe:
    &lt;ul&gt;
      &lt;li&gt;How the user interacts with the bot&lt;/li&gt;
      &lt;li&gt;How the bot would respond to the user&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Select the platform and develop bot&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Based on the defined bot’s objective,  dialogues architecture design,  and user audience base platform (where the brand’s audience is active), we then select the best chatbot platform for the brand and start the bot development.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Testing and Deployment&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;After the bot is developed, we need to test the bot for every storyboard, dialogues structure, and test cases to ensure bot consistency throughout the user interactions.&lt;/li&gt;
  &lt;li&gt;This is followed by deployment/integration of the bot with brand website, social media handles, and mobile applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6. Collect Data and Revisions&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;After the deployment, we continuously collect and analyse user interaction data to drive the improvements in the bot’s flow, interaction dialogues structures and additional features.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Mon, 22 Mar 2021 00:00:00 +0000</pubDate>
        <link>https://pahulpreet86.github.io/systematised-steps-chatbot-development/</link>
        <guid isPermaLink="true">https://pahulpreet86.github.io/systematised-steps-chatbot-development/</guid>
        
        
        <category>Chatbot</category>
        
        <category>Chatbot Development</category>
        
        <category>Marketing</category>
        
        <category>Branding</category>
        
        <category>Digital Strategy</category>
        
        <category>Product Management</category>
        
      </item>
    
      <item>
        <title>What is Proof of Concept (POC)?</title>
        <description>&lt;p&gt;&lt;strong&gt;Proof of Principle / Proof of Concept (POC)&lt;/strong&gt;: is an approach widely used in companies, before going forward with development, to determine feasibility of a concept for project or potential product.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Proof of Concept (POC) template&lt;/strong&gt; is used to evaluate the business value of an idea or concept presented, recognise potential challenges, gain insights from peers, and provide stakeholders with demonstration of the idea and rationalization to move forward.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Proof of Concept Template&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Product Rationale&lt;/strong&gt; - Involves specifying the target market, the customers’ pain points and the requirement of the product that can alleviate them.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Solution Ideation&lt;/strong&gt; - Involves conceptualising the right solution  for addressing the customers’ pain points, which are both technologically feasible and within assigned business resources to expend.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Prototype Design &amp;amp; Test&lt;/strong&gt; - Creation of prototype based on the finalised requirements, features, and feasible solution.This also includes continuous testing of the solution along implementation to make sure it really addresses the pain points shared by the customers.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Document Results and Feedback&lt;/strong&gt; - The prototype is tested by the sample community of the target market and their experience, responses and other important information for the product are recorded. This feedback helps to verify the usability and feasibility of the product and suggest any possible changes to the proposed solution.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;POC Presentation&lt;/strong&gt; - Involves creation of presentation of the tested and improved product based on feedback for the stakeholders. The presentation covers the pain points that the product solves, features that address those problems, and technologies integrated to demonstrate the solution.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Mon, 25 Jan 2021 00:00:00 +0000</pubDate>
        <link>https://pahulpreet86.github.io/what-is-proof-of-concept/</link>
        <guid isPermaLink="true">https://pahulpreet86.github.io/what-is-proof-of-concept/</guid>
        
        
        <category>Proof of Concept</category>
        
        <category>Proof of Principle</category>
        
        <category>POC</category>
        
        <category>Product Management</category>
        
      </item>
    
      <item>
        <title>Introduction to Graph Database</title>
        <description>&lt;p&gt;Graph Database are increasingly being adopted in various industries, such as healthcare, retail, financial services, given their ability to represent data from the real world and help to analyse various data relationships.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Graph Database&lt;/strong&gt; is a NoSQL database which uses nodes to store data entities, and edges to store relationships between the entities.&lt;/p&gt;

&lt;h2 id=&quot;types-of-graph-databases&quot;&gt;Types of Graph Databases&lt;/h2&gt;

&lt;h3 id=&quot;true-graph-database--property-graphs&quot;&gt;True Graph Database / Property Graphs&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Support property graphs in which the properties may be assigned to either entities or their relationships, or both.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;They support index free adjacency, we can traverse a graph without needing an index.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://lh5.googleusercontent.com/rN1n3-Zj_pDKrzOzFuWMwUrP3NgaGqvE_tNJWb0Hz3yIXW2TRhuVOKIM1605nwBPZYQyqMiAB0zzyNZOfJzYBbrtr1vh2NbQhOUE2Wp3d9b62rzThifn3AAUBVVU5ZUT6xQPfyXD&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;In property graphs&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;Nodes&lt;/strong&gt;&lt;/p&gt;

        &lt;ul&gt;
          &lt;li&gt;
            &lt;p&gt;Represents entities / objects in the graph.&lt;/p&gt;
          &lt;/li&gt;
          &lt;li&gt;
            &lt;p&gt;Can contain properties (i.e., key-value pairs) and be labeled with one or more labels.&lt;/p&gt;
          &lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;Relationships&lt;/strong&gt;&lt;/p&gt;

        &lt;ul&gt;
          &lt;li&gt;
            &lt;p&gt;Represents the named relationships between different entities.&lt;/p&gt;
          &lt;/li&gt;
          &lt;li&gt;
            &lt;p&gt;Can contain properties (i.e., key-value pairs) and are directional (definite start and end node).&lt;/p&gt;
          &lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;True Graph Database / Property Graphs based database services:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://neo4j.com/&quot;&gt;Neo4j&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://aws.amazon.com/neptune/&quot;&gt;AWS Neptune&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;triple-stores--rdf-resource-description-framework-database&quot;&gt;Triple Stores / RDF (Resource Description Framework) database&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Stores data in a format known as a triple of subject-predicate-object data structure.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Data is logically linked in Triple Stores.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://lh5.googleusercontent.com/m4ymdIyFModi1-oO_ixqfgTo4nS5wLElzFs9bLlGqDIurcjGoxNgNQpg6--ZJ4Gl6q5X7N3aSMAjb8TQZNd2JjI7EO-VKi_dVMXNGUogpF2L6Gc0VxEPLuM_KeGrU2tY6GplkBsd&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;They don’t support index free adjacency.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Triple Stores / RDF (Resource Description Framework) based database services:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://franz.com/agraph/allegrograph/&quot;&gt;AllegroGraph&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;http://graphdb.ontotext.com/graphdb/&quot;&gt;GraphDB&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;hypergraph-database&quot;&gt;Hypergraph Database&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Useful for modelling many to many relationships.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;In this type of graph based database, the relationship is called as Hyperedge which allows any number of nodes at either end of a relationship.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://lh3.googleusercontent.com/mGTY3hCzvxC6q41Xwm_L0d15aGnPVWOK0TyFyj9wWKcjWacZmkOr8bGycgZirspjoW0pSAE-JHy7BHgvwKlW-Y1B4CdjckhIzoGeddf9obud7eKmlWhyaFkTB_VUDxvhr1vO4Rm6&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Hypergraphs are more generalizable and are multidimensional.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Property Graph and Hypergraph Graph are isomorphic, that is Property Graph can be represented by Hypergraph but the reverse isn’t possible.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Hypergraphs based database services:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.hypergraphdb.org/&quot;&gt;HyperGraphDB&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;advantages-of-graph-databases&quot;&gt;Advantages of Graph Databases&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The query speed for graph databases depends only on the number of concrete relationships and not on the total amount of data in the database.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The graph databases are easily able to represent real world data relationships and hierarchies.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The graph database representation is flexible and follows agile structures. The data entities definitions and the relationship definitions can be altered dynamically.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;disadvantages-of-graph-databases&quot;&gt;Disadvantages of Graph Databases&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Each graph database provider has specified a specific syntax or language for updates and queries. Therefore, there is no standard query language that works for every graph database.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Difficult to scale,as graph database are designed as a single-tier architecture.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;references&quot;&gt;References&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.itworldcanada.com/blog/a-quick-primer-on-graph-databases/434215&quot;&gt;https://www.itworldcanada.com/blog/a-quick-primer-on-graph-databases/434215&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.bloorresearch.com/technology/graph-databases/&quot;&gt;https://www.bloorresearch.com/technology/graph-databases/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.eweek.com/database/why-experts-see-graph-databases-headed-to-mainstream-use&quot;&gt;https://www.eweek.com/database/why-experts-see-graph-databases-headed-to-mainstream-use&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://whatis.techtarget.com/definition/graph-database&quot;&gt;https://whatis.techtarget.com/definition/graph-database&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://neo4j.com/blog/other-graph-database-technologies/&quot;&gt;https://neo4j.com/blog/other-graph-database-technologies/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://towardsdatascience.com/graph-databases-whats-the-big-deal-ec310b1bc0ed&quot;&gt;https://towardsdatascience.com/graph-databases-whats-the-big-deal-ec310b1bc0ed&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://simplea.com/Articles/what-is-a-graph-database&quot;&gt;https://simplea.com/Articles/what-is-a-graph-database&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://neo4j.com/use-cases/&quot;&gt;https://neo4j.com/use-cases/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sat, 03 Oct 2020 00:00:00 +0000</pubDate>
        <link>https://pahulpreet86.github.io/graph-database-introduction/</link>
        <guid isPermaLink="true">https://pahulpreet86.github.io/graph-database-introduction/</guid>
        
        
        <category>Graph Database</category>
        
        <category>Data Management</category>
        
        <category>Triple Stores</category>
        
        <category>RDF</category>
        
        <category>Resource Description Framework</category>
        
        <category>Property Graph</category>
        
        <category>Hypergraph</category>
        
      </item>
    
      <item>
        <title>Automated Text Summarization : Introduction &amp; Types</title>
        <description>&lt;p&gt;Automated Text Summarization is the automated process of reducing the original text ‘s size while retaining key information elements and the context.&lt;/p&gt;

&lt;p&gt;The main challenge in automated text summarization is that without a reasonable amount of background knowledge a high reduction rate can not be achieved.&lt;/p&gt;

&lt;p&gt;Anotherchallenge, is we can not be sure that the automated summarizer has not missed any important information from the source.&lt;/p&gt;

&lt;p&gt;The automated text summarization approaches are categorized in two broad groups:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Knowledge-poor&lt;/strong&gt;: depends on solutions which are independent of language and domain.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Knowledge-rich&lt;/strong&gt;: rely significantly on knowledge base, rules, laws which must be obtained, preserved and are specific for particular language and domain.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For evaluation of text summarization, a set of metrics called &lt;strong&gt;ROUGE&lt;/strong&gt; is calculated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ROUGE (Recall Oriented Understudy of Gisting Evaluation)&lt;/strong&gt;: is a score based on the similarity in the sequences of words between a human-written text summary and the machine generated summary.&lt;/p&gt;

&lt;h2 id=&quot;types-of-auttomated-text-summarization&quot;&gt;Types of Auttomated Text Summarization&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;h3 id=&quot;extractive-summarization-knowledge-poor&quot;&gt;Extractive Summarization (Knowledge-poor)&lt;/h3&gt;
    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;Extractive summary method draws sentences directly from the text based on a scoring feature.&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;h4 id=&quot;advantages&quot;&gt;Advantages&lt;/h4&gt;

        &lt;ul&gt;
          &lt;li&gt;
            &lt;p&gt;Independent of language and domain.&lt;/p&gt;
          &lt;/li&gt;
          &lt;li&gt;
            &lt;p&gt;Easier implementation.&lt;/p&gt;
          &lt;/li&gt;
          &lt;li&gt;
            &lt;p&gt;Most important information usually included in extractive summary.&lt;/p&gt;
          &lt;/li&gt;
          &lt;li&gt;
            &lt;p&gt;Since the sentences are the same as the source, they can be easily backtracked to understand in depth meaning using the source itself.&lt;/p&gt;
          &lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;h4 id=&quot;disadvantages&quot;&gt;Disadvantages&lt;/h4&gt;

        &lt;ul&gt;
          &lt;li&gt;Summary generated are synthetic and incoherent.&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;h3 id=&quot;abstractive-summarization-knowledge-rich&quot;&gt;Abstractive Summarization (Knowledge-rich)&lt;/h3&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;Abstractive summary method generates the summary by interpreting the text using advanced NLU (Natural Language Understanding) techniques.&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Includes rephrasing sentences, incorporating information from full text to create summaries alike human-written abstract.&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;h4 id=&quot;advantages-1&quot;&gt;Advantages&lt;/h4&gt;

        &lt;ul&gt;
          &lt;li&gt;Summary generated are more closer to human created summaries.&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;h4 id=&quot;disadvantages-1&quot;&gt;Disadvantages&lt;/h4&gt;

        &lt;ul&gt;
          &lt;li&gt;
            &lt;p&gt;Heavily dependent on language and domain.&lt;/p&gt;
          &lt;/li&gt;
          &lt;li&gt;
            &lt;p&gt;Summary may not include exactly the same sentences, therefore, will be difficult to backtrack the source sentences for the same.&lt;/p&gt;
          &lt;/li&gt;
          &lt;li&gt;
            &lt;p&gt;Most important information might get missed in summary.&lt;/p&gt;
          &lt;/li&gt;
          &lt;li&gt;
            &lt;p&gt;Number of sentences in summary depends on the dataset on which it is trained.&lt;/p&gt;
          &lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;references&quot;&gt;References&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.researchgate.net/publication/2955348_The_Challenges_of_Automatic_Summarization&quot;&gt;https://www.researchgate.net/publication/2955348_The_Challenges_of_Automatic_Summarization&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://medium.com/luisfredgs/automatic-text-summarization-with-machine-learning-an-overview-68ded5717a25&quot;&gt;https://medium.com/luisfredgs/automatic-text-summarization-with-machine-learning-an-overview-68ded5717a25&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;http://www.ijcse.com/docs/INDJCSE17-08-04-021.pdf&quot;&gt;http://www.ijcse.com/docs/INDJCSE17-08-04-021.pdf&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Thu, 01 Oct 2020 00:00:00 +0000</pubDate>
        <link>https://pahulpreet86.github.io/automated-text-summarization-introduction-and-types/</link>
        <guid isPermaLink="true">https://pahulpreet86.github.io/automated-text-summarization-introduction-and-types/</guid>
        
        
        <category>Automated Text Summarization</category>
        
        <category>Extractive Summarization</category>
        
        <category>Abstractive Summarization</category>
        
        <category>NLU</category>
        
        <category>Natural Language Understanding</category>
        
      </item>
    
      <item>
        <title>Overview of Blockchain Technology</title>
        <description>&lt;p&gt;&lt;strong&gt;Blockchain:  &lt;/strong&gt;The blockchain is an ordered data structure, which stores the blocks of transactions in back-linked list form.The blocks in the blockchain are linked back to their parent or previous block. Therefore, blockchain can be imagined as a vertical stack with the first block at the bottom and its child blocks forming layered structure one on top of the other with the youngest child at the top.The height of the stack will refer to the size of the blockchain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Block Structure:&lt;/strong&gt; A block is a container in the blockchain data structure that stores the transactions along with the status of the transaction. Generally, the size of the block is around 1mb.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fig. 1.&lt;/strong&gt; Simplified structure of the block&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/image3.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The block is made of block size field, followed by the header that contains the metadata, transaction counter keeping the record of the number of transactions and finally the list of the transactions which is variable in its size.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Block Header &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The block header consist of 3 blocks of metadata that are:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Previous block hash: which refers to the previous block in the blockchain.&lt;/li&gt;
  &lt;li&gt;Difficulty, Timestamp, and Nonce: used in making the system secure against any fraud transaction and mining process.&lt;/li&gt;
  &lt;li&gt;Merkle Tree root: which is a data structure that is used for efficient summarization of all the transaction that takes place in the block.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Fig. 2&lt;/strong&gt;. describes the structure of block header.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/image4.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Block hash&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The block hash value is used as the main identifier for identifying blocks in the blockchain.&lt;/li&gt;
  &lt;li&gt;The block hash is generated by using the SHA256 cryptographic hash algorithm on block header.&lt;/li&gt;
  &lt;li&gt;The 32-byte resulting hash value generated by the algorithm is known as block hash.&lt;/li&gt;
  &lt;li&gt;The block hash value is neither stored on the node’s storage nor included in the block’s data structure. Instead, the metadata of the block stores a database table which contains the block hash values for faster retrieval and indexing.&lt;/li&gt;
  &lt;li&gt;The hash value is computed by each node of the network as the block is received.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Merkel Tree&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Merkel tree is a binary tree data structure which used to efficiently summarize all the transaction in the block. The tree is constructed by repeated hashing of the pair of nodes, till there is only one hash left which is the root node. Consider a case where there are n transaction to summarize than the time complexity to search any transaction in a Merkel a tree is given by O(2*log2(N)), which is very efficient.&lt;/li&gt;
  &lt;li&gt;The tree is built in a bottom-up manner. For example, A and B are two transactions which form the leaf node of the Merkel tree. Their data is hashed by the SHA256 cryptographic hash algorithm resulting in a 32-byte hash value each. Now, these pair of leaf node is summarized in the parent node by concatenating the two 32-byte hash value forming a 64-byte hash value. The 64-byte hash value is then double-hashed to generate a 32-byte hash value for the parent’s node.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Fig. 3.&lt;/strong&gt; Merkel tree structure&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/image1.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The 32-byte hash value is stored in the block header. Since Merkel tree is a binary tree it needs even number of the transaction. Therefore, if they are the odd number of transaction to summarise, it copies the last transaction hash value for making the number of leaf node to be even.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Blockchain Linking:&lt;/strong&gt; Each block in the blockchain has a hash value which is generated from the block’s header. The block’s header has a previous hash field which refers to the hash value of its parent. Therefore, this sequences of hashes connecting each block to its parent block, all the way back to the first block forms a chain of blocks called as the blockchain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fig. 4.&lt;/strong&gt; Blockchain&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/image5.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Each node in the network maintains a local copy of the blockchain,starting from the first block or the genesis block.When a node receives a block from the network, it will first verify these blocks and then add to the existing blockchain. For verification, the node examines the previous hash field of the new block’s header. If the node is able to get the hash field of the first block or the genesis block from the previous hash field of the new block, then the new block is added to the blockchain as it is the child of the same genesis block.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smart Contract:&lt;/strong&gt;  The second generation of blockchain made the transactions without the need for a third party reliable by the help of user-defined script knows as smart contracts. The smart contract is a user-defined, partial or self-executing script which states and enforces the contractual agreement.The smart contract helps in verification and allow the transaction between the blocks to occur. They are stored in the blockchain itself, and hence are irreversible and traceable by every node in the blockchain network.The blockchain being decentralised technology, the smart contract cannot be tampered or be controlled by any node in that network and therefore provide credibility for the transaction to occur without any third party involvement. &lt;/p&gt;
</description>
        <pubDate>Thu, 21 May 2020 00:00:00 +0000</pubDate>
        <link>https://pahulpreet86.github.io/overview-of-blockchain-technology/</link>
        <guid isPermaLink="true">https://pahulpreet86.github.io/overview-of-blockchain-technology/</guid>
        
        
        <category>Blockchain</category>
        
        <category>Smart Contract</category>
        
      </item>
    
      <item>
        <title>Creating Virtual Environment in Python</title>
        <description>&lt;p&gt;&lt;strong&gt;Virtual Environment:&lt;/strong&gt; is a resource that helps keep the dependencies provided by various projects apart by developing independent python virtual environments.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Generally speaking, it’s good practice to have a new virtual environment for any Python software project as each project’s dependencies are separated from the program and one another.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;requirements&quot;&gt;Requirements&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;python&lt;/li&gt;
  &lt;li&gt;pip3&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;steps-to-set-up-python-virtual-environment&quot;&gt;Steps to set up python virtual Environment&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;Open a terminal&lt;/li&gt;
  &lt;li&gt;Enter the following commands in the terminal:
    &lt;ul&gt;
      &lt;li&gt;$ pip3 install virtualenv&lt;/li&gt;
      &lt;li&gt;$ virtualenv project –python=python3.7  #project is the name of the virtual environment and python3.7 is the python version for the -environment&lt;/li&gt;
      &lt;li&gt;$ cd project&lt;/li&gt;
      &lt;li&gt;$ source bin/activate # activate the environment&lt;/li&gt;
      &lt;li&gt;$ deactivate # deactivate the environment&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

</description>
        <pubDate>Thu, 09 Apr 2020 00:00:00 +0000</pubDate>
        <link>https://pahulpreet86.github.io/creating-python-virtual-environment/</link>
        <guid isPermaLink="true">https://pahulpreet86.github.io/creating-python-virtual-environment/</guid>
        
        
        <category>Virtual Environment</category>
        
        <category>Python</category>
        
      </item>
    
      <item>
        <title>Sentiment Analysis - Methods and Pre-Trained Models Review</title>
        <description>&lt;h2 id=&quot;sentiment-analysis&quot;&gt;Sentiment Analysis&lt;/h2&gt;
&lt;p&gt;It is the process of identifying and categorizing opinions expressed in a piece of text to determine whether the attitude of the writer towards a specific subject, product, etc. is positive, negative or neutral.&lt;/p&gt;

&lt;h2 id=&quot;rules---based-sentiment-analysis&quot;&gt;Rules - Based Sentiment Analysis&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;In this, a series of guidelines/rules are used to evaluate the sentiment expressed towards a particular entity (noun or pronoun) based on its nearness to known positive and negative words (adjectives and adverbs).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Following are the libraries that calculates sentiment score using Rules - Based method:&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;1---text-blob&quot;&gt;1.   Text Blob&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;It provides a simple API for diving into common natural language processing (NLP) tasks such as part-of-speech tagging, noun phrase extraction, sentiment analysis, classification, translation, and more.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;algorithm--method-for-sentiment-analysis&quot;&gt;Algorithm / Method for Sentiment Analysis:&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;TextBlob goes along finding words and phrases it can assign polarity and subjectivity to, and it averages them all together for longer text.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A dictionary of words (adjectives) and polarity scores (positive/negative) is created from the lexicon (&lt;a href=&quot;https://github.com/sloria/TextBlob/blob/dev/textblob/en/en-sentiment.xml&quot;&gt;en-sentiment.xml&lt;/a&gt;, an XML document). The value for each word is a dictionary of part-of-speech tags. The value for each word POS-tag is a tuple with values for polarity (-1.0-1.0), subjectivity (0.0-1.0) and intensity (0.5-2.0).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The Lexicon XML is based on &lt;a href=&quot;https://wordnet.princeton.edu/&quot;&gt;WordNet3 lexical database&lt;/a&gt; of the English language containing about 150,000 words organized in over 115,000 synsets for a total of 207,000 word-sense pairs.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;code&quot;&gt;Code:&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;rouge-gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
2
3
4
5
6
7
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;rouge-code&quot;&gt;&lt;pre&gt;from textblob import TextBlob
text=&quot;Avengers: Infinity War is a giant battle for which directors Anthony and Joe Russo have given us touches of JRR Tolkien’s Return of the King and JK Rowling’s Harry Potter and the Deathly Hallows. The film delivers the sugar-rush of spectacle and some very amusing one-liners.&quot;
blob = TextBlob(text)
print(blob.sentiment)

Output:
Sentiment(polarity=0.39, subjectivity=1.0)
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;2---vader-valence-aware-dictionary-and-sentiment-reasoner&quot;&gt;2.   VADER (Valence Aware Dictionary and sEntiment Reasoner)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;It is a lexicon and rule-based sentiment analysis tool that is specifically attuned to sentiments expressed in social media.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;VADER works best when analysis is done at the sentence level (but it can work on single words or entire novels)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;algorithm--method-for-sentiment-analysis-1&quot;&gt;Algorithm / Method for Sentiment Analysis:&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;The compound score is computed by summing the valence scores of each word in the &lt;a href=&quot;https://github.com/cjhutto/vaderSentiment/blob/master/vaderSentiment/vader_lexicon.txt&quot;&gt;lexicon&lt;/a&gt;, adjusted according to the rules, and then normalized to be between -1 (most extreme negative) and +1 (most extreme positive).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The pos, neu, and neg scores from VADER are ratios for proportions of text that fall in each category (so these should all add up to be 1… or close to it with float operation).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The VADER lexicon is an empirically validated by multiple independent human judges, VADER incorporates a “gold-standard” sentiment lexicon that is especially attuned to microblog-like contexts.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;code-1&quot;&gt;Code:&lt;/h4&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;rouge-gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
2
3
4
5
6
7
8
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;rouge-code&quot;&gt;&lt;pre&gt;from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer 
text=&quot;Avengers: Infinity War is a giant battle for which directors Anthony and Joe Russo have given us touches of JRR Tolkien’s Return of the King and JK Rowling’s Harry Potter and the Deathly Hallows. The film delivers the sugar-rush of spectacle and some very amusing one-liners.&quot;
sid_obj = SentimentIntensityAnalyzer() 
sentiment_dict = sid_obj.polarity_scores(text)     
print(sentiment_dict)

Output:
{&apos;neg&apos;: 0.123, &apos;neu&apos;: 0.773, &apos;pos&apos;: 0.104, &apos;compound&apos;: -0.2439}
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;machine-learning-based-sentiment-analysis&quot;&gt;Machine Learning Based Sentiment Analysis&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The primary role of machine learning in sentiment analysis is to improve and automate the low-level text analytics functions that sentiment analysis relies on.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Following are libraries that use pre-trained ML model for calculation/prediction of sentiment score:&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;1---flair&quot;&gt;1.   Flair&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Flair’s sentiment classifier is based on a character-level LSTM neural network which takes sequences of letters and words into account when predicting.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Advantages is that it can predict a sentiment for out-of-vocabulary (OOV) words that it has never seen before too.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The Flair sentiment analysis model is trained on IMDB &lt;a href=&quot;https://ai.stanford.edu/~amaas/data/sentiment/&quot;&gt;(Maas et al., 2011)&lt;/a&gt; dataset for binary sentiment classification containing 25,000 highly polarized movie reviews for training, and 25,000 for testing.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;code-2&quot;&gt;Code:&lt;/h4&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;rouge-gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
2
3
4
5
6
7
8
9
10
11
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;rouge-code&quot;&gt;&lt;pre&gt;import flair
from flair.models import TextClassifier
flair_sentiment = TextClassifier.load(&apos;en-sentiment&apos;)
text=&quot;Avengers: Infinity War is a giant battle for which directors Anthony and Joe Russo have given us touches of JRR Tolkien’s Return of the King and JK Rowling’s Harry Potter and the Deathly Hallows. The film delivers the sugar-rush of spectacle and some very amusing one-liners.&quot;
sentence=flair.data.Sentence(text)
flair_sentiment.predict(sentence)
total_sentiment = sentence.labels
print(total_sentiment)

Output:
[POSITIVE (0.9994151592254639)]
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;references&quot;&gt;References&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.lexalytics.com/technology/sentiment-analysis#rules&quot;&gt;https://www.lexalytics.com/technology/sentiment-analysis#rules&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://textblob.readthedocs.io/en/dev/&quot;&gt;https://textblob.readthedocs.io/en/dev/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://planspace.org/20150607-textblob_sentiment/&quot;&gt;https://planspace.org/20150607-textblob_sentiment/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/cjhutto/vaderSentiment&quot;&gt;https://github.com/cjhutto/vaderSentiment&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://medium.com/@b.terryjack/nlp-pre-trained-sentiment-analysis-1eb52a9d742c&quot;&gt;https://medium.com/@b.terryjack/nlp-pre-trained-sentiment-analysis-1eb52a9d742c&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.aclweb.org/anthology/N19-4010.pdf&quot;&gt;https://www.aclweb.org/anthology/N19-4010.pdf&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sun, 01 Mar 2020 00:00:00 +0000</pubDate>
        <link>https://pahulpreet86.github.io/sentiment-analysis-methods-and-pre-trained-models-review/</link>
        <guid isPermaLink="true">https://pahulpreet86.github.io/sentiment-analysis-methods-and-pre-trained-models-review/</guid>
        
        
        <category>Sentiment Analysis</category>
        
        <category>Text Blob</category>
        
        <category>VADER</category>
        
        <category>Flair</category>
        
        <category>NLP</category>
        
        <category>Natural Language Processing</category>
        
        <category>Python</category>
        
      </item>
    
      <item>
        <title>Name Entity Recognition (NER) - Methods and Pre-Trained Models Review</title>
        <description>&lt;h3 id=&quot;name-entity-recognition&quot;&gt;&lt;strong&gt;Name Entity Recognition&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;NER is extraction of named entities and their classification into predefined categories such as location, organization, name of a person, etc. The named entity is any real words object denoted with a proper name. This helps to recognize entities in the document, which are more informative and explains the context.&lt;/p&gt;

&lt;p&gt;Following are the pre-trained models used for NER:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;NLTK&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;Algorithm&lt;/strong&gt;: The text is tokenized &amp;gt; the tokens are passed through a Part Of Speech (POS) tagger &amp;gt; a parser chunks the tokens based on their POS tags to find named entities.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;style type=&quot;text/css&quot;&gt;
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}
.tg .tg-0lax{text-align:left;vertical-align:top}
&lt;/style&gt;

&lt;table class=&quot;tg&quot;&gt;
  &lt;tr&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;NLTK NER Model&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data Source&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Model Description&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Entities&lt;/b&gt;&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;NLTK(nltk.ne_chunk())&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;ACE 2004&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;newswire, broadcast news, telephone conversations&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;MaxEnt classifier&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Organization, Person, Location, Date, Time, Money, Percent, Facility, GPE&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Stanford NER&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;Stanford NER is also known as CRFClassifier.&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Algorithm&lt;/strong&gt;: A CRF is a conditional sequence model which represents the probability of a hidden state sequence given some observations.&lt;/li&gt;
      &lt;li&gt;This is especially useful in modeling time-series data where the temporal dependency can manifest itself in various different forms.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;style type=&quot;text/css&quot;&gt;
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}
.tg .tg-0lax{text-align:left;vertical-align:top}
&lt;/style&gt;

&lt;table class=&quot;tg&quot;&gt;
  &lt;tr&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Stanford NER Model&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data Source&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Model Description&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Entities&lt;/b&gt;&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;3 class&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;CoNLL 2003 eng, MUC 6, MUC 7, ACE 2002&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;newswire, broadcast news, telephone conversations&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;CRFClassifier&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Location, Person, Organization&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;4 class&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;CoNLL 2003 eng(1,393 English news articles)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;news articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;CRFClassifier&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Location, Person, Organization, Misc&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;7 class&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;MUC 6 and MUC 7(~318 news articles in MUC 6)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;newswire&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;CRFClassifier&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Location, Person, Organization, Money, Percent, Date, Time&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;spaCy&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;spaCy is an open-source software library for advanced Natural Language Processing, written in the programming languages Python and Cython.&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Algorithm&lt;/strong&gt;: Convolutional layers with residual connections, layer normalization and maxout non-linearity. And a novel bloom embedding strategy with subword features is used to support huge vocabularies in tiny tables.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;style type=&quot;text/css&quot;&gt;
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}
.tg .tg-0lax{text-align:left;vertical-align:top}
&lt;/style&gt;

&lt;table class=&quot;tg&quot;&gt;
  &lt;tr&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;spaCy NER Model&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data Source&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Model Description&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Entities&lt;/b&gt;&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;en_core_web_sm&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;OntoNotes(~1745k articles)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;telephone conversations, newswire, newsgroups, broadcast news, broadcast conversation, weblogs&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;English multi-task CNN. Assigns context-specific token vectors, POS tags, dependency parse and named entities.&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Person, Norp, Fac, Org, Gpe, Loc, Product, Event, Work_Of_Art, Law, Language, Date, Time, Percent, Money, Quantity, Ordinal, Cardinal&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;en_core_web_md&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;OntoNotes(~1745k articles)(Vectors - 685k keys, 20k unique vectors (300 dimensions)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;telephone conversations, newswire, newsgroups, broadcast news, broadcast conversation, weblogs&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;English multi-task CNN trained on OntoNotes, with GloVe vectors trained on Common Crawl. Assigns word vectors, context-specific token vectors, POS tags, dependency parse and named entities.&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Person, Norp, Fac, Org, Gpe, Loc, Product, Event, Work_Of_Art, Law, Language, Date, Time, Percent, Money, Quantity, Ordinal, Cardinal&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;en_core_web_lg&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;OntoNotes(~1745k articles)(Vectors - 685k keys, 685k unique vectors (300 dimensions)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;telephone conversations, newswire, newsgroups, broadcast news, broadcast conversation, weblogs&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;English multi-task CNN trained on OntoNotes, with GloVe vectors trained on Common Crawl. Assigns word vectors, context-specific token vectors, POS tags, dependency parse and named entities.&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Person, Norp, Fac, Org, Gpe, Loc, Product, Event, Work_Of_Art, Law, Language, Date, Time, Percent, Money, Quantity, Ordinal, Cardinal&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;GATE (General Architecture for Text Engineering)&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;ANNIE (A Nearly-New Information Extraction System) is &lt;strong&gt;rules-based system&lt;/strong&gt; that work on different layers of abstraction along the NLP pipeline&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Algorithm&lt;/strong&gt;: ANNIE comprise of a set of modules comprising a tokenizer, a gazetteer, a sentence splitter, a part of speech tagger, a named entities transducer and a coreference tagger.&lt;/li&gt;
      &lt;li&gt;ANNIE can be used as-is to provide basic information extraction functionality, or provide a starting point for more specific tasks.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;style type=&quot;text/css&quot;&gt;
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}
.tg .tg-0lax{text-align:left;vertical-align:top}
&lt;/style&gt;

&lt;table class=&quot;tg&quot;&gt;
  &lt;tr&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;GATE NER Model&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data Source&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Model Description&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Entities&lt;/b&gt;&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;ANNIE&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;-&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;-&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Rule-Based(Finite State Machine)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;People,Location,Organization&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Flair&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;Flair is an openly available framework for a range of NLP tasks across different languages.&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Algorithm&lt;/strong&gt;: A sentence is input as a character sequence into a pre-trained bidirectional character language model. From this LM, we retrieve for each word a contextual embedding by extracting the first and last character cell states.&lt;/li&gt;
      &lt;li&gt;This word embedding is then passed into a vanilla BiLSTM-CRF sequence labeler.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;style type=&quot;text/css&quot;&gt;
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}
.tg .tg-0lax{text-align:left;vertical-align:top}
&lt;/style&gt;

&lt;table class=&quot;tg&quot;&gt;
  &lt;tr&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Flair NER Model&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data Source&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Model Description&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Entities&lt;/b&gt;&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;ner&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;CoNLL 2003 eng(1,393 English news articles)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;news articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Contextual String Embeddings + BiLSTM-CRF&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Location, Person, Organization, Misc&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;ner-ontonotes&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;OntoNotes(~1745k articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;telephone conversations, newswire, newsgroups, broadcast news, broadcast conversation, weblogs&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Contextual String Embeddings + BiLSTM-CRF&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Person, Norp, Fac, Org, Gpe, Loc, Product, Event, Work_Of_Art, Law, Language, Date, Time, Percent, Money, Quantity, Ordinal, Cardinal&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Deep Pavlov&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;There are two main types of models available: standard RNN based and BERT based.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;style type=&quot;text/css&quot;&gt;
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}
.tg .tg-0lax{text-align:left;vertical-align:top}
&lt;/style&gt;

&lt;table class=&quot;tg&quot;&gt;
  &lt;tr&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Deep Pavlov NER Model&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data Source&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Model Description&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Entities&lt;/b&gt;&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;ner_ontonotes&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;OntoNotes(~1745k articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;telephone conversations, newswire, newsgroups, broadcast news, broadcast conversation, weblogs&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Bi-LSTM+CRF&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Person, Norp, Fac, Org, Gpe, Loc, Product, Event, Work_Of_Art, Law, Language, Date, Time, Percent, Money, Quantity, Ordinal, Cardinal&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;ner_ontonotes_bert&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;OntoNotes(~1745k articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;telephone conversations, newswire, newsgroups, broadcast news, broadcast conversation, weblogs&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;BERT+Bi-LSTM+CRF&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Person, Norp, Fac, Org, Gpe, Loc, Product, Event, Work_Of_Art, Law, Language, Date, Time, Percent, Money, Quantity, Ordinal, Cardinal&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;ner_conll2003&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;CoNLL 2003 eng(1,393 English news articles)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;news articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Bi-LSTM+CRF&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Location, Person, Organization, Misc&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;ner_conll2003_bert&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;CoNLL 2003 eng(1,393 English news articles)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;news articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;BERT+Bi-LSTM+CRF&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Location, Person, Organization, Misc&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;AllenNLP&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;fine grained ner: BiLSTM-CRF+ELMo&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;style type=&quot;text/css&quot;&gt;
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}
.tg .tg-0lax{text-align:left;vertical-align:top}
&lt;/style&gt;

&lt;table class=&quot;tg&quot;&gt;
  &lt;tr&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;AllenNLP NER Model&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data Source&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Model Description&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Entities&lt;/b&gt;&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;fine grained ner&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;OntoNotes(~1745k articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;telephone conversations, newswire, newsgroups, broadcast news, broadcast conversation, weblogs&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;BiLSTM-CRF+ELMo&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Person, Norp, Fac, Org, Gpe, Loc, Product, Event, Work_Of_Art, Law, Language, Date, Time, Percent, Money, Quantity, Ordinal, Cardinal&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Polyglot NER&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;It uses huge unlabelled datasets (like Wikipedia) with automatically inferred entity labels (via features such as hyperlinks).&lt;/li&gt;
      &lt;li&gt;The internal links embedded in Wikipedia articles are used to detect named entity mentions. When a link points to an article identified by Freebase as an entity article,the anchor text is taken as a positive training example.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;style type=&quot;text/css&quot;&gt;
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}
.tg .tg-0lax{text-align:left;vertical-align:top}
&lt;/style&gt;

&lt;table class=&quot;tg&quot;&gt;
  &lt;tr&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Polyglot NER Model&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data(vocabulary)&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data Source&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Model Description&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Entities&lt;/b&gt;&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Polyglot NER&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;mostfrequent 100K words and the word&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Wikipedia Articles and Freebase&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Classifier (feedforward neural network)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Person, Locations, Organizations&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;overview-ner-model-performance&quot;&gt;&lt;strong&gt;Overview: NER Model Performance&lt;/strong&gt;&lt;/h3&gt;

&lt;style type=&quot;text/css&quot;&gt;
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}
.tg .tg-0lax{text-align:left;vertical-align:top}
&lt;/style&gt;

&lt;table class=&quot;tg&quot;&gt;
  &lt;tr&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;NER Model&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Data Source&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Model Description&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0pky&quot;&gt;&lt;b&gt;Entities&lt;/b&gt;&lt;/th&gt;
    &lt;th class=&quot;tg-0lax&quot;&gt;&lt;b&gt;Performance F1 score(Dataset)&lt;/b&gt;&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;NLTK&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;ACE 2004&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;newswire, broadcast news, telephone conversations&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;MaxEnt classifier&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Organization, Person, Location, Date, Time, Money, Percent, Facility, GPE&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;0.89 ± 0.11(CoNLL-2003)&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Stanford NER Model&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;CoNLL 2003 eng(1,393 English news articles)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;news articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;CRFClassifier&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Location, Person, Organization, Misc&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;87.94%(CoNLL-2003)&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Polyglot NER&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;mostfrequent 100K words and the word&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Wikipedia Articles and Freebase&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Classifier (feedforward neural network)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Person, Locations, Organizations&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;71.3%(CoNLL-2003)&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;spaCyen_core_web_lg&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;OntoNotes(~1745k articles)(Vectors - 685k keys, 685k unique vectors (300 dimensions)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;telephone conversations, newswire, newsgroups, broadcast news, broadcast conversation, weblogs&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;English multi-task CNN trained on OntoNotes, with GloVe vectors trained on Common Crawl. Assigns word vectors, context-specific token vectors, POS tags, dependency parse and named entities.&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Person, Norp, Fac, Org, Gpe, Loc, Product, Event, Work_Of_Art, Law, Language, Date, Time, Percent, Money, Quantity, Ordinal, Cardinal&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;85.85%(OntoNotes 5)&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Flairner-fast&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;CoNLL 2003 eng(1,393 English news articles)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;news articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Contextual String Embeddings + BiLSTM-CRF&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Location, Person, Organization, Misc&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;93.09±0.12%(CoNLL-2003)&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Flairner-ontonotes-fast&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;OntoNotes(~1745k articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;telephone conversations, newswire, newsgroups, broadcast news, broadcast conversation, weblogs&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Contextual String Embeddings + BiLSTM-CRF&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Person, Norp, Fac, Org, Gpe, Loc, Product, Event, Work_Of_Art, Law, Language, Date, Time, Percent, Money, Quantity, Ordinal, Cardinal&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;89.7%(OntoNotes 5)&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Deep PavlovNer_ontonotes&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;OntoNotes(~1745k articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;telephone conversations, newswire, newsgroups, broadcast news, broadcast conversation, weblogs&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Bi-LSTM+CRF&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Person, Norp, Fac, Org, Gpe, Loc, Product, Event, Work_Of_Art, Law, Language, Date, Time, Percent, Money, Quantity, Ordinal, Cardinal&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;86.4%(OntoNotes 5)&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Deep PavlovNer_ontonotes_bert&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;OntoNotes(~1745k articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;telephone conversations, newswire, newsgroups, broadcast news, broadcast conversation, weblogs&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;BERT+Bi-LSTM+CRF&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Person, Norp, Fac, Org, Gpe, Loc, Product, Event, Work_Of_Art, Law, Language, Date, Time, Percent, Money, Quantity, Ordinal, Cardinal&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;88.6%(OntoNotes 5)&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Deep Pavlovner_conll2003&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;CoNLL 2003 eng(1,393 English news articles)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;news articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Bi-LSTM+CRF&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Location, Person, Organization, Misc&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;89.9%(CoNLL-2003)&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Deep PavlovNer_conll2003_bert&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;CoNLL 2003 eng(1,393 English news articles)&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;news articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;BERT+Bi-LSTM+CRF&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Location, Person, Organization, Misc&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;91.7%(CoNLL-2003)&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;AllenNLP NER Model&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;OntoNotes(~1745k articles&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;telephone conversations, newswire, newsgroups, broadcast news, broadcast conversation, weblogs&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;BiLSTM-CRF+ELMo&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;Person, Norp, Fac, Org, Gpe, Loc, Product, Event, Work_Of_Art, Law, Language, Date, Time, Percent, Money, Quantity, Ordinal, Cardinal&lt;/td&gt;
    &lt;td class=&quot;tg-0lax&quot;&gt;88.7%(OntoNotes 5)&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;references&quot;&gt;References&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;NLTK&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.nltk.org/book/ch07.html&quot;&gt;https://www.nltk.org/book/ch07.html&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://mattshomepage.com/articles/2016/May/23/nltk_nec/&quot;&gt;https://mattshomepage.com/articles/2016/May/23/nltk_nec/&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Stanford NER&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://nlp.stanford.edu/software/jenny-ner-2007.pdf&quot;&gt;https://nlp.stanford.edu/software/jenny-ner-2007.pdf&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://towardsdatascience.com/conditional-random-fields-explained-e5b8256da776&quot;&gt;https://towardsdatascience.com/conditional-random-fields-explained-e5b8256da776&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://prateekvjoshi.com/2013/02/23/what-are-conditional-random-fields/&quot;&gt;https://prateekvjoshi.com/2013/02/23/what-are-conditional-random-fields/&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://nlp.stanford.edu/software/CRF-NER.shtml&quot;&gt;https://nlp.stanford.edu/software/CRF-NER.shtml&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://nlp.stanford.edu/~manning/papers/gibbscrf3.pdf&quot;&gt;https://nlp.stanford.edu/~manning/papers/gibbscrf3.pdf&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;spaCy&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://spacy.io/models/en&quot;&gt;https://spacy.io/models/en&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://explosion.ai/blog/how-spacy-works&quot;&gt;https://explosion.ai/blog/how-spacy-works&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://spacy.io/models#architecture&quot;&gt;https://spacy.io/models#architecture&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;GATE&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://gate.ac.uk/overview.html&quot;&gt;https://gate.ac.uk/overview.html&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.slideshare.net/dianamaynard/text-analysis-in-gate&quot;&gt;https://www.slideshare.net/dianamaynard/text-analysis-in-gate&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://gate.ac.uk/sale/acl02/acl-main.pdf&quot;&gt;https://gate.ac.uk/sale/acl02/acl-main.pdf&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Flair&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://research.zalando.com/welcome/mission/research-projects/flair-nlp/&quot;&gt;https://research.zalando.com/welcome/mission/research-projects/flair-nlp/&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://alanakbik.github.io/papers/coling2018.pdf&quot;&gt;http://alanakbik.github.io/papers/coling2018.pdf&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://github.com/flairNLP/flair&quot;&gt;https://github.com/flairNLP/flair&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://github.com/flairNLP/flair/blob/master/resources/docs/TUTORIAL_2_TAGGING.md&quot;&gt;https://github.com/flairNLP/flair/blob/master/resources/docs/TUTORIAL_2_TAGGING.md&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Deep Pavlov&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;http://docs.deeppavlov.ai/en/master/features/models/ner.html&quot;&gt;http://docs.deeppavlov.ai/en/master/features/models/ner.html&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://towardsdatascience.com/bert-to-the-rescue-17671379687f&quot;&gt;https://towardsdatascience.com/bert-to-the-rescue-17671379687f&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://docs.deeppavlov.ai/en/master/features/overview.html#ner-model-docs&quot;&gt;http://docs.deeppavlov.ai/en/master/features/overview.html#ner-model-docs&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://docs.deeppavlov.ai/en/master/features/models/bert.html&quot;&gt;http://docs.deeppavlov.ai/en/master/features/models/bert.html&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Allennlp&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;http://api.semanticscholar.org/arXiv:1802.05365&quot;&gt;http://api.semanticscholar.org/arXiv:1802.05365&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Polyglot-NER&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://arxiv.org/pdf/1410.3791.pdf&quot;&gt;https://arxiv.org/pdf/1410.3791.pdf&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://polyglot.readthedocs.io/en/latest/NamedEntityRecognition.html&quot;&gt;https://polyglot.readthedocs.io/en/latest/NamedEntityRecognition.html&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Overview: NER Model Performance&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://drops.dagstuhl.de/opus/volltexte/2016/6008/pdf/OASIcs-SLATE-2016-3.pdf&quot;&gt;https://drops.dagstuhl.de/opus/volltexte/2016/6008/pdf/OASIcs-SLATE-2016-3.pdf&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://nlp.stanford.edu/projects/project-ner.shtml&quot;&gt;https://nlp.stanford.edu/projects/project-ner.shtml&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://spacy.io/usage/facts-figures&quot;&gt;https://spacy.io/usage/facts-figures&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://arxiv.org/pdf/1410.3791.pdf&quot;&gt;https://arxiv.org/pdf/1410.3791.pdf&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://docs.deeppavlov.ai/en/master/features/models/ner.html&quot;&gt;http://docs.deeppavlov.ai/en/master/features/models/ner.html&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.arxiv-vanity.com/papers/1904.10503/&quot;&gt;https://www.arxiv-vanity.com/papers/1904.10503/&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://medium.com/@b.terryjack/nlp-pretrained-named-entity-recognition-7caa5cd28d7b&quot;&gt;https://medium.com/@b.terryjack/nlp-pretrained-named-entity-recognition-7caa5cd28d7b&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://towardsdatascience.com/named-entity-recognition-ner-meeting-industrys-requirement-by-applying-state-of-the-art-deep-698d2b3b4ede&quot;&gt;https://towardsdatascience.com/named-entity-recognition-ner-meeting-industrys-requirement-by-applying-state-of-the-art-deep-698d2b3b4ede&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;dataset&quot;&gt;Dataset&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;NLTK&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;ACE 2004&lt;strong&gt;:&lt;/strong&gt; &lt;a href=&quot;https://catalog.ldc.upenn.edu/LDC2005T09&quot;&gt;https://catalog.ldc.upenn.edu/LDC2005T09&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Stanford NER&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;MUC 6: &lt;a href=&quot;https://catalog.ldc.upenn.edu/LDC2003T13&quot;&gt;https://catalog.ldc.upenn.edu/LDC2003T13&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;MUC 7: &lt;a href=&quot;https://catalog.ldc.upenn.edu/LDC2001T02&quot;&gt;https://catalog.ldc.upenn.edu/LDC2001T02&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;MUC 6 and MUC 7 : &lt;a href=&quot;https://www-nlpir.nist.gov/related_projects/muc/muc_data/muc_data_index.html&quot;&gt;https://www-nlpir.nist.gov/related_projects/muc/muc_data/muc_data_index.html&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;CoNLL 2003: &lt;a href=&quot;https://www.clips.uantwerpen.be/conll2003/ner/&quot;&gt;https://www.clips.uantwerpen.be/conll2003/ner/&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;spaCy&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;OntoNotes Release 5.0: &lt;a href=&quot;https://catalog.ldc.upenn.edu/LDC2013T19&quot;&gt;https://catalog.ldc.upenn.edu/LDC2013T19&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;OntoNotes Release 5.0: &lt;a href=&quot;https://catalog.ldc.upenn.edu/docs/LDC2013T19/OntoNotes-Release-5.0.pdf&quot;&gt;https://catalog.ldc.upenn.edu/docs/LDC2013T19/OntoN otes-Release-5.0.pdf&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Flair&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;CoNLL 2003: https://www.clips.uantwerpen.be/conll2003/ner/&lt;/li&gt;
      &lt;li&gt;OntoNotes Release 5.0: &lt;a href=&quot;https://catalog.ldc.upenn.edu/LDC2013T19&quot;&gt;https://catalog.ldc.upenn.edu/LDC2013T19&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Deep Pavlov&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;CoNLL 2003: &lt;a href=&quot;https://www.clips.uantwerpen.be/conll2003/ner/&quot;&gt;https://www.clips.uantwerpen.be/conll2003/ner/&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;OntoNotes Release 5.0: &lt;a href=&quot;https://catalog.ldc.upenn.edu/LDC2013T19&quot;&gt;https://catalog.ldc.upenn.edu/LDC2013T19&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Fri, 07 Feb 2020 00:00:00 +0000</pubDate>
        <link>https://pahulpreet86.github.io/name-entity-recognition-pre-trained-models-review/</link>
        <guid isPermaLink="true">https://pahulpreet86.github.io/name-entity-recognition-pre-trained-models-review/</guid>
        
        
        <category>NLTK</category>
        
        <category>Stanford NER</category>
        
        <category>spaCy</category>
        
        <category>Flair</category>
        
        <category>Deep Pavlov</category>
        
        <category>Polyglot NER</category>
        
        <category>NER</category>
        
        <category>Named Entity Recognition</category>
        
        <category>NLP</category>
        
        <category>Natural Language Processing</category>
        
      </item>
    
      <item>
        <title>Email Marketing Automation - Using Google Scripts</title>
        <description>&lt;h2 id=&quot;what-is-email-marketing-automation&quot;&gt;What is Email Marketing Automation?&lt;/h2&gt;
&lt;p&gt;Email marketing is the process of delivering a promotional letter, primarily by using email to a customer or group of customers.&lt;/p&gt;

&lt;h2 id=&quot;what-are-the-advantages-of-email-marketing-automation&quot;&gt;What are the advantages of Email Marketing Automation?&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Scalable Marketing Strategy&lt;/strong&gt; : through email marketing automation, the marketing strategy for the company can be scaled, by increased reach to customers.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Personalization of Customer Experience&lt;/strong&gt;: can be achieved by creating a template taking into account customers need. Through automatic personalized email, these clients can be targeted, thereby enhancing the relationship between your client and business.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Improved Productivity&lt;/strong&gt;: less time will be spent on emailing customers manually with the automation, thus improving productivity.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;email-automation--using-google-script-code-and-sheet&quot;&gt;Email Automation : Using Google Script Code and Sheet&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Create a Google Spread Sheet, with the following &lt;a href=&quot;https://github.com/Pahulpreet86/Email-Marketing-Automation-Using-Google-Scripts/blob/master/Email%20Automation_%20Using%20Google%20Scripts.xlsx&quot;&gt;format&lt;/a&gt;.&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/images/google_spread_sheet.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;In Google Sheet, go to Tool -&amp;gt; Script Editor.  &lt;br /&gt;
&lt;img src=&quot;/assets/images/go_to_script_editor-min.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Add the following &lt;a href=&quot;https://github.com/Pahulpreet86/Email-Marketing-Automation-Using-Google-Scripts/blob/master/Code.gs&quot;&gt;code&lt;/a&gt; in the google script.&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/images/google_script_code-min.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Go to File -&amp;gt; New -&amp;gt; HTML File&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/images/create_html_template-min.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Copy the following html template &lt;a href=&quot;https://github.com/Pahulpreet86/Email-Marketing-Automation-Using-Google-Scripts/blob/master/email_template.html&quot;&gt;code&lt;/a&gt;, and paste it in the html file created.&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/images/html_file-min.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Save the HTML file, with name as email_template.html.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Once this is done, select function onOpen from toolbar and click on Run.&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/images/select_openup_function-min.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Allow permission for email, read, write and edit google sheets.&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/images/allow_permission-min.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Now the system with interface has been setup, which can be verified by the addition of Send Email menu option on google sheets.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Select the cell corresponding to customer email, to whom  you need to send email, then click on Send Email -&amp;gt; Send -&amp;gt; OK. The Sent column in sheet gets updated and the email is sent to the client.     &lt;br /&gt;
    &lt;img src=&quot;/assets/images/select_client-min.png&quot; alt=&quot;image&quot; /&gt;
    &lt;img src=&quot;/assets/images/click_ok-min.png&quot; alt=&quot;image&quot; /&gt;
    &lt;img src=&quot;/assets/images/sent-min.png&quot; alt=&quot;image&quot; /&gt;
    &lt;img src=&quot;/assets/images/update_sheet-min.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;references&quot;&gt;References&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://mailchimp.com/marketing-glossary/email-automation/&quot;&gt;https://mailchimp.com/marketing-glossary/email-automation/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://developers.google.com/apps-script/reference/spreadsheet/&quot;&gt;https://developers.google.com/apps-script/reference/spreadsheet/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

</description>
        <pubDate>Sat, 14 Dec 2019 00:00:00 +0000</pubDate>
        <link>https://pahulpreet86.github.io/email-marketing-automation-using-google-scripts/</link>
        <guid isPermaLink="true">https://pahulpreet86.github.io/email-marketing-automation-using-google-scripts/</guid>
        
        
        <category>Email Marketing</category>
        
        <category>Automation</category>
        
        <category>Google Scripts</category>
        
        <category>Digital Marketing</category>
        
        <category>Digital Strategy</category>
        
        <category>Branding</category>
        
      </item>
    
  </channel>
</rss>
