AMI Extractor
- Extraction de coordonnées GIS
- Extraction automatique de metadonnées
L'intégration des données géographiques au système amiEI se fait comme suit:
- Déclarer dans le fichier albert.conf une nouvelle base de connaissance (ici esrikdb)
dédiée aux données géographiques
# Base de connaissance GIS
[KnowledgeDB]
dbname esrikdb
dbhost localhost
dbpasswd marcel
dbuser albert
dbport 0
dbsock /var/lib/mysql/mysql.sock
dbscript KBASE.sql
Créer la base connaissances GIS
./albToolkit -b esrikdb create_base -u root
Préparation de l'index AMI qui va recevoir les données GIS
On considère ici que les données GIS vont être intégrées dans l'index de
publication (amiei_index_published), pour être ensuite exploitées dans le module d'analyse.
Mais n'importe quel autre index AMI peut être utilisé!
- Déclarer les clés nécessaires à l'aide du script d'installation comme suit:
./albScript -f extract/install.js +g +b amiei_index_published
Installer un post filtre (dans le descripteur des documents diffusés/publiés) pour extraire les coordonnes GIS
<index
name="amiei"
server="sync://amiei"
mode ="all">
<Postfilter><Script>
load ('extract/gis/gis.js'); process(document);
</Script></Postfilter>
</index>
Ce filtre permet d'extraire à partir de chaque document, un ensemble de lieux géographiques,
avec pour chaque lieu (meta ami:loc*) ces coordonnées géographiques longitude (ami:x*)
et latitude (ami:y*).
Activer les système GIS dans amiEI (Administrer->Installer et configurer->Configurer->Gestion des connaissances)
En particulier,
- Activer la cartographie géographique (AMI_KDBM_GIS)
- Selectionner la base de connaissance esrikdb (AMI_KDBM_GIS_DB)
- Configurer votre acces aus services ArcWeb (login/pass) ou indiquer l'adresse d'un serveur local ArcIMS
Définir la liste des lieux géographiques avec leur coordonnées GIS
Il s'agit de définir un ensemble de lieux avec toutes leur dénominations possibles, ainsi que les coordonnées
longitude et latitude de chaque lieu.
- Aller dans la section Administrer->Gestion des connaissances->Gestion des données GIS
- Utiliser les outils d'ajout de nouveaux élements
- Vous pouvez initialiser vos données à partir d'un des dictionnaires (*.gis.dic) fournis dans $ALBERT/scripts/extract/gis/data
Pour celà, selectionner le dictionnaire dans le formulaire d'ajout puis valider.
Tester
- Editer un fichier test.txt contenant des noms de lieux géographiques connus du système
# fichier test.txt
Ceci est un document test!!
Voici quelques lieux à essayer d'extraire: algeria, germany, france
Tester l'extraction
./albScript -f extract/gis/gis.js +f file://tmp/test.txt
Le résultat doit contenir des coordonnées géographiques comme suit:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<albertxml>
<ami:x1>201.659626000000000</ami:x1>
<ami:y1>228.033123000000000</ami:y1>
<ami:loc1>algeria</ami:loc1>
<ami:x2>210.449408500000000</ami:x2>
<ami:y2>251.165622499999980</ami:y2>
<ami:loc2>germany</ami:loc2>
<ami:x3>202.385972000000000</ami:x3>
<ami:y3>246.228017500000000</ami:y3>
<ami:loc3>france</ami:loc3>
</albertxml>
- Tous les scripts JS relatifs à l'installation et au fonctionnement de AMI extractor sont dans
$ALBERT/scripts/extract
- Vérifier la présence du fichier $ALBERT/conf/ext_stopwords.txt, autrement le récupérer depuis
le dossier racine de amiEI ./Ami/install/conf/ext_stopwords.txt
- Installer un post filtre dans le(s) descripteur(s) des sources des documents à alimenter
en metadonnées.
Par exemple, installer l'extractor pour les documents publiés:
<index
name="amiei"
server="sync://amiei"
mode ="all">
<Postfilter><Script>
load ('extract/extractor.js'); process(document);
</Script></Postfilter>
</index>
Déclarer dans le fichier de configuration, les 2 bases de connaissances utiles à l'extractor.
Voici un exemple dans le cas de l'application Appel d'offres (offrekdb et offrekdb_learn):
# kdb Appel d'offres, Special Parsing
[KnowledgeDB]
dbname offrekdb
dbhost localhost
dbpasswd marcel
dbuser albert
dbport 0
dbsock /var/lib/mysql/mysql.sock
dbscript KBASE.sql
# kdb Appel d'offres, Special Learning
[KnowledgeDB]
dbname offrekdb_learn
dbhost localhost
dbpasswd marcel
dbuser albert
dbport 0
dbsock /var/lib/mysql/mysql.sock
dbscript KBASE.sql
Renseigner les noms des bases de connaisances dans le fichier de configuration JS
(conf/ami_config.js)
Cette étape est inutile si vos bases de connaissances s'appellent offrekdb
et offrekdb_learn
var AMI_EXTRACT_KDB = 'offrekdb'
var AMI_EXTRACT_KDB_LEARN = 'offrekdb_learn'
Créer les bases de connaissances et initialiser le système
- Le script d'installation est le suivant, faites '?' pour obtenir de l'aide
./albScript -f extract/install.js ?
- Création des bases et initialisation avec des données génériques.
./albScript -f extract/install.js +v +c +d ../scripts/extract/data 2>/dev/null
L'option +c permet de créer les bases de connaissances.
L'option +d permet d'initialiser les bases à partir de dictionnaires standards
(prénoms, nom de jour, mois, ... fournis dans $ALBERT/scripts/extract/data
- Rajout de données spécifiques.
Des dictionnaires sont fournis pour l'application 'Appels d'offres'. Pour une nouvelle application,
des données adéquates doivent être crées!
./albScript -f extract/install.js +v +u +d ../scripts/extract/ao/data 2>/dev/null
L'option +u indique le mode 'update' (les bases ne sont pas reinitialisées).
Mise à jour du système
Les données spécifiques peuvent évoluer pour optimiser l'extractor au fur et à mesure que
de nouveaux types de contenus sont traités.
Dans le cas de l'application 'Appel d'offres' par exemple, les données spécifiques sont dans
$ALPBERT/scripts/extract/ao/data/.
Toute modification de ces données doit être suivie par les commandes de mise à jour suivante
(ne pas oublier d'archiver le dossier AVANT DE LE MODIFIER!):
./albScript -f extract/install.js +d ../scripts/extract/data
./albScript -f extract/install.js +u +d ../scripts/extract/ao/data
Ceci permet de vider les bases de connaissances et de les regénérer avec les nouvelles données.
Tester
- Editer un fichier test.txt
Date de publication: 18/10/2006
Limite de réception des offres: 02/11/2006 à 12h00
Objet: Mise à niveau de l'autocommutateur A4400 du Centre
Hospitalier de Dreux
Organisme émetteur: CH de Dreux BP 69 28102 dreux;
Télephone: 0237515326; Fax: ; E-mail: pdaunay@ch-dreux.fr
...
Tester l'extraction
./albScript -f extract/extractor.js +f file://tmp/test.txt
Le résultat doit contenir des metadonnées comme suit:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<albertxml>
<ao_date_parution>18-10-2006 00:00</ao_date_parution>
<ao_objet_marche>Mise à niveau de l'autocommutateur A4400 du Centre Hospitalier de Dreux</ao_objet_marche>
<ao_date_limite>02-11-2006 12:00</ao_date_limite>
<ao_organisme_emetteur>émetteur CH de Dreux BP 69 28102 dreux Télephone 0237515326 Fax E mail pdaunay ch dreux.fr</ao_organisme_emetteur>
<ao_organisme_code>28102</ao_organisme_code>
<ao_organisme_lieu>Dreux</ao_organisme_lieu>
<ao_departement>28</ao_departement>
<ao_lieu_execution>Mise à niveau de l'autocommutateur A4400 du Centre Hospitalier de Dreux</ao_lieu_execution>
<ao_ville_execution>Dreux</ao_ville_execution>
<ao_infos>émetteur CH de Dreux BP 69 28102 dreux Télephone 0237515326 Fax E mail pdaunay ch dreux.fr</ao_infos>
<ao_contact_tel>0237515326</ao_contact_tel>
</albertxml>
Statistiques
Il est utile de disposer de statistiques sur le taux de reussite lors de l'extraction des différentes
metadonnées. Ces statistiques peuvent être calculés sur un index donné comme suit:
./albScript -f extract/install.js +s +b amiei_index_published
fournit le résultat suivant (2 documents indexés)
Total docs processed : 2
--> ao_date_limite (2) ==> 100%
--> ao_date_parution (2) ==> 100%
--> ao_departement (2) ==> 100%
--> ao_dept_execution (1) ==> 50%
--> ao_infos (2) ==> 100%
--> ao_lieu_execution (2) ==> 100%
--> ao_mode_passation (1) ==> 50%
--> ao_objet_marche (2) ==> 100%
--> ao_organisme_code (2) ==> 100%
--> ao_organisme_emetteur (2) ==> 100%
--> ao_organisme_fax (1) ==> 50%
--> ao_organisme_lieu (2) ==> 100%
--> ao_organisme_nom (1) ==> 50%
--> ao_ville_execution (2) ==> 100%
--> ao_contact_tel (1) ==> 50%
Le calcul de statistiques se fait à partir du dump (albTookit data) de tout l'index.
Il faut éviter de le lancer pour un gros index. Il est destiné essentiellement à aider au
paramètrage des données pour les différentes sources de documents.
Création/Modification de données spécifiques
A faire ... Doc à venir ...
...
- Format des tags
start[niveau]_nomtag[TAB]phrase delimeteur, niveau = 0,1,2,3, ...
- modifier /scripts/extract/ao/data/tags.dic
- maj (autre option) => kdb manager
- definitions de delimiteurs de tags => offrekdb
- autres => offrekdb_learn
- $ALBERTscripts/extract/ao/data/tags.inc.js => sont declares les tags
qui nous interessent (Ne modifier que si eveolution => Nouveau tag)
- autres infos
Dicos: location.dic/organization.dic dans /scripts/extract/data/entity => maj
Dico : ao_mode_passation.dic dans /opt/albert/scripts/extract/ao/data/entity => maj