Posts Tagged ‘Textalytics’

Recognizing entities in a text: not as easy as you might think!

12 diciembre, 2013 Deja un comentario

Entities recognition: the engineering problem

As in every engineering endeavor, when you face the problem of automating the identification of entities (proper names: people, places, organizations, etc.) mentioned in a particular text, you should look for the right balance between quality (in terms of precision and recall) and cost from the perspective of your goals. You may be tempted to compile a simple list of such entities and apply simple but straightforward pattern matching techniques to identify a predefined set of entities appearing “literally” in a particular piece of news, in a tweet or in a (transcribed) phone call. If this solution is enough for your purposes (you can achieve high precision at the cost of a low recall), it is clear that quality was not among your priorities. However… What if you can add a bit of excellence to your solution without technological burden for… free? If you are interested in this proposition, skip the following detailed technological discussion and go directly to the final section by clicking here.

Where difficulties come from?

Now, I will summarize some of the difficulties that may arise when designing an automatic system for “Named Entities Recognition” (NER, in short, in the technical papers). Difficulties may come from two fronts:

  • Do you deal with texts in several languages? Do you know the language of each text in advance?
  • What is the source of the documents or items of text that you have to manage? Do they come from a professional newsroom? Did you ingest them from OCR (Optical Character Recognition) or ASR (Automatic Speech Recognition) systems? Did you catch them with the API of your favorite social network?
  • Do your texts follow strict academic conventions regarding spelling and typography? (i.e. do you always deal with well-written text?)  Did users generate them with their limited and error-prone devices (smartphones)? Did second language speakers or learners produce them?

Designing the perfect NER system: the language nightmare

The previous questions end up in a set of complex challenges:

Eiffel Tower

Eiffel Tower

1. Translingual equivalence:
Problem: When you deal with multilingual content, you are interested in recognizing not language-dependent names, but entities that are designated differently in different languages.
Example: Eiffel Tower (EN), Tour Eiffel (FR) and Torre Eiffel (ES) refer to the very same object.
Solution: You need to use semantic processing to identify meanings, relative to a consistent, language-independent world model (e.g. using ontologies or referring to linked data sources).


Nelson Mandela

2. Intralingual or intratext equivalence:
Problem: For a particular language, texts usually refer to the same entities in different flavors (to avoid repetition, due to style considerations or communication purposes).
Example: Nelson Mandela, Dr. Mandela (depending on the context) and Madiba are recognized by English speakers as the same entity.
Solution: Again, in the general case, you need to link multiword strings (tokens) to meanings (representing real world objects or concepts).

3. Transliteration ambiguity:
Problem: translation of names between different alphabets.
Example: Gaddafi, Qaddafi, Qadhdhafi can refer to the same person.
Solution: It is always difficult to decide the strategy to attach a sense to an unknown word. Should you apply phonetic rules to find equivalents from Arabic or from Chinese? Expressing it otherwise: is the unknown word just a typo, a cognitive mistake, a spelling variant or even an intended transformation? Only when context information is available you can rely on specific disambiguation strategies. For example, if you know or you deduce that you are dealing with a well-written piece of news about Libya, you should surely try to find alternative transliterations from Arabic. This problem is usually treated at dictionary level, incorporating the most widespread variants of foreign names.

George Washington

George Washington

4. Homonyms disambiguation
Problem: Proper names have usually more than one bearer.
Example: Washington may refer to more or less known people (starting by George Washington), the state on the Pacific coast of the USA, the capital of the USA (Washington, D.C.) and quite a few other cities, institutions and installations in the same and other countries. It can even be a metonym for the Federal government of the United States.
Solution: Semantic and contextual clues are needed for proper disambiguation. Are there any other references to the same name (maybe in a more complete form) along the piece of text under scrutiny? Can semantic analysis tell us if we deal with a person (producing human actions) or a place (where things happen)? Can we establish with confidence a geographical context for the text? This could also lead to favorite particular interpretations.

5. Fuzzy recognition and disambiguation:
Problem: in the general case, how to deal with unknown words when you rely on (maybe huge) multilingual dictionaries plus (maybe smart) tokenizers and morphological analyzers?
Example: If you find in an English text the word “Genva”, should you better interpret it as Geneva (in French Genève) or Genoa (in Italian Genova).
Solution: the presence of unknown words is linked most of times to the source of the piece of text that you are analyzing. When the text has been typed with a keyboard, the writer may have failed to type the right keys. When the text comes from a scanned image through OCR, the result can be erroneous depending on image resolution, font type and size, etc. Something similar occurs when you get a text through ASR. The strategy to interpret correctly the unknown word (identifying the meaning intended by the author) implies using metrics for distance between the unknown word and other words that you can recognize as correct. In our example, if the text has been typed with a qwerty keyboard, it seems that the distance between Genva and Geneva involves a single deletion operation, while the distance between Genva and Genoa involves a single substitution using a letter that is quite far apart. So, using distance metrics, Geneva should be preferred. But contextual information is equally important for disambiguation. If our text includes mentions to places in Switzerland, or it can be established as the right geographical context, then Geneva gains chances. Otherwise, if the text is about Mediterranean cruises, Genoa seems to be the natural choice.

Meaning as a Service


Textalytics: semantic technology at your fingertips

Systems or platforms for Content Management (CMS), Customer Relationship Management (CRM), Business Intelligence (BI) or Market Surveillance incorporate information retrieval functionality allowing the search of individual tokens (typically alphanumeric strings) or literals in unstructured data. However, they are very limited in terms of recognition of semantic elements (entities, concepts, relationships, topics, etc.) This kind of text analytics is very useful not only for indexing and search purposes, but also for content enrichment. The final aim of these processes is adding value in terms of higher visibility and findability (e.g. for SEO purposes), content linkage and recommendation (related contents), ads placing (contextual advertisement), customer experience analysis (Voice of Customer, VoC analytics), social media analysis (reputation analysis), etc.

To facilitate the integration of semantic functionality in any software application, Daedalus opened its multilingual semantic APIs to the community through the cloud-based service Textalytics. On the client side, you can send a call (petition) to our service in order to process one item of text (a piece of news, a tweet, etc.): what you get is the result of our processing in an interchange format (XML or JSON). Textalytics APIs offer natural language processing functionality in two flavors:
  • Core APIs: one API call for each single process (extraction of entities, text classification, spell checking, sentiment analysis, content moderation, etc.) Fine tuning is achieved through multiple parameterization. Besides natural language core processing, audio transcription to text is also available, as well as auxiliary functions. Auxiliary APIs are useful, for example, to link entities with open linked data repositories, as DBpedia/Wikipedia, or to guess crucial demographic features (type, gender, age) for a given social media user.
  • Vertical APIs (Media Analysis, Semantic Publishing): one API call provides highly aggregated results (e.g. extraction of entities and topics, plus classification, plus sentiment analysis…), convenient for standard use in a vertical market (media industry, publishing industry…)

To end this post, let me stress other benefits of selecting Textalytics for semantic processing:

  • SDKs (Java, Python, PHP and Visual Basic) are offered for quick integration. Software developers take not more than half an hour to read the documentation and integrate our semantic capabilities in any environment.
  • You can register in Textalytics, subscribe to the API or APIs of your choice, get your personal key and send as many petitions as you want for free, up to a maximum of 500.000 words processed per month. For research, academic or commercial usage. No matter.
  • If you need processing higher volumes of text (exceeding the free basic plan) or in case you require launching more than five API calls per second, you can subscribe at affordable prices. No long-term commitment. Pay per month. Check out our pricing plans.

Curious? Try our demo!
Interested?  Contact us!
Believer? Follow us!

José C. González (@jc_gonzalez)

Entendiendo la TV Social con tecnologías de Análisis Semántico y Big Data

25 noviembre, 2013 Deja un comentario

Recientemente hemos participado en la conferencia Big Data Spain con una charla titulada “Real time semantic search engine for social TV streams”. En esta charla resumimos nuestra experiencia en el área de TV Social, donde estamos combinando tecnologías de análisis semántico y de procesamiento de flujos de datos (streams) en tiempo real para entender las redes sociales. 

La TV Social es un fenómeno en claro crecimiento ya que cada vez es más frecuente el uso de redes sociales mientras vemos la televisión. Por ejemplo, Twitter ya reportaba el año pasado que en Reino Unido más de un tercio de todos los comentarios durante el primetime eran sobre lo que pasaba en la pantalla del televisor. Hace semanas, Facebook reivindicaba su lugar en la TV social afirmando que el volumen de comentarios privados sobre TV en su plataforma era 5 veces mayor. Esta red social ha empezado también a ofrecer hashtags e incluso una nueva API, Keywords Insight, para que algunos socios tengan acceso a estadísticas agregadas de las conversaciones dentro de los muros de Facebook.

A medida que el número de usuarios que acaban comentando su programa favorito de TV en las redes sociales con amigos o extraños, las cadenas han empezado a hacer uso de estas herramientas para participar en la conversación. Durante el último año se ha incrementado el número de programas que hacen uso de hashtags oficiales, a veces incluso varios durante una sola emisión. Más allá de la búsqueda del trending topic, los que con mayor éxito han experimentado fomentan incluso la participación de presentadores o actores durante la emisión del programa. En España, “Salvados” o “Pesadilla en la Cocina” son ejemplo de lo primero y la serie “Isabel” para el caso de los actores.   

Aunque no hay nada nuevo en el hecho de socializar alrededor del contenido de la tele, la posibilidad de medir y de destilar estos comentarios sí que es característico del nuevo contexto. Además, esta conversación no se produce al día siguiente sino que su impacto es inmediato. Todo esto se suma para abrir un nuevo abanico de posibilidades para espectadores, radiodifusores y las grandes marcas. Los usuarios han encendido la mecha de la TV Social ya que les conecta con amigos y el resto de la audiencia.  Es a la vez una forma de sentirse parte del programa y al mismo tiempo de involucrarse más. Por tanto, las herramientas que faciliten organizar y comprender la conversación son de especial interés para el espectador social. Para el resto de espectadores, incluso para aquellos que solo participan leyendo, es una forma de generar tanto recomendaciones sociales. Otro uso interesante es que analizar la conversación social permite contextualizar contenido relevante y relacionado con el programa como información sobre los actores, personajes o cualquier otro concepto del que se hable en la pantalla grande.

Por otro lado, comprender la conversación en torno a un programa es de tremenda utilidad para los canales de TV y las marcas que los financian. Las productoras y cadenas pueden medir las preferencias de sus espectadores y los de la competencia, y además en tiempo real, según se está emitiendo. Está información cualitativa permite hacer una lectura mucho más informada de los datos cuantitativos de audiencia. Llegar a los consumidores adecuados y medir el impacto de las campañas de publicidad son solo dos ejemplos de lo que las marcas buscan en la TV social. Por último, no solo se trata de escuchar pasivamente, tanto los programas como los anuncios van a ser cada vez más interactivos y a buscar la participación de los espectadores mediante las redes sociales.  

En nuestra charla, describimos un sistema que combina análisis semántico y tecnologías de big data como una herramienta para sacar partido de las redes sociales. El sistema combina varios componentes de procesamiento de lenguaje natural de Textalytics API junto a una base de datos semi-estructurada, SenseiDB, para proporcionar visualizaciones interactivas de los comentarios de TV sobre la base de la búsqueda semántica, la búsqueda por facetas y un sistemas de analítica en tiempo real.


Mediante el uso de Textalytics API somos capaces de extraer información relevante para la TV social como el sentimiento acerca de una entidad (un programa, actor o deportista) Además, el reconocimiento de entidades y la extracción de información temática nos permite producir trending topics dentro de un programa con una alta correlación con lo que ocurre en pantalla. Estos temas unidos a las facetas online proporcionadas por SenseiDB funcionan como una manera efectiva de organizar la conversación al vuelo. Otras funcionalidades como el reconocimiento de idioma o la clasificación de texto cumplen un papel importante pero oculto y nos ayudan a filtrar el flujo de comentarios de contenido ruidoso.  

El segundo de los componentes esenciales del sistema es SenseiDB, una base de datos semi-estructurada de código abierto que permite ingerir streams y buscarlos en tiempo real, es decir, con baja latencia tanto en la indexación como en la búsqueda. SenseiDB incluye un gran número de tipos de facetas que permiten organizar los metadatos semánticos que extraemos con Textalytics. Con la ayuda de facetas de tipo histograma o rango se pueden realizar incluso ciertas tareas de analítica que incluyen tipos de datos complejos como el tiempo. Además, una de las características más interesantes es que incluye un lenguaje de consulta sencillo e intuitivo, BQL, que es de gran utilidad para el desarrollo iterativo de visualizaciones.

Si te ha parecido interesante, te animo a que le eches un vistazo a la presentación o incluso al vídeo del evento.

Semantic Analysis and Big Data to understand Social TV

25 noviembre, 2013 1 comentario

We recently participated in the Big Data Spain conference with a talk entitled “Real time semantic search engine for social TV streams”. This talk describes our ongoing experiments on Social TV and combines our most recent developments on using semantic analysis on social networks and dealing with real-time streams of data.

Social TV, which exploded with the use of social networks while watching TV programs is a growing and exciting phenomenon. Twitter reported that more than a third of their firehose in the primetime is discussing TV (at least in the UK) while Facebook claimed 5 times more comments behind his private wall. Recently Facebook also started to offer hashtags and the Keywords Insight API for selected partners as a mean to offer aggregated statistics on Social TV conversations inside the wall.

As more users have turned into social networks to comment with friends and other viewers, broadcasters have looked into ways to be part of the conversation. They use official hashtags, let actors and anchors to tweet live and even start to offer companion apps with social share functionalities.

While the concept of socializing around TV is not new, the possibility to measure and distill the information around these interactions opens up brand new possibilities for users, broadcasters and brands alike.  Interest of users already fueled Social TV as it fulfills their need to start conversations with friends, other viewers and the aired program. Chatter around TV programs may help to recommend other programs or to serve contextually relevant information about actors, characters or whatever appears in TV.  Moreover, better ways to access and organize public conversations will drive new users into a TV program and engage current ones.

On the other hand, understanding the global conversation about a program is definitely useful to acquire insights for broadcasters and brands. Broadcasters and TV producers may measure their viewers preferences and reactions or their competence and acquire complementary information beyond plain audience numbers. Brands are also interested in finding the most appropriate programs to reach their target users as well as understand the impact and acceptance of their ads. Finally, new TV and ad formats are already being created based on interaction and participation, which again bolster engagement.

In our talk, we describe a system that combines natural language processing components from our Textalytics API and a scalable semi-structured database/search engine, SenseiDB, to provide semantic and faceted search, real-time analytics and support visualizations for this kind of applications.

Using Textalytics API we are able to include interesting features for Social TV like analyzing the sentiment around an entity (a program, actor or sportsperson). Besides, entity recognition and topic extraction allow us to produce trending topics for a program that correlate well with whatever happens on-screen. They work as an effective form to organize the conversation in real-time when combined with the online facets provided by SenseiDB. Other functionalities like language recognition and text classification help us to clean the noisy streams of comments.

SenseiDB is the second pillar of our system. A semi-structured distributed database that helps us to ingest streams and made them available for search in real-time with low query and indexing times. It includes a large number of facet types that enable us to use navigation using a range of semantic information. With the help of histogram and range facets it could even be overused for simple analytics tasks. It is well rounded with a simple and elegant query language, BQL, which help us to boost the development of visualizations on top.

If you find it interesting, check out our presentation for more detail or even the video of the event.

Sensor Ciudadano: El ciudadano como sensor de la ciudad del futuro

Sensor ciudadanoUna de nuestras líneas de trabajo más prometedoras en el proyecto Ciudad2020 (Programa INNPRONTA, financiado por el CDTI) se centra en el concepto que hemos bautizado como Sensor Ciudadano: el registro de eventos en la relación del ciudadano con su municipio.

Mediante la aplicación de las tecnologías semánticas de Textalytics, podemos analizar en detalle la voz del ciudadano, extrayendo información heterogénea de alto nivel, muy descriptiva y de gran valor añadido, que sirve para modelar el comportamiento urbano del ciudadano y su relación con la ciudad del futuro. De esta forma el ciudadano se convierte en un sensor más integrado en la red de sensores de los sistemas de la ciudad.

El Sensor Ciudadano puede registrarse de distintas formas.

  • Teléfono móvil.- Por ejemplo, para detectar contaminación acústica, el usuario podría arrancar una aplicación en su smartphone para registrar el nivel de ruido y enviarlo a los servidores de la ciudad. Este gesto nos dará un mapa de los focos de ruido más destacables de la ciudad, que evoluciona en el tiempo (obras por las mañanas, fiestas los fines de semana…).
  • Eventos del ciudadano.- Por ejemplo, el usuario pica el billete de tren para dirigirse a su trabajo. Esto, agregado a los eventos generados por el resto de usuarios que usen el tren, nos dará una idea de la densidad de viajeros que usan el tren para ir al trabajo cada mañana y qué trayecto hacen.
  • Redes sociales.- Nuestros sistemas pueden analizar el flujo de tweets en un área geográfica para saber de qué hablan los usuarios, y si es algo relevante (un accidente de coche que provoca retenciones, un incendio, un festival de música…) podemos usar estos datos para elaborar un modelo preciso con predicciones mucho más ajustadas. También podemos recopilar la posición u opinión de los ciudadanos respecto a las políticas de la administración local (por ejemplo, disminución del consumo en climatización en transporte público).

Como trabajos preliminares, hemos construido una ontología que define las diferentes dimensiones hacia las que se va a orientar el análisis semántico. Actualmente estamos recogiendo información de Twitter, y en concreto vamos a intentar identificar en cada tweet la ubicación en la que se encuentra el usuario (un edificio público como ayuntamiento u hospital, parques, medio de transporte, lugar de ocio o de trabajo, etc.), el concepto (servicios de la ciudad, suministros, señalización, etc.), o evento específico al que se refiera (conciertos o eventos deportivos, o bien situaciones problemáticas como averías, atascos, accidentes, incendios), así como el área temática del mensaje (sobre economía, política, calidad de vida, turismo, deporte, interés social…). Este análisis se complementa con un análisis de sentimientos para obtener la polaridad del mensaje (muy positiva, positiva, negativa, muy negativa y neutra).


El objetivo es combinar el análisis semántico con la geoposición del usuario para intentar obtener resultados interesantes sobre lo que hablan y opinan los ciudadanos, en tiempo real, a modo de consola de gestión de la ciudad. Este tipo de análisis podría servir, por ejemplo, para detección temprana de situaciones de riesgo como accidentes o averías de suministros en la vía pública, peleas en zonas de ocio, situación (limpieza, seguridad, servicios) de los parques públicos o playas, etc.

Para este análisis usamos nuestras API de detección de idioma (podemos tratar español, inglés, francés, italiano, portugués y catalán), extracción de entidades, clasificación automática, análisis de sentimientos y clasificación demográfica de usuarios, incluidas en Textalytics Core.


Actualmente estamos investigando en el análisis temporal, para intentar detectar tendencias de comportamiento y opinión de los ciudadanos a lo largo del periodo de tiempo de análisis. Este análisis consiste en comparar la situación de la ciudad en diferentes instantes de tiempo para analizar e interpretar las diferencias, que serán debidas bien a la vida cotidiana de la ciudad (por ejemplo, el incremento natural de la actividad ciudadana según avanza la mañana) o bien a situaciones inesperadas que se quieren predecir.

Puede encontrar más información, documentación y demostradores, en nuestro sitio web: Si tiene alguna pregunta o comentario, no dude en contactar con nosotros.

A %d blogueros les gusta esto: