0.0.0.1. Erzeugung von Quasi-HTML-Code:
SELECT textnr, satznr, group_concat( '<span class="',pos,'">',token, '</span>' order by id separator ' ' ) FROM gtokens group by textnr, satznr ;
0.0.0.2. Häufigkeit einzelner Tokens:
SELECT count(*) Anzahl, token FROM `gtokens` a group by token order by Anzahl desc ;
0.0.0.3. Verknüpfung der Tabellen gtokens und gdt_tagset:
select token, pos, description from gtokens a join gdt_tagset b using(pos) order by id ;
0.0.0.4. Anzeige eines gesuchten Tokens zusammen mit dem Satz, in dem es sich befindet:
Select sq1.textnr, sq1.satznr, sq1.posnr, sq1.token, sq1.pos, sq1.lemma, sq2.satz FROM ( SELECT * FROM `gtokens` a where a.pos like 'ADJ%' ) sq1 JOIN (SELECT textnr, absnr, satznr, group_concat(token order by posnr separator ' ') as satz FROM `gtokens` group by textnr, absnr, satznr ) sq2 using(textnr,absnr,satznr) ;
0.0.0.5. Häufigkeit von Wortarten:
SELECT count(*) Anzahl, pos, group_concat(distinct token) FROM `gtokens` a group by pos order by Anzahl desc ;
0.0.0.6. Ermittlung der Type-Token-Relation:
select count(*) anzahl_types, round( count(*) / (select count(*) anzahl_tokens from gtokens) * 100,2 ) as type_token_relation, token, pos from gtokens group by token, pos order by type_token_relation DESC ;
0.0.0.7. Ermittlung der Type-Token-Relation pro Textnr
1. Ermittlung der Anzahl von Tokens pro Textnr:
select textnr, count(*) from gtokens group by textnr ;
2. Ermittlung der Anzahl von Types pro Textnr:
select textnr, count(*) as Anzahl_types FROM ( select textnr, count(*), token, pos from gtokens a where pos not like '$%' -- Ausschluss von Satzzeichen group by textnr, token, pos ) sq group by textnr ;
3. Kombination der beiden Abfragen mittels join:
select *, round(Anzahl_types / Anzahl_tokens * 100,1) as `Type-Token-Relation` from ( select textnr, count(*) as Anzahl_types FROM ( select textnr, count(*), token, pos from gtokens a where pos not like '$%' -- Ausschluss von Satzzeichen group by textnr, token, pos ) sq group by textnr ) sq1 ;
0.0.0.8. Re-Linearisierung des Textes unter Einbindung der Wortarten-Tags:
SELECT textnr, absnr, satznr, group_concat(token, ' (', pos, ')' order by posnr separator ' ') as satz FROM `gtokens` group by textnr, absnr, satznr ;
0.0.0.9. Bildung von Triplen:
select a.token atoken, b.token btoken, c.token ctoken, a.pos apos, b.pos bpos, c.pos cpos FROM gtokens a join gtokens b on (a.id = b.id-1 and a.textnr=b.textnr and a.absnr = b.absnr and a.satznr = b.satznr) join gtokens c on (b.id = c.id-1 and b.textnr=c.textnr and b.absnr = c.absnr and b.satznr = c.satznr) ;
0.0.0.10. Ermittlung der absoluten Häufigkeit von Wortartkombinationen:
select count(*) Anzahl, a.pos apos, b.pos bpos, c.pos cpos, group_concat(a.token, ' ', b.token, ' ', c.token separator ' - ') as tokens FROM gtokens a join gtokens b on (a.id = b.id-1 and a.textnr=b.textnr and a.absnr = b.absnr and a.satznr = b.satznr) join gtokens c on (b.id = c.id-1 and b.textnr=c.textnr and b.absnr = c.absnr and b.satznr = c.satznr) group by apos, bpos, cpos order by Anzahl DESC ;
0.0.0.11. Ermittlung der gewichteten Häufigkeit von Wortartkombinationen in Abhängigkeit von der Textnummer:
select sq1.anzahl, sq2.anzahl, round(sq1.anzahl / sq2.anzahl * 100,2) as Prozent, sq1.* from ( select count(*) Anzahl, a.textnr, a.pos apos, b.pos bpos, c.pos cpos, group_concat(a.token, ' ', b.token, ' ', c.token separator ' - ') as tokens FROM gtokens a join gtokens b on (a.id = b.id-1 and a.textnr=b.textnr and a.absnr = b.absnr and a.satznr = b.satznr) join gtokens c on (b.id = c.id-1 and b.textnr=c.textnr and b.absnr = c.absnr and b.satznr = c.satznr) group by textnr, apos, bpos, cpos ) sq1 JOIN (select count(*) as Anzahl, textnr from gtokens a group by textnr) sq2 using(textnr) ;
0.0.1. Update, delete
Daten können auch verändert oder gelöscht werden. Beispiele:
ACHTUNG! MySQL fragt in den seltensten Fällen nach, ob eine Aktion wirklich durchgeführt werden soll. Erzeugen Sie daher in regelmäßigen Abständen "Dumps" Ihrer Datenbank(en).
update gtokens set pos = 'xxx', token = 'XYZ' where token like 'Haus';
delete from gtokens where pos like 'NN';
0.0.1.1. Empfehlenswerte Client-Programme für MySQL-Datenbanken:
0.0.1.2. Mit MySQL-Datenbanken realisierte Projekte
Höflinge der Habsburgischen Kaiser
Übersicht über weitere Projekte der ITG (überwiegend mit Anbindung an MySQL-Datenbanken):
http://www.itg.uni-muenchen.de/projekte/oeffentlich/index.html