Fast Corpus Search Engine conçu à l'origine pour le corpus de la langue tatar écrite.
Vous pouvez l'essayer ici.
Le code source est disponible sur https://github.com/mansayk/fastmorph.
Query:
Word 1: китап
Number of occurences: 32209
Query processing time: 0,4 sec.
Query:
Word 1 (case sensitive, distance to the next word up to 3 words): Китап
Word 2 (if in brackets, then it is lemma): (бир)
Number of occurences: 15
Query processing time: 0,4 sec.
Quite heavy query:
Word 1 (word begins with "б" letter, distance range to the next word is from 1 to 10): б*
Word 2 (pronoun, word ends with "ң", distance range to the next word is from 1 to 10): <prn>*ң
Word 3 (lemma "кил", word ends with "р"): (кил)*р
Number of occurences: 135210
Query processing time: 0,8 sec.
Very heavy query:
Word 1 (word ends with "ы", distance range to the next word is from 1 to 100): *ы
Word 2 (word ends with "а", distance range to the next word is from 1 to 100): *а
Word 3 (word ends with "м", distance range to the next word is from 1 to 100): *м
Word 4 (word ends with "с", distance range to the next word is from 1 to 100): *с
Word 5 (word ends with "ь", distance range to the next word is from 1 to 100): *ь
Word 6 (word ends with "е"): *е
Number of occurences: 135210
Query processing time: 1,4 sec.
Vous pouvez l'essayer ici. Il existe différents exemples de recherche dans le manuel de notre corpus. Si vous avez des questions sur l'utilisation de Fastmorph dans vos projets, veuillez nous contacter par [email protected].
Nous vous demandons également de nous faire savoir où ce moteur de recherche est utilisé et, si cela ne vous dérange pas, nous publierons ici des liens vers ces projets.
Ce logiciel est distribué sous la licence publique générale GNU v3.0.
Recherche de recherche:
Schematical view: {<adj>}(0) 1-5 {ке*<n>}(1) 1-1 {(кил)}(0) 1-1 {}(0) 1-1 {}(0) 1-1 {}(0)
Detailed:
Word 1 (distance range to the next word is from 1 to 5, adjective): <adj>
Word 2 (case sensitive, begins with "ке", noun): ке*<n>
Word 3: (lemma "кил"):(кил)
Word 4:
Word 5:
Word 6:
{
"word": [
"",
"",
"",
"",
"",
""
],
"lemma": [
"",
"",
"кил",
"",
"",
""
],
"tags": [
"<adj>",
"<n>",
"",
"",
"",
""
],
"wildmatch": [
"",
"ке*",
"",
"",
"",
""
],
"case": [
0,
1,
0,
0,
0,
0
],
"dist_from": [
1,
1,
1,
1,
1
],
"dist_to": [
5,
1,
1,
1,
1
],
"return": 100,
"last_pos": "0"
}
"Retour" - Montant maximum de phrases à retourner.
"Last_pos" - "0" pour la première requête ou renvoyez simplement cette chaîne pour obtenir la prochaine liste de phrases.
Avertissement! Vous devez normaliser et vérifier les données d'entrée avant de les passer à FastMorph:
{
"example": [
{
"id": 15853,
"source": ""2013 Универсиадасы блогы" (web-сайт)",
"source_type": "kazan2013.ru",
"sentence": "Универсиада кебек зур проектның бер өлеше булу өчен, Казанга Россиянең төрле
төбәкләреннән һәм Дөньяның
<span id='found_word_0' class='found_word' title='(төрле) <adj>'>төрле</span>
илләреннән бик күп
<span id='found_word_1' class='found_word' title='(кеше) <n>,<nom>,<sg>'>кеше</span>
<span id='found_word_2' class='found_word' title='(кил) <ifi>,<iv>,<p3>,<sg>,<v>'>килде</span>."
},
{
"id": -1
}
],
"last_pos": "892447x39311905x75980782x114356633",
"found_all": 1359
}
Comme vous pouvez le voir, chaque mot correspondant à la requête de recherche est renvoyé dans les balises HTML suivantes:
<span id='found_word_0' class='found_word' title='(LEMMA) <TAG1><TAG2>'>FOUND_WORD</span>
Ainsi, par exemple, vous pouvez utiliser CSS pour les mettre en évidence.
Vous pouvez trouver des exemples de table de création ici.
MySQL> SELECT * FROM MORPH6_MAIN_APERTITIUM LIMIT 10;
| identifiant | uni | phrase | source |
|---|---|---|---|
| 0 | 1594501 | 1 | 1 |
| 1 | 761564 | 1 | 1 |
| 2 | 787834 | 1 | 1 |
| 3 | 1505641 | 1 | 1 |
| 4 | 420024 | 1 | 1 |
| 5 | 764201 | 1 | 1 |
| 6 | 1003674 | 1 | 1 |
| 7 | 1003851 | 1 | 1 |
| 8 | 764201 | 1 | 1 |
| 9 | 1057551 | 1 | 1 |
MySQL> SELECT * FROM MORPH6_UNITED_APERTITIum où id> = 100 limit 10;
| identifiant | freq | word_case | mot | lemme | balises |
|---|---|---|---|---|---|
| 100 | 1 | 1000084 | 599888 | 429156 | 2 |
| 101 | 60 | 1000085 | 599890 | 429158 | 2 |
| 102 | 5 | 1000086 | 599891 | 429159 | 2 |
| 103 | 2 | 1000087 | 599892 | 429160 | 2 |
| 104 | 1 | 1000088 | 599893 | 429161 | 2 |
| 105 | 10 | 1000089 | 599894 | 429162 | 2 |
| 106 | 1 | 100008 | 164606 | 119768 | 2 |
| 107 | 1 | 1000090 | 599895 | 429163 | 2 |
| 108 | 5 | 1000091 | 599899 | 429167 | 2 |
| 109 | 1 | 1000092 | 599901 | 429169 | 2 |
MySQL> SELECT * FROM MORPH6_WORDS_CASE_APERTITIUM WHERE ID> 200000 Limit 10;
| identifiant | freq | word_case |
|---|---|---|
| 200001 | 4 | Идарәсендәе |
| 200002 | 1 | Идарәсендәе |
| 200003 | 3 | Идарәсене |
| 200004 | 290 | Идарәсенең |
| 200005 | 14 | Идарәсеннән |
| 200006 | 1 | Идарәсеның |
| 200007 | 79 | Идарәсенә |
| 200008 | 1 | Идарәәең |
| 200009 | 1 | Идарәсәнең |
| 200010 | 1 | Идарәханә |
MySQL> SELECT * FROM MORPH6_WORDS_APERTITIum où id> 100000 limite 10;
| identifiant | freq | mot |
|---|---|---|
| 100001 | 975 | артистларны |
| 100002 | 7 | артистларны ыына |
| 100003 | 74 | артистларны да |
| 100004 | 1 | артистларныы |
| 100005 | 1 | артистларныкыыай |
| 100006 | 8 | артистларныкыннан |
| 100007 | 1 | артистларныкыннан да |
| 100008 | 1 | артистларныыа |
| 100009 | 1408 | артистларның |
| 100010 | 3 | артистларның ыына |
MySQL> SELECT * FROM MORPH6_LEMMAS_APERTITIum WHERE ID> 300000 LIMIT 10;
| identifiant | freq | lemme |
|---|---|---|
| 300001 | 1 | иярччелек |
| 300002 | 130 | иярччеләр |
| 300003 | 8 | иярччеләрәә |
| 300004 | 2 | иярччеләрдә |
| 300005 | 3 | иярччеләрдән |
| 300006 | 9 | иярччеләре |
| 300007 | 2 | иярччеләрегез |
| 300008 | 2 | иярччеләрен |
| 300009 | 1 | иярччеләренең |
| 300010 | 12 | иярччеләрне |
MySQL> SELECT * FROM MORPH6_TAGS_APERTITIUM WHERE ID> 11100 LIMIT 10;
| identifiant | freq | combinaisons |
|---|---|---|
| 11101 | 4 | <nt>, <dat>, <f>, <frm>, <np>, <px2sg> |
| 11102 | 17141 | <nt>, <dat>, <f>, <np> |
| 11103 | 387 | <nt>, <s dat>, <f>, <np>, <lp> |
| 11104 | 1 | <nt>, <s dat>, <f>, <np>, <lp>, <px1pl> |
| 11105 | 1 | <nt>, <s dat>, <f>, <np>, <lp>, <px1sg> |
| 11106 | 12 | <nt>, <dat>, <f>, <np>, <lp>, <px3sp> |
| 11107 | 1 | <nt>, <s dat>, <f>, <np>, <lp>, <px> |
| 11108 | 40 | <nt>, <dat>, <f>, <np>, <px1pl> |
| 11109 | 101 | <nt>, <dat>, <f>, <np>, <px1sg> |
| 11110 | 41 | <nt>, <dat>, <f>, <np>, <px2sg> |
MySQL> Sélectionner * dans les sources où Col1> 300 limite 3;
| col1 | Col2 | COL3 |
|---|---|---|
| 301 | "miras.belem.ru" (web -сайт) | miras.belem.ru |
| 302 | Абдула алиш. Кршеләр | livre |
| 303 | Дәәләт хакимияте әә җирле зззарә оааннvre | tatarstan.ru |
Si vous utilisez le tagger d'Apertium pour annoter morphologiquement le corpus, vous pouvez utiliser notre script Python pour générer des tables à partir de la sortie d'Apertium.
Pour utiliser ce convertisseur, vous devez:
cat bigfile.txt | apertium -n -d . tat-tagger | cg-proc dev/mansur.bin > bigfile_tagged.txt
où Mansur.bin n'est qu'un fichier avec quelques règles supplémentaires. Vous pouvez le trouver ici.
En résultat, vous devriez obtenir un fichier, contenant des phrases annotées:
^Мин/Мин<prn><pers><p1><sg><nom>$ ^үземне/үз<prn><ref><px1sg><acc>$ ^белә/бел<v><tv><prc_impf>$ ^башлаганнан/башла<vaux><ger_past><abl>$ ^бирле/бирле<post>$ ^түбән/түбән<adj>$ ^очка/оч<n><sg><dat>$ – ^ерак/ерак<adj>$ ^бабакайларга/бабакай<n><pl><dat>$ ^төшәргә/төш<v><iv><inf>$ ^ярата/ярат<v><tv><pres><p3><sg>$ ^идем/и<cop><ifi><p1><sg>$^./.<sent>$
| ID de phrase | ID de source |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
| 6 | 1 |
| 7 | 1 |
| 8 | 1 |
| 9 | 1 |
| 10 | 1 |
Et placez-le dans le même répertoire avec le script.
3) Exécutez le script Python de cette façon:
./tat-tagger_to_ntables_v6.24.py tatcorpus2.sentences.apertium.tagged.txt
Cela prendra beaucoup de temps en fonction de la taille de votre corpus.
4) Si tout s'est bien passé, vous devriez obtenir une liste de nouveaux fichiers que vous devez importer dans la base de données MySQL:
tatcorpus2.sentences.apertium.tagged.txt.lemmas.output.txt
tatcorpus2.sentences.apertium.tagged.txt.main.output.txt
tatcorpus2.sentences.apertium.tagged.txt.tags-uniq.output.txt.sorted.txt
tatcorpus2.sentences.apertium.tagged.txt.tags.output.txt
tatcorpus2.sentences.apertium.tagged.txt.united.output.txt
tatcorpus2.sentences.apertium.tagged.txt.words.output.txt
tatcorpus2.sentences.apertium.tagged.txt.words_case.output.txt
27.02.2017 - La 5e version du moteur de recherche FastMorph Corpus est publiée. Maintenant, il consomme environ 2,5 fois moins de mémoire (RAM).
18.11.2016 - La 4ème version du moteur de recherche FastMorph Corpus est publiée. Liste des modifications:
19.07.2016 - Quelques améliorations du moteur de recherche morphologique complexe "FastMorph":
13.06.2016 - La recherche par la partie centrale d'une fonctionnalité de mot a été ajoutée dans le module FastMorph. Par exemple, si vous tapez * әме *, des mots comme ярдәәендә, әйрәәен, үткәрәәен, өйдәә seront trouvés ...
21.04.2016 - En raison de la mise en œuvre du module "FastMorph", certaines optimisations de processeurs et le support multithreading, nous avons réalisé que la recherche morphologique complexe fonctionne désormais jusqu'à cinq fois plus rapidement.
03.04.2016 - Les caractéristiques du système de recherche morphologique complexes ont été considérablement étendues. Vous pouvez obtenir plus d'informations à leur sujet dans les guides mis à jour jusqu'à 3.0 et une version supérieure.
22.02.2016 - La fonction de recherche morphologique complexe est apparue dans le corpus du tatar écrit, où vous pouvez utiliser différentes combinaisons de paramètres tels que la forme de mots, le lemme, les étiquettes grammaticales, le début et la fin des mots, les distances entre elles. Informations techniques: La version 1 consomme environ 6 Go de RAM pour le corpus, composé de 116 MLN Word Occales. Sa vitesse est assez élevée.