Spelling suggestions: "subject:"sentence alignment"" "subject:"entence alignment""
1 |
"Alinhamento sentencial de textos paralelos português-inglês" / Sentence alignment of Portuguese-English parallel textsCaseli, Helena de Medeiros 10 April 2003 (has links)
Esta dissertação relata o primeiro trabalho de pesquisa em alinhamento automático de textos paralelos envolvendo o português brasileiro (PB). Neste trabalho foram implementados cinco métodos de alinhamento sentencial automático bastante referenciados na literatura, incluindo métodos empíricos, lingüísticos e híbridos, avaliados com textos paralelos PB-inglês. Os resultados mostraram-se compatíveis com os relatados para outros pares de línguas, sendo que as maiores precisões (acima de 94%) foram obtidas em corpora sem ruídos (sem erros gramaticais e de tradução), conforme era esperado. Além disso, os resultados apontam muita semelhança no desempenho de todos os métodos, o que impossibilita a eleição de um deles como o melhor. Além da implementação dos métodos de alinhamento sentencial e dos corpora paralelos construídos para avaliá-los, outros recursos lingüísticos e computacionais de grande valor para as pesquisas em PLN foram gerados durante este trabalho. / As the first attempt at automatic parallel text alignment involving Brazilian Portuguese, in this research we implemented five well-known automatic sentence alignment methods, including empirical, linguistic and hybrid techniques, and evaluated them as applied to Brazilian Portuguese-English parallel texts. The results are in accordance with those reported for other pairs of languages, even in that highest precisions (above 94%) were obtained for corpora without noise (i.e. grammatical or translation errors), as expected. Furthermore, the results point to a virtual tie between the methods, it being impossible to elect one as the best. In addition to the implementations of those methods and the parallel corpora built to evaluate them, other linguistic and computational resources were built during this work which are of great value to PLN research.
|
2 |
"Alinhamento sentencial de textos paralelos português-inglês" / Sentence alignment of Portuguese-English parallel textsHelena de Medeiros Caseli 10 April 2003 (has links)
Esta dissertação relata o primeiro trabalho de pesquisa em alinhamento automático de textos paralelos envolvendo o português brasileiro (PB). Neste trabalho foram implementados cinco métodos de alinhamento sentencial automático bastante referenciados na literatura, incluindo métodos empíricos, lingüísticos e híbridos, avaliados com textos paralelos PB-inglês. Os resultados mostraram-se compatíveis com os relatados para outros pares de línguas, sendo que as maiores precisões (acima de 94%) foram obtidas em corpora sem ruídos (sem erros gramaticais e de tradução), conforme era esperado. Além disso, os resultados apontam muita semelhança no desempenho de todos os métodos, o que impossibilita a eleição de um deles como o melhor. Além da implementação dos métodos de alinhamento sentencial e dos corpora paralelos construídos para avaliá-los, outros recursos lingüísticos e computacionais de grande valor para as pesquisas em PLN foram gerados durante este trabalho. / As the first attempt at automatic parallel text alignment involving Brazilian Portuguese, in this research we implemented five well-known automatic sentence alignment methods, including empirical, linguistic and hybrid techniques, and evaluated them as applied to Brazilian Portuguese-English parallel texts. The results are in accordance with those reported for other pairs of languages, even in that highest precisions (above 94%) were obtained for corpora without noise (i.e. grammatical or translation errors), as expected. Furthermore, the results point to a virtual tie between the methods, it being impossible to elect one as the best. In addition to the implementations of those methods and the parallel corpora built to evaluate them, other linguistic and computational resources were built during this work which are of great value to PLN research.
|
3 |
Using Alignment Methods to Reduce Translation of Changes in Structured InformationResman, Daniel January 2012 (has links)
In this thesis I present an unsupervised approach that can be made supervised in order to reducetranslation of changes in structured information, stored in XML-documents. By combining a sentenceboundary detection algorithm and a sentence alignment algorithm, a translation memory is createdfrom the old version of the information in different languages. This translation memory can then beused to translate sentences that are not changed. The structure of the XML is used to improve theperformance. Two implementations were made and evaluated in three steps: sentence boundary detection,sentence alignment and correspondence. The last step evaluates the using of the translation memoryon a new version in the source language. The second implementation was an improvement, using theresults of the evaluation of the first implementation. The evaluation was done using 100 XML-documents in English, German and Swedish. There was a significant difference between the results ofthe implementations in the first two steps. The errors were reduced by each step and in the last stepthere were only three errors by first implementation and no errors by the second implementation. The evaluation of the implementations showed that it was possible to reduce text that requires re-translation by about 80%. Similar information can and is used by the translators to achieve higherproductivity, but this thesis shows that it is possible to reduce translation even before the textsreaches the translators.
|
4 |
Alignement de phrases parallèles dans des corpus bruitésLamraoui, Fethi 07 1900 (has links)
La traduction statistique requiert des corpus parallèles en grande quantité. L’obtention
de tels corpus passe par l’alignement automatique au niveau des phrases. L’alignement des corpus parallèles a reçu beaucoup d’attention dans les années quatre vingt et cette étape est considérée comme résolue par la communauté. Nous montrons dans notre mémoire que ce n’est pas le cas et proposons un nouvel aligneur que nous comparons à des algorithmes à l’état de l’art.
Notre aligneur est simple, rapide et permet d’aligner une très grande quantité de
données. Il produit des résultats souvent meilleurs que ceux produits par les aligneurs les plus élaborés. Nous analysons la robustesse de notre aligneur en fonction du genre des textes à aligner et du bruit qu’ils contiennent. Pour cela, nos expériences se décomposent en deux grandes parties. Dans la première partie, nous travaillons sur le corpus BAF où nous mesurons la qualité d’alignement produit en fonction du bruit qui atteint les 60%.
Dans la deuxième partie, nous travaillons sur le corpus EuroParl où nous revisitons la
procédure d’alignement avec laquelle le corpus Europarl a été préparé et montrons que
de meilleures performances au niveau des systèmes de traduction statistique peuvent être obtenues en utilisant notre aligneur. / Current statistical machine translation systems require parallel corpora in large quantities, and typically obtain such corpora through automatic alignment at the sentence level: a text and its translation . The alignment of parallel corpora has received a lot of attention in the eighties and is largely considered to be a solved problem in the community. We show that this is not the case and propose an alignment technique that we compare to the state-of-the-art aligners.
Our technique is simple, fast and can handle large amounts of data. It often produces
better results than state-of-the-art. We analyze the robustness of our alignment technique across different text genres and noise level. For this, our experiments are divided into two main parts. In the first part, we measure the alignment quality on BAF corpus with up to 60% of noise. In the second part, we use the Europarl corpus and revisit the alignment procedure with which it has been prepared; we show that better SMT performance can be obtained using our alignment technique.
|
5 |
Alignement de phrases parallèles dans des corpus bruitésLamraoui, Fethi 07 1900 (has links)
La traduction statistique requiert des corpus parallèles en grande quantité. L’obtention
de tels corpus passe par l’alignement automatique au niveau des phrases. L’alignement des corpus parallèles a reçu beaucoup d’attention dans les années quatre vingt et cette étape est considérée comme résolue par la communauté. Nous montrons dans notre mémoire que ce n’est pas le cas et proposons un nouvel aligneur que nous comparons à des algorithmes à l’état de l’art.
Notre aligneur est simple, rapide et permet d’aligner une très grande quantité de
données. Il produit des résultats souvent meilleurs que ceux produits par les aligneurs les plus élaborés. Nous analysons la robustesse de notre aligneur en fonction du genre des textes à aligner et du bruit qu’ils contiennent. Pour cela, nos expériences se décomposent en deux grandes parties. Dans la première partie, nous travaillons sur le corpus BAF où nous mesurons la qualité d’alignement produit en fonction du bruit qui atteint les 60%.
Dans la deuxième partie, nous travaillons sur le corpus EuroParl où nous revisitons la
procédure d’alignement avec laquelle le corpus Europarl a été préparé et montrons que
de meilleures performances au niveau des systèmes de traduction statistique peuvent être obtenues en utilisant notre aligneur. / Current statistical machine translation systems require parallel corpora in large quantities, and typically obtain such corpora through automatic alignment at the sentence level: a text and its translation . The alignment of parallel corpora has received a lot of attention in the eighties and is largely considered to be a solved problem in the community. We show that this is not the case and propose an alignment technique that we compare to the state-of-the-art aligners.
Our technique is simple, fast and can handle large amounts of data. It often produces
better results than state-of-the-art. We analyze the robustness of our alignment technique across different text genres and noise level. For this, our experiments are divided into two main parts. In the first part, we measure the alignment quality on BAF corpus with up to 60% of noise. In the second part, we use the Europarl corpus and revisit the alignment procedure with which it has been prepared; we show that better SMT performance can be obtained using our alignment technique.
|
6 |
Text and Speech Alignment Methods for Speech Translation Corpora Creation : Augmenting English LibriVox Recordings with Italian Textual TranslationsDella Corte, Giuseppe January 2020 (has links)
The recent uprise of end-to-end speech translation models requires a new generation of parallel corpora, composed of a large amount of source language speech utterances aligned with their target language textual translations. We hereby show a pipeline and a set of methods to collect hundreds of hours of English audio-book recordings and align them with their Italian textual translations, using exclusively public domain resources gathered semi-automatically from the web. The pipeline consists in three main areas: text collection, bilingual text alignment, and forced alignment. For the text collection task, we show how to automatically find e-book titles in a target language by using machine translation, web information retrieval, and named entity recognition and translation techniques. For the bilingual text alignment task, we investigated three methods: the Gale–Church algorithm in conjunction with a small-size hand-crafted bilingual dictionary, the Gale–Church algorithm in conjunction with a bigger bilingual dictionary automatically inferred through statistical machine translation, and bilingual text alignment by computing the vector similarity of multilingual embeddings of concatenation of consecutive sentences. Our findings seem to indicate that the consecutive-sentence-embeddings similarity computation approach manages to improve the alignment of difficult sentences by indirectly performing sentence re-segmentation. For the forced alignment task, we give a theoretical overview of the preferred method depending on the properties of the text to be aligned with the audio, suggesting and using a TTS-DTW (text-to-speech and dynamic time warping) based approach in our pipeline. The result of our experiments is a publicly available multi-modal corpus composed of about 130 hours of English speech aligned with its Italian textual translation and split in 60561 triplets of English audio, English transcript, and Italian textual translation. We also post-processed the corpus so as to extract 40-MFCCs features from the audio segments and released them as a data-set.
|
7 |
L’extraction de phrases en relation de traduction dans WikipédiaRebout, Lise 06 1900 (has links)
Afin d'enrichir les données de corpus bilingues parallèles, il peut être judicieux de travailler avec des corpus dits comparables. En effet dans ce type de corpus, même si les documents dans la langue cible ne sont pas l'exacte traduction de ceux dans la langue source, on peut y retrouver des mots ou des phrases en relation de traduction.
L'encyclopédie libre Wikipédia constitue un corpus comparable multilingue de plusieurs millions de documents. Notre travail consiste à trouver une méthode générale et endogène permettant d'extraire un maximum de phrases parallèles. Nous travaillons avec le couple de langues français-anglais mais notre méthode, qui n'utilise aucune ressource bilingue extérieure, peut s'appliquer à tout autre couple de langues.
Elle se décompose en deux étapes. La première consiste à détecter les paires d’articles qui ont le plus de chance de contenir des traductions. Nous utilisons pour cela un réseau de neurones entraîné sur un petit ensemble de données constitué d'articles alignés au niveau des phrases. La deuxième étape effectue la sélection des paires de phrases grâce à un autre réseau de neurones dont les sorties sont alors réinterprétées par un algorithme d'optimisation combinatoire et une heuristique d'extension.
L'ajout des quelques 560~000 paires de phrases extraites de Wikipédia au corpus d'entraînement d'un système de traduction automatique statistique de référence permet d'améliorer la qualité des traductions produites.
Nous mettons les données alignées et le corpus extrait à la disposition de la communauté scientifique. / Working with comparable corpora can be useful to enhance bilingual parallel corpora. In fact, in such corpora, even if the documents in the target language are not the exact translation of those in the source language, one can still find translated words or sentences.
The free encyclopedia Wikipedia is a multilingual comparable corpus of several millions of documents. Our task is to find a general endogenous method for extracting a maximum of parallel sentences from this source. We are working with the English-French language pair but our method -- which uses no external bilingual resources -- can be applied to any other language pair.
It can best be described in two steps. The first one consists of detecting article pairs that are most likely to contain translations. This is achieved through a neural network trained on a small data set composed of sentence aligned articles. The second step is to perform the selection of sentence pairs through another neural network whose outputs are then re-interpreted by a combinatorial optimization algorithm and an extension heuristic.
The addition of the 560~000 pairs of sentences extracted from Wikipedia to the training set of a baseline statistical machine translation system improves the quality of the resulting translations.
We make both the aligned data and the extracted corpus available to the scientific community.
|
8 |
L’extraction de phrases en relation de traduction dans WikipédiaRebout, Lise 06 1900 (has links)
Afin d'enrichir les données de corpus bilingues parallèles, il peut être judicieux de travailler avec des corpus dits comparables. En effet dans ce type de corpus, même si les documents dans la langue cible ne sont pas l'exacte traduction de ceux dans la langue source, on peut y retrouver des mots ou des phrases en relation de traduction.
L'encyclopédie libre Wikipédia constitue un corpus comparable multilingue de plusieurs millions de documents. Notre travail consiste à trouver une méthode générale et endogène permettant d'extraire un maximum de phrases parallèles. Nous travaillons avec le couple de langues français-anglais mais notre méthode, qui n'utilise aucune ressource bilingue extérieure, peut s'appliquer à tout autre couple de langues.
Elle se décompose en deux étapes. La première consiste à détecter les paires d’articles qui ont le plus de chance de contenir des traductions. Nous utilisons pour cela un réseau de neurones entraîné sur un petit ensemble de données constitué d'articles alignés au niveau des phrases. La deuxième étape effectue la sélection des paires de phrases grâce à un autre réseau de neurones dont les sorties sont alors réinterprétées par un algorithme d'optimisation combinatoire et une heuristique d'extension.
L'ajout des quelques 560~000 paires de phrases extraites de Wikipédia au corpus d'entraînement d'un système de traduction automatique statistique de référence permet d'améliorer la qualité des traductions produites.
Nous mettons les données alignées et le corpus extrait à la disposition de la communauté scientifique. / Working with comparable corpora can be useful to enhance bilingual parallel corpora. In fact, in such corpora, even if the documents in the target language are not the exact translation of those in the source language, one can still find translated words or sentences.
The free encyclopedia Wikipedia is a multilingual comparable corpus of several millions of documents. Our task is to find a general endogenous method for extracting a maximum of parallel sentences from this source. We are working with the English-French language pair but our method -- which uses no external bilingual resources -- can be applied to any other language pair.
It can best be described in two steps. The first one consists of detecting article pairs that are most likely to contain translations. This is achieved through a neural network trained on a small data set composed of sentence aligned articles. The second step is to perform the selection of sentence pairs through another neural network whose outputs are then re-interpreted by a combinatorial optimization algorithm and an extension heuristic.
The addition of the 560~000 pairs of sentences extracted from Wikipedia to the training set of a baseline statistical machine translation system improves the quality of the resulting translations.
We make both the aligned data and the extracted corpus available to the scientific community.
|
9 |
Confidence Measures for Alignment and for Machine Translation / Mesures de Confiance pour l’Alignement et pour la Traduction AutomatiqueXu, Yong 26 September 2016 (has links)
En linguistique informatique, la relation entre langues différentes est souventétudiée via des techniques d'alignement automatique. De tels alignements peuvent êtreétablis à plusieurs niveaux structurels. En particulier, les alignements debi-textes aux niveaux phrastiques et sous-phrastiques constituent des sources importantesd'information dans pour diverses applications du Traitement Automatique du Language Naturel (TALN)moderne, la Traduction Automatique étant un exemple proéminent.Cependant, le calcul effectif des alignements de bi-textes peut êtreune tâche compliquée. Les divergences entre les langues sont multiples,de la structure de discours aux constructions morphologiques.Les alignements automatiques contiennent, majoritairement, des erreurs nuisantaux performances des applications.Dans cette situation, deux pistes de recherche émergent. La première est de continuerà améliorer les techniques d'alignement.La deuxième vise à développer des mesures de confiance fiables qui permettent aux applicationsde sélectionner les alignements selon leurs besoins.Les techniques d'alignement et l'estimation de confiance peuvent tous les deuxbénéficier d'alignements manuels.Des alignements manuels peuventjouer un rôle de supervision pour entraîner des modèles, et celuides données d'évaluation. Pourtant, la création des telles données est elle-mêmeune question importante, en particulier au niveau sous-phrastique, où les correspondancesmultilingues peuvent être implicites et difficiles à capturer.Cette thèse étudie des moyens pour acquérir des alignements de bi-textes utiles, aux niveauxphrastiques et sous-phrastiques. Le chapitre 1 fournit une description de nos motivations,la portée et l'organisation du travail, et introduit quelques repères terminologiques et lesprincipales notations.L'état-de-l'art des techniques d'alignement est revu dans la Partie I. Les chapitres 2 et3 décriventles méthodes respectivement pour l'alignement des phrases et des mots.Le chapitre 4 présente les bases de données d'alignement manuel,et discute de la création d'alignements de référence. Le reste de la thèse, la Partie II,présente nos contributions à l'alignement de bi-textes, en étudiant trois aspects.Le chapitre 5 présente notre contribution à la collection d'alignements de référence. Pourl'alignement des phrases, nous collectons les annotations d'un genre spécifiquede textes: les bi-textes littéraires. Nous proposons aussi un schéma d'annotation deconfiance. Pour l'alignement sous-phrastique,nous annotons les liens entre mots isolés avec une nouvelle catégorisation, et concevonsune approche innovante de segmentation itérative pour faciliter l'annotation des liens entre groupes de mots.Toutes les données collectées sont disponibles en ligne.L'amélioration des méthodes d'alignement reste un sujet important de la recherche. Nousprêtons une attention particulière à l'alignement phrastique, qui est souvent le point dedépart de l'alignement de bi-textes. Le chapitre 6 présente notre contribution. En commençantpar évaluer les outils d'alignement d'état-de-l'art et par analyser leurs modèles et résultats,nous proposons deux nouvelles méthodes pour l'alignement phrastique, qui obtiennent desperformances d'état-de-l'art sur un jeu de données difficile.L'autre sujet important d'étude est l'estimation de confiance. Dans le chapitre 7, nousproposons des mesures de confiance pour les alignements phrastique et sous-phrastique.Les expériences montrent que l'estimation de confiance des liens d'alignement reste undéfi remarquable. Il sera très utile de poursuivre cette étude pour renforcer les mesuresde confiance pour l'alignement de bi-textes.Enfin, notons que les contributions apportées dans cette thèse sont employées dans uneapplication réelle: le développement d'une liseuse qui vise à faciliter la lecturedes livres électroniques multilingues. / In computational linguistics, the relation between different languages is often studied through automatic alignment techniques. Such alignments can be established at various structural levels. In particular, sentential and sub-sentential bitext alignments constitute an important source of information in various modern Natural Language Processing (NLP) applications, a prominent one being Machine Translation (MT).Effectively computing bitext alignments, however, can be a challenging task. Discrepancies between languages appear in various ways, from discourse structures to morphological constructions. Automatic alignments would, at least in most cases, contain noise harmful for the performance of application systems which use the alignments. To deal with this situation, two research directions emerge: the first is to keep improving alignment techniques; the second is to develop reliable confidence measures which enable application systems to selectively employ the alignments according to their needs.Both alignment techniques and confidence estimation can benefit from manual alignments. Manual alignments can be used as both supervision examples to train scoring models and as evaluation materials. The creation of such data is, however, an important question in itself, particularly at sub-sentential levels, where cross-lingual correspondences can be only implicit and difficult to capture.This thesis focuses on means to acquire useful sentential and sub-sentential bitext alignments. Chapter 1 provides a non-technical description of the research motivation, scope, organization, and introduces terminologies and notation. State-of-the-art alignment techniques are reviewed in Part I. Chapter 2 and 3 describe state-of-the-art methods for respectively sentence and word alignment. Chapter 4 summarizes existing manual alignments, and discusses issues related to the creation of gold alignment data. The remainder of this thesis, Part II, presents our contributions to bitext alignment, which are concentrated on three sub-tasks.Chapter 5 presents our contribution to gold alignment data collection. For sentence- level alignment, we collect manual annotations for an interesting text genre: literary bitexts, which are very useful for evaluating sentence aligners. We also propose a scheme for sentence alignment confidence annotation. For sub-sentential alignment, we annotate one-to-one word links with a novel 4-way labelling scheme, and design a new approachfor facilitating the collection of many-to-many links. All the collected data is released on-line.Improving alignment methods remains an important research subject. We pay special attention to sentence alignment, which often lies at the beginning of the bitext alignment pipeline. Chapter 6 presents our contributions to this task. Starting by evaluating state-of-the-art aligners and analyzing their models and results, we propose two new sentence alignment methods, which achieve state-of-the-art performance on a difficult dataset.The other important subject that we study is confidence estimation. In Chapter 7, we propose confidence measures for sentential and sub-sentential alignments. Experiments show that confidence estimation of alignment links is a challenging problem, and more works on enhancing the confidence measures will be useful.Finally, note that these contributions have been employed in a real world application: the development of a bilingual reading tool aimed at facilitating the reading in a foreign language.
|
10 |
Open source quality control tool for translation memory using artificial intelligenceBhardwaj, Shivendra 08 1900 (has links)
La mémoire de traduction (MT) joue un rôle décisif lors de la traduction et constitue une base
de données idéale pour la plupart des professionnels de la langue. Cependant, une MT est très
sujète au bruit et, en outre, il n’y a pas de source spécifique. Des efforts importants ont été
déployés pour nettoyer des MT, en particulier pour former un meilleur système de traduction
automatique. Dans cette thèse, nous essayons également de nettoyer la MT mais avec un objectif
plus large : maintenir sa qualité globale et la rendre suffisament robuste pour un usage interne
dans les institutions. Nous proposons un processus en deux étapes : d’abord nettoyer une MT
institutionnelle (presque propre), c’est-à-dire éliminer le bruit, puis détecter les textes traduits à
partir de systèmes neuronaux de traduction.
Pour la tâche d’élimination du bruit, nous proposons une architecture impliquant cinq approches
basées sur l’heuristique, l’ingénierie fonctionnelle et l’apprentissage profond. Nous évaluons cette
tâche à la fois par annotation manuelle et traduction automatique (TA). Nous signalons un gain
notable de +1,08 score BLEU par rapport à un système de nettoyage état de l’art. Nous proposons
également un outil Web qui annote automatiquement les traductions incorrectes, y compris mal
alignées, pour les institutions afin de maintenir une MT sans erreur.
Les modèles neuronaux profonds ont considérablement amélioré les systèmes MT, et ces systèmes
traduisent une immense quantité de texte chaque jour. Le matériel traduit par de tels systèmes
finissent par peuplet les MT, et le stockage de ces unités de traduction dans TM n’est pas
idéal. Nous proposons un module de détection sous deux conditions: une tâche bilingue et une
monolingue (pour ce dernier cas, le classificateur ne regarde que la traduction, pas la phrase
originale). Nous rapportons une précision moyenne d’environ 85 % en domaine et 75 % hors
domaine dans le cas bilingue et 81 % en domaine et 63 % hors domaine pour le cas monolingue
en utilisant des classificateurs d’apprentissage profond. / Translation Memory (TM) plays a decisive role during translation and is the go-to database for
most language professionals. However, they are highly prone to noise, and additionally, there is no
one specific source. There have been many significant efforts in cleaning the TM, especially for
training a better Machine Translation system. In this thesis, we also try to clean the TM but with a
broader goal of maintaining its overall quality and making it robust for internal use in institutions.
We propose a two-step process, first clean an almost clean TM, i.e. noise removal and then detect
texts translated from neural machine translation systems.
For the noise removal task, we propose an architecture involving five approaches based on heuristics, feature engineering, and deep-learning and evaluate this task by both manual annotation and
Machine Translation (MT). We report a notable gain of +1.08 BLEU score over a state-of-the-art,
off-the-shelf TM cleaning system. We also propose a web-based tool “OSTI: An Open-Source
Translation-memory Instrument” that automatically annotates the incorrect translations (including
misaligned) for the institutions to maintain an error-free TM.
Deep neural models tremendously improved MT systems, and these systems are translating an
immense amount of text every day. The automatically translated text finds a way to TM, and
storing these translation units in TM is not ideal. We propose a detection module under two
settings: a monolingual task, in which the classifier only looks at the translation; and a bilingual
task, in which the source text is also taken into consideration. We report a mean accuracy of around
85% in-domain and 75% out-of-domain for bilingual and 81% in-domain and 63% out-of-domain
from monolingual tasks using deep-learning classifiers.
|
Page generated in 0.3158 seconds