AbstractExtractor
De Dbpedia.fr.
(réorganisation du plan) |
(→Importer les résumés d'autres langues) |
||
Ligne 87 : | Ligne 87 : | ||
=== Importer les résumés d'autres langues === | === Importer les résumés d'autres langues === | ||
+ | |||
+ | DBpedia.org contient les résumés dans de nombreuses langues, Ces résumés sont associés aux ressources de DBpedia.org mais on peut les importer modulo les liens d'équivalence avec les ressources de DBpedia en français. Pour importer les résumés d'une langue dont le code est ''<nowiki>[xx]</nowiki>'' (eg. ''fr'' pour le français, ''de'' pour l'allemand ...). | ||
+ | |||
+ | |||
+ | ==== Préparer les liens owl:sameAs fr-en ==== | ||
+ | |||
+ | Deux possibilités ! | ||
+ | * Utiliser le fichier ''frwiki-[AAAAMMJJ]-interlanguage-links.ttl.gz'' généré lors de l'extraction. Attention, les adresses des ressources de DBpedia.org doivent être dans le même format que pour les dumps de résumés que l'on va télécharger. A priori, il faut donc que les ressources de DBpedia fr soient identifiées par des URIs et celles de DBpedia en par des URIs. | ||
+ | $ gunzip -c frwiki-[AAAAMMJJ]-interlanguage-links.ttl.gz | grep "http://dbpedia" > same_as_fr_en.nt | ||
+ | |||
+ | * Importer ces liens depuis DBpedia.org : | ||
+ | $ wget http://downloads.dbpedia.org/current/fr/interlanguage_links_same_as_fr.nt.bz2 | ||
+ | $ bzcat interlanguage_links_same_as_fr.nt.bz2 | grep "http://dbpedia" > same_as_fr_en.nt | ||
+ | |||
+ | |||
+ | Ensuite trier le résultat selon les ressources de DBpedia en : | ||
+ | $ export LC_ALL=C (sinon les '_' sont ignorés lors du tri) | ||
+ | $ grep -v "^#" same_as_fr_en.nt | sort -k 3 > same_as_fr_en_sorted.nt | ||
+ | |||
+ | |||
+ | ==== Préparer les résumés de la langue voulue ==== | ||
+ | * Importer les résumés associés aux ressources DBpedia.org : | ||
+ | $ wget http://downloads.dbpedia.org/current/[xx]/long_abstracts_en_uris_[xx].nt.bz2 | ||
+ | $ wget http://downloads.dbpedia.org/current/[xx]/short_abstracts_en_uris_[xx].nt.bz2 | ||
+ | |||
+ | * Les trier selon les ressources de DBpedia en: | ||
+ | <nowiki> $ export LC_ALL=C (sinon les '_' sont ignorés lors du tri) | ||
+ | $ bzcat long_abstracts_en_uris_[xx].nt.bz2 | grep -v "^#" | \ | ||
+ | sort -k 1 > long_abstracts_en_uris_[xx]_sorted.nt | ||
+ | $ bzcat short_abstracts_en_uris_[xx].nt.bz2 | grep -v "^#" | \ | ||
+ | sort -k 1 > short_abstracts_en_uris_[xx]_sorted.nt</nowiki> | ||
+ | |||
+ | |||
+ | ==== Transposer les résumés aux ressources de DBpedia fr ==== | ||
+ | |||
+ | <nowiki> $ join -13 -21 same_as_fr_en_sorted.nt long_abstracts_en_uris_[xx]_sorted.nt | \ | ||
+ | sed "s/^<[^>]*> \(<[^>]*>\) <[^>]*> ./\1/" > long_abstracts_fr_iris_[xx].nt | ||
+ | $ join -13 -21 same_as_fr_en_sorted.nt short_abstracts_en_uris_[xx]_sorted.nt | \ | ||
+ | sed "s/^<[^>]*> \(<[^>]*>\) <[^>]*> ./\1/" > short_abstracts_fr_iris_[xx].nt</nowiki> |
Version du 10 septembre 2013 à 13:16
Génère deux triplets par articles correspondant à un résumé court et un résumé long de l'article.
Sommaire |
Triplets générés
short_abstract_fr.nt | ||
---|---|---|
dbr:[NomPage] | rdfs:comment | texte |
long_abstract_fr.nt | ||
---|---|---|
dbr:[NomPage] | dbpedia-owl:abstract | texte |
Générer les résumés
Extraction des résumés en français
Mode d'emploi
Pour fonctionner cet extracteur doit interroger l'API mediawiki d'une image de wikipédia. De par le nombre d'appels à l'API (une par article), il n'est pas possible d'interroger l'API de fr.wikipédia.org, il faut installer une version locale.
Les explications sont fournies dans le répertoire abstractExtraction du dépôt dbpedia.hg.sourceforge.net/hgweb/dbpedia/dbpedia/
Mise en place du miroir de wikipedia en français
Voir https://github.com/dbpedia/extraction-framework/wiki/Extraction-Instructions#abstract-extraction
- initialisation de la bd MySQL (export MYSQL_HOME, correction script pour mysql_install_db).
- execution du processus d'import par scala.
- Rq on a eu besoin de supprimer "CHARACTER SET binary", ligne 60 de dump/org/dbpedia/extraction/dump/sql/Import.scala pour que ça marche.
- Rq il faut rendre configurable l'adresse du wiki dans le code de AbsractExtractor.scala
Installation du Wiki
- décompresser le fichier [rep depôt dbpedia]/bstractExtraction/mw-modified.tar.gz dans un répertoire accessible par le serveur web.
- TODO: vérifier les droits d'accès aux fichiers
- TODO: Ajuster les paramètres de Localhost.php
Chargement des données dans le wiki
- Charger les outils fournis par DBpedia (peu importe le répertoire)
hg clone http://dbpedia.hg.sourceforge.net:8000/hgroot/dbpedia/dbpedia
- Télécharger les fichiers suivants dans un répertoire [racine dumps]/frwiki/[YYYYMMDD]/ et les décompresser :
- frwiki-[YYYYMMDD]-pages-articles.xml.bz2
- frwiki-[YYYYMMDD]-categorylinks.sql.gz
- frwiki-[YYYYMMDD]-imagelinks.sql.gz
- frwiki-[YYYYMMDD]-image.sql.gz
- frwiki-[YYYYMMDD]-langlinks.sql.gz
- frwiki-[YYYYMMDD]-templatelinks.sql.gz
Ces fichiers se trouvent à l'adresse http://dumps.wikimedia.org/frwiki/[YYYYMMDD] où [YYYYMMDD] représente une date, p.ex. 20120917 représente le 17 septembre 2012.
- Pour initialiser les tables de la base de données de Wikimédia, il faut aussi télécharger le fichier http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/maintenance/tables.sql dans [racine dumps].
TODO: expliquer l'utilisation de clean.sh et import.sh
$ ./clean.sh [racine dumps] fr $ ./import.sh '[repertoire racine dumps]' '' 'user=[compteMysql]&password=[mdpCompteMysql]' '--user=[compteMysql] --password=[mdpCompteMysql]' '[BDMysql]' 'fr'
Remarque: Pour obtenir du texte à partir du code wiki des articles de wikipédia, l'extracteur interroge le parseur de mediawiki. Il n'est pas nécessaire que l'article lui-même soit chargé dans le mediawiki interrogé. En revanche si des modèles sont utilisés, il est nécessaire que les pages modèles correspondantes aient été chargées pour que le mediawiki puisse générer leur rendu.
Á vérifier, mais à priori, il suffit juste de charger les pages de modèles (pages dont le titre commence par Modèle:, Template: en anglais) dans le wiki pour que l'extraction des abstracts fonctionne. Pour cela substituer le fichier frwiki-[YYYYMMDD]-pages-articles.xml par le résultat de l'extraction des page modèles à l'aide de Outil:WPDumpExtraction:
$ mv frwiki-[YYYYMMDD]-pages-articles.xml / frwiki-[YYYYMMDD]-pages-articles-complete.xml $./WPDumpExtraction.pl "<title>Modèle:" 0 0 / frwiki-[YYYYMMDD]-pages-articles-complete.xml > frwiki-[YYYYMMDD]-pages-articles.xml
Importer les résumés d'autres langues
DBpedia.org contient les résumés dans de nombreuses langues, Ces résumés sont associés aux ressources de DBpedia.org mais on peut les importer modulo les liens d'équivalence avec les ressources de DBpedia en français. Pour importer les résumés d'une langue dont le code est [xx] (eg. fr pour le français, de pour l'allemand ...).
Préparer les liens owl:sameAs fr-en
Deux possibilités !
- Utiliser le fichier frwiki-[AAAAMMJJ]-interlanguage-links.ttl.gz généré lors de l'extraction. Attention, les adresses des ressources de DBpedia.org doivent être dans le même format que pour les dumps de résumés que l'on va télécharger. A priori, il faut donc que les ressources de DBpedia fr soient identifiées par des URIs et celles de DBpedia en par des URIs.
$ gunzip -c frwiki-[AAAAMMJJ]-interlanguage-links.ttl.gz | grep "http://dbpedia" > same_as_fr_en.nt
- Importer ces liens depuis DBpedia.org :
$ wget http://downloads.dbpedia.org/current/fr/interlanguage_links_same_as_fr.nt.bz2 $ bzcat interlanguage_links_same_as_fr.nt.bz2 | grep "http://dbpedia" > same_as_fr_en.nt
Ensuite trier le résultat selon les ressources de DBpedia en :
$ export LC_ALL=C (sinon les '_' sont ignorés lors du tri) $ grep -v "^#" same_as_fr_en.nt | sort -k 3 > same_as_fr_en_sorted.nt
Préparer les résumés de la langue voulue
- Importer les résumés associés aux ressources DBpedia.org :
$ wget http://downloads.dbpedia.org/current/[xx]/long_abstracts_en_uris_[xx].nt.bz2 $ wget http://downloads.dbpedia.org/current/[xx]/short_abstracts_en_uris_[xx].nt.bz2
- Les trier selon les ressources de DBpedia en:
$ export LC_ALL=C (sinon les '_' sont ignorés lors du tri) $ bzcat long_abstracts_en_uris_[xx].nt.bz2 | grep -v "^#" | \ sort -k 1 > long_abstracts_en_uris_[xx]_sorted.nt $ bzcat short_abstracts_en_uris_[xx].nt.bz2 | grep -v "^#" | \ sort -k 1 > short_abstracts_en_uris_[xx]_sorted.nt
Transposer les résumés aux ressources de DBpedia fr
$ join -13 -21 same_as_fr_en_sorted.nt long_abstracts_en_uris_[xx]_sorted.nt | \ sed "s/^<[^>]*> \(<[^>]*>\) <[^>]*> ./\1/" > long_abstracts_fr_iris_[xx].nt $ join -13 -21 same_as_fr_en_sorted.nt short_abstracts_en_uris_[xx]_sorted.nt | \ sed "s/^<[^>]*> \(<[^>]*>\) <[^>]*> ./\1/" > short_abstracts_fr_iris_[xx].nt