Etikettarkiv: textanalys

OpenCalais – Analys av text

Detta är inlägg nummer två i en serie av blogginlägg där jag testar olika API:er för att automatiskt tagga text.

Första gången jag hörde talas om OpenCalais var under det projekt som Martin Källström och gänget från Twingly genomförde under det första 24hbc (vi delade bord).

Min generella uppfattning är att OpenCalais verkar ha fler år på nacken än AlchemyAPI och vara mer genomtestat.

Efter att införskaffat en API-nyckel så laddar jag hem den PHP-klass som Dan Grossman har skrivit. Jag hackar om den exempelkod som följer med (octest.php) att se ut enligt följande:

<?php

 require('opencalais.php');
 $oc = new OpenCalais("xxx"); // Byt ut nyckeln

 $entities = $oc->getEntities(file_get_contents("/home/je/exempeltext.txt"));

 foreach ($entities as $type => $values) {
   foreach ($values as $entity) {
     print "$entity, ";
   }
 }
 print "\n";

?>

Nyckelorden som kommer fram ur texten är följande:

US National Institute of Standards and Technology, California, PALO ALTO, cellular telephone, www.cellcrypt.com, gateway applications, US National Institute of Standards and Technology,

Här ser vi att antalet hittade taggar är 7 till antalet istället för 14 som AlchemyAPI visar. OpenCalais verkar missa intressanta taggar såsom ”FIPS 140-2” och AlchemyAPI verkar missa ”US National Institute of Standards and Technology”.

Testa även deras viewer som visar lite mer vad de är kapabla till. Samt så tillhandahåller även de ett WordPress-plugin.

AlchemyAPI – Analys av textmassor

I vissa av mina projekt så är jag i behov av att automatiskt tagga upp text. Och efter att ha testat ett antal olika API:er som tillhandahåller detta så tänkte jag dela med mig av mina erfarenheter i form av en serie blogginlägg.

Först ut att testas är AlchemyAPI som verkar vara det mest avancerade när jag tittar på deras hemsida ”AlchemyAPI utilizes machine learning and natural language parsing technology, analyzing web or text-based content to identify people, organizations, locations, and other information!”.

Nåväl, först och främst så tar jag en exempeltext som jag avser att jämföra mellan de tre API:erna (hämtad från PRNewsWire.com).

Efter att införskaffat en API-nyckel från AlchemyAPI så skriver jag om den exempelkod som hittas i examples/keywords.php till att se ut enligt nedan. Exempelkoden kan hittas i deras SDK.

<?php

 // Load the AlchemyAPI module code.
 include "../module/AlchemyAPI_CURL.php";

 // Create an AlchemyAPI object.
 $alchemyObj = new AlchemyAPI();

 // Load the API key from disk.
 $alchemyObj->loadAPIKey("api_key.txt");

 $xml = $alchemyObj->TextGetRankedKeywords(file_get_contents("/home/je/exempeltext.txt"));
 $result = simplexml_load_string($xml);

 foreach($result->keywords->keyword as $key) {
     echo $key->text.", ";
 }

 echo "\n";
?>

Nyckelorden som kommer fram ur texten är följande:

FIPS 140-2, fips 140-2 validation, secure mobile voice, voice calling security, Federal Information Processing Standard, Secure Voice, Cellcrypt products, Cellcrypt’s cell phone, certificate provides assurance, PALO ALTO, mobile phone, cryptographic module, highest standard, gateway applications

Här hämtar du hem PHP SDK:

Testa även deras demo-sida som visar lite mer vad de är kapabla till. Samt så tillhandahåller de även ett WordPress-plugin.