<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Microposts</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Kanopy4Tweets: Entity Extraction and Linking for Twitter</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Conor Hayes</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Hugo Hromic Brian Walsh Bahareh R. Heravi Insight Centre for Data Analytics @ NUI Galway</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <volume>6</volume>
      <fpage>64</fpage>
      <lpage>66</lpage>
      <abstract>
        <p>Named Entity rEcognition and Linking (NEEL) from text is an essential task in many Natural Language Processing (NLP) applications because it enables a better understanding of the content. However in the context of Social Media, NEEL is challenging due to the higher level of writing mistakes, fast language dynamics and often lack of context. To this end, we adapted Kanopy - an unsupervised graph-based topic disambiguation system - to be used for the task of NEEL in the domain of Twitter, a fast-paced micro-blogging platform. We describe the design of our solution and report the results obtained by our system using the official corpus of Tweets for the NEEL 2016 Challenge [10].</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        We designed our system, Kanopy4Tweets, inspired on
Kanopy [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], an approach that interlinks text documents
with a knowledge base such as DBpedia using relations
between concepts and their neighbouring graph structure.
Kanopy is able to discover rich knowledge that is not
directly extracted from the text itself without the need of a
training phase. In NEEL [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], there are two main steps: (1)
named entity recognition and (2) entity linking. The first
is well understood in the literature [
        <xref ref-type="bibr" rid="ref2 ref4 ref5 ref6">2, 4, 5, 6</xref>
        ], however the
latter remains challenging and we use Kanopy for this
purpose. However, it was not designed for Twitter text, hence
we need to adapt the approach to be used for this popular
micro-blogging platform.
      </p>
    </sec>
    <sec id="sec-2">
      <title>KANOPY4TWEETS</title>
      <p>Our system must deal with Tweets, very noisy and short
pieces of text. Kanopy was not intended for this type of
content, hence we need to adapt it. Kanopy has three stages:
Name Entity Recogniser (NER), Entity Linking and Entity
Permission to make digital or hard copies of all or part of this work for personal or
classroom use is granted without fee provided that copies are not made or distributed
for profit or commercial advantage and that copies bear this notice and the full
citatCioonpoynrtihgehfirtst pcag2e0.1C6ophyerilgdhtsbyforacuotmhpoorn(esn)t/soowf ntheirs(ws)o;rkcowpnyeindgbypoetrhmersitttheadn
AoCnMly mfourstpbreihvoantoereadn. dAbasctraadcteimngiwcipthucrrpedoisteis.permitted. To copy otherwise, or
repPuublbislhis, htoedpoastsopnasretrvoerfs tohreto#reMdisitcrriboupteostotsl2is0ts1,6reqWuiorersksphriorpsppercoificepeedrminisgssio,n
aanvda/oilraabfleee.oRneliqnuesatspeCrmEisUsiRonsVforol-m16p9er1m(ishstiotnps:@//acmeu.orr-gw.s.org/Vol-1691)
Disambiguation. We need to adapt each one of them in order
to process tweets.
2.1</p>
    </sec>
    <sec id="sec-3">
      <title>Named Entity Recognition</title>
      <p>
        We integrated a NER specially designed for Twitter into
Kanopy based on the well-known GATE NLP Framework [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
In GATE, pipelines for information extraction (IE) can be
built using combinations of processing resources (PR) such
as tokenisers, named entities extractors, POS taggers,
language detectors, ontologies, gazetteers and many more.
      </p>
      <p>
        In recent versions, GATE now includes a ready to use
Twitter-specific pipeline for IE called TwitIE [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. It uses
fine-tuned PRs for Twitter text, with the NER PR being the
most heavily adapted for Twitter data. This NER is based
on the state of the art Stanford NER [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] – which is based on
Conditional Random Fields (CRF) models – and also
incorporates many findings from the work of Ritter et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. The
most challenging Twitter text processing tasks addressed by
TwitIE are normalisation of slang, mis-spellings, emoticons
and entity disambiguation [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>To integrate GATE into Kanopy4Tweets we use an
embedded engine in an optimised multi-threading REST API
server. This server operates in two recognition modes: (1)
the TWITTER mode uses the above described TwitIE
pipeline for text processing, and (2) the NORMAL mode
uses the standard ANNIE pipeline included in GATE for
regular text processing. Those two modes are used during
the on-line Tweet processing and the off-line DBpedia
indexing stages respectively. More details are in Section 3.
2.2</p>
    </sec>
    <sec id="sec-4">
      <title>Named Entity Linking</title>
      <p>We built a DBpedia index using a selection of datasets in
order to find suitable resource candidates for each extracted
named entity. The datasets used in our system are: 1
DBpedia ontology, mapping based types, mapping based properties,
titles, short abstracts, article categories, categories(labels),
categories(skos) and redirects.</p>
      <p>
        We stored the DBpedia datasets in a single binary file
using the HDT RDF format [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. This is a binary
representation of RDF data that uses compact structures while
allowing fast search functionality without the need of
decompression. This type of storage has a number of benefits.
For example, HDT allows to quickly browse the datasets for
a particular object, subject or predicate at a glance. We
processed all the mentioned DBpedia datasets and indexed
a subset of resource properties (e.g. title, abstract, redirect,
disambiguation, etc.) that best describe them.
      </p>
      <sec id="sec-4-1">
        <title>1From: http://dbpedia.org/Downloads2015-04/</title>
        <p>After the index is built, we use the named entities found by
our NER component to query DBpedia. For each entity we
obtain a list of resource candidates using the following
topdown strategy: first, we search a resource with exactly the
same title property as the name entity. If a result is found,
we use it immediately for the next stage as a candidate,
otherwise we query again the index looking for a resources
with a title similar to the named entity. Again, if we find
some candidates we use them for the next stage. Each time
we query the index we use a query that is more general than
the previous one. The last query finds matches of the named
entity in the abstract property. This process stop when at
least one candidate is selected. If we found no candidates,
the named entity is assgined as a NIL resource. 2</p>
        <p>One challenge we found using this approach is that the
number of found resource candidates tends to be large,
increasing the processing time for the disambiguation stage.
In such situations, we reduce the number of candidates by
ranking them according to the document score assigned by
the indexing engine (details in Section 3) and selecting the
top-k elements.
2.3</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Named Entity Disambiguation</title>
      <p>
        The selected resource candidates for each named entity
found in a Tweet are processed by Kanopy in an
unsupervised graph-based approach for joint disambiguation that
combines the same datasets mentioned in Section 2.2,
resulting in a graph of linked resources [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. In this graph, nodes
are DBpedia resources and edges are weighted by the
exclusivity of the DBpedia link type with respect to both the
source and target resource nodes.
      </p>
      <p>
        The disambiguation process takes as input a list of named
entities, each containing a list of candidate DBpedia
resources after the linking stage. The output is the selection of
the best candidate resource for each input named entity. For
this, relatedness of the candidates with respect to the
candidate resources of all the other entities is calculated based
on the number of paths between the resources weighted by
the exclusivity of the edges of these paths [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        The input named entities are then jointly disambiguated
and linked to the candidate resources with the highest
combined relatedness. This process is fully detailed in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. The
score assigned by during the indexing step is used as a tie
breaker in the case of multiple combinations of candidates
scoring equal relatedness or in the case of tweets containing
a single entity.
2.4
      </p>
    </sec>
    <sec id="sec-6">
      <title>NIL Resources Clustering</title>
      <p>When no resource in the knowledge base can be found
to be linked to a named entity, a NIL resource is assigned.
However, we might have sets of unlinked named entities that
can be similar under some criteria. Hence we are interested
on further clustering all the found NIL-linked named entities.</p>
      <p>
        For this clustering, we use the following hierarchical and
incremental simple approach: we iterate over each NIL-linked
entity and aggregate them into clusters one by one. The first
element is assigned into an initial cluster, then the next item
is compared to the previous ones using the Monge-Elkan
similarity measure [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. This process is repeated for all the
NIL-typed entities. If the similarity between an item and a
clusters centroid is above a fixed threshold, the item is added
2A place-holder resource for unknown subjects.
to the cluster with the highest similarity. If no current
cluster can be found with a similarity above the threshold, a new
cluster for the item is then created. The choice of threshold
was empirically determined.
      </p>
    </sec>
    <sec id="sec-7">
      <title>3. IMPLEMENTATION</title>
      <p>Kanopy4Tweets has two different pipelines as shown in
Figure 1. The first pipeline is used during a one-time initial
off-line processing, while the other is used during the normal
on-line processing of input Tweets.</p>
      <sec id="sec-7-1">
        <title>Off-line Pipeline.</title>
        <p>As seen in Figure 1, the off-line pipeline starts with a list
of input datasets to create a single HDT file. The
number of datasets depends on the context of the task. In our
case, we selected a small number of datasets that are mostly
composed by text but we discarded those containing RDF
literals. Furthermore, each output RDF triple is filtered in
order to decide whether it should be included for indexing
or not. For example, titles, redirections and disambiguation
links are among the key properties considered.</p>
        <p>One fundamental resource property used is the short
abstract. For this attribute, we use our NER service in
NORMAL mode to extract named entities to be used for
indexing. On the other hand, the HDT file is also the input for
the graph building. As mentioned in Section 2.2, this graph
contains all the DBpedia resources that are indexed.</p>
        <p>Both processes, the index and graph creation, are slow
and usually take a few hours to complete. However the
offline pipeline is only required to run if the knowledge base
is modified. For the indexing engine we use Elastic 3 and
for handling the graph we use Neo4j 4. Both solutions offer
high performance and robustness.</p>
      </sec>
      <sec id="sec-7-2">
        <title>On-line Pipeline.</title>
        <p>The on-line pipeline is the main process that reads an
input TSV file, extracts a list of Tweets and generates an
ouput TSV file with the found linked named entities, all as
shown in Figure 1. Each input Tweet is sent to our NER
service in TWITTER mode and the returned list of named
entities are labelled according to their function of in the text.
Next, each named entity is used to search the index and a
list of candidates is generated. Later, the Tweet is sent to
the disambiguation service that determines which candidate
DBpedia resources are best suited for the Tweet and named
entity. If the link to an entity can not be determined, the
named entity is goes to the NIL clustering component where
it assigned a numbered NIL cluster.</p>
      </sec>
      <sec id="sec-7-3">
        <title>NER Component.</title>
        <p>Regardless of the NER operation mode (which is defined
per instance), the REST API exposes a single POST method
for entity extraction from text. This method accepts an
array of texts to process and returns an array of the same
texts including a per-text array of found named entities.
These entities returned contain the position indices in the
text where they are located, their class and any meta-data
that the GATE pipeline identified, i.e. first and last names
for a Person class or additional data from a gazetteer for
Locations, among others. This meta-data can be later used to</p>
        <sec id="sec-7-3-1">
          <title>3http://www.elastic.co 4http://neo4j.com</title>
          <p>refine and/or further disambiguate the initially found named
entities. The returned entities classes belong to the set of
annotations available in the TwitIE and ANNIE pipelines:
Hashtag, UserID, URL, Address, Date, Identifier,
Location, Money, Organization, Percent, Person and Phone.
When operating in NORMAL mode (using ANNIE), the
Hashtag, UserID and URL classes are never returned.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>RESULTS AND CONCLUSION</title>
      <p>We evaluated Kanopy4Tweets using the NEEL 2016
dev and training datasets. The results for each dataset
are shown in the table 1. The three measures used to
evaluate our system are: i) Strong-typed Mention Match
(SMM) is a micro-averaged evaluation of entity mentions
including the entity offset and type, ii) Strong Link Match
(SLM) is a micro-averaged evaluation of links, iii)
Mention Ceaf (MC) is based on a one-to-one alignment
between system and gold entity clusters.</p>
      <p>We presented Kanopy4Tweets, a system for NEEL of
Twitter data. Our approach uses Kanopy, an unsupervised
system that exploits the graph structure of DBpedia in
order to disambiguate a list of candidate resources for named
entities. Furthermore, our system implements a
hierarchical clustering approach for grouping unlinked named entities
according to their textual similarity.</p>
      <p>Our results reported a relatively poor performance,
however we believe this is mostly because of the small number
of entities found in the Tweets and the hardness of lack of
context in Twitter data. In addition, hashtags (words used
by users to tag their Tweets) and user mentions require
further special considerations in the NER phase. Finally, we
want to investigate better approaches for traversing the
disambiguation graph.
5.</p>
    </sec>
    <sec id="sec-9">
      <title>ACKNOWLEGMENT</title>
      <p>This publication has emanated from research conducted
with the financial support of Science Foundation Ireland
(SFI) under Grant Numbers SFI/12/RC/2289 and 14/TIDA
/2419, and National University of Ireland Galway under the
Hardiman Scholarship.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Arias</surname>
          </string-name>
          et al.
          <article-title>Hdt-it: Storing, sharing and visualizing huge rdf datasets</article-title>
          .
          <source>In 10th International Semantic Web Conference (ISWC</source>
          <year>2011</year>
          ),
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>K.</given-names>
            <surname>Bontcheva</surname>
          </string-name>
          et al.
          <article-title>Twitie: An open-source information extraction pipeline for microblog text</article-title>
          .
          <source>In RANLP</source>
          , pages
          <fpage>83</fpage>
          -
          <lpage>90</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>W.</given-names>
            <surname>Cohen</surname>
          </string-name>
          et al.
          <article-title>A comparison of string metrics for matching names and records</article-title>
          .
          <source>In Kdd workshop on data cleaning and object consolidation</source>
          , volume
          <volume>3</volume>
          , pages
          <fpage>73</fpage>
          -
          <lpage>78</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>H.</given-names>
            <surname>Cunningham</surname>
          </string-name>
          . Gate, a
          <article-title>general architecture for text engineering</article-title>
          .
          <source>Computers and the Humanities</source>
          ,
          <volume>36</volume>
          (
          <issue>2</issue>
          ):
          <fpage>223</fpage>
          -
          <lpage>254</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>L.</given-names>
            <surname>Derczynski</surname>
          </string-name>
          et al.
          <article-title>Microblog-genre noise and impact on semantic annotation accuracy</article-title>
          .
          <source>In Proceedings of the 24th ACM Conference on Hypertext and Social Media</source>
          , pages
          <fpage>21</fpage>
          -
          <lpage>30</lpage>
          . ACM,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Finkel</surname>
          </string-name>
          et al.
          <article-title>Incorporating non-local information into information extraction systems by gibbs sampling</article-title>
          .
          <source>In Proceedings of the 43rd Annual Meeting on Association for Computational Linguistics</source>
          , pages
          <fpage>363</fpage>
          -
          <lpage>370</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>I.</surname>
          </string-name>
          <article-title>Hulpu¸s et al</article-title>
          .
          <article-title>Kanopy: Analysing the semantic network around document topics</article-title>
          .
          <source>In Machine Learning and Knowledge Discovery in Databases</source>
          , pages
          <fpage>677</fpage>
          -
          <lpage>680</lpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>I.</surname>
          </string-name>
          <article-title>Hulpu¸s et al</article-title>
          .
          <source>The Semantic Web - ISWC</source>
          <year>2015</year>
          ,
          <article-title>Proceedings, chapter Path-Based Semantic Relatedness on Linked Data and Its Use to Word and Entity Disambiguation</article-title>
          , pages
          <fpage>442</fpage>
          -
          <lpage>457</lpage>
          .
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ritter</surname>
          </string-name>
          et al.
          <article-title>Open domain event extraction from twitter</article-title>
          .
          <source>In Proceedings of the 18th ACM SIGKDD international conference on Knowledge discovery and data mining</source>
          , pages
          <fpage>1104</fpage>
          -
          <lpage>1112</lpage>
          . ACM,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>G.</given-names>
            <surname>Rizzo</surname>
          </string-name>
          , M. van
          <string-name>
            <surname>Erp</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Plu</surname>
            , and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Troncy</surname>
          </string-name>
          .
          <article-title>Making Sense of Microposts (#Microposts2016) Named Entity rEcognition and Linking (NEEL) Challenge</article-title>
          .
          <source>In 6th Workshop on Making Sense of Microposts (#Microposts2016)</source>
          , pages
          <fpage>50</fpage>
          -
          <lpage>59</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>