För många av Språkbankens korpusar finns det nedladdningsbara meningsmängder. Meningsmängderna är samlingar av meningar från respektive korpus, med automatisk annotering av till exempel ordklasser och syntaktisk struktur. I vissa korpusar har meningarna kastats om av upphovsrättsliga skäl. Det betyder att meningarna har en slumpmässig ordning för att originaltexterna inte ska gå att återskapa.
Ungefär såhär ser Sparvs "standard"-XML-format för meningsmängderna ut:
<text>
<paragraph>
<sentence>
<token _tail="\s">text</token>
</sentence>
</paragraph>
</text>Observera:
- Alla korpusar har inte styckesinformation (
<paragraph>finns alltså inte alltid). - Äldre korpusar (sådana som är annoterade med Sparv-versioner före version 4.0) har
<w>-taggar istället för<token>och innehåller aldrig några_tail-attribut. _tail-attributet inuti<token>innehåller information om mellanrum (blanksteg "\s", tabbar "\t" eller radbrytningar "\n") som följer tokenet i källmaterialet.- Utöver taggarna och attributen i exemplet ovan kan det förekomma fler taggar och attribut i XML:en beroende på hur indatan såg ut och vilka annotationer som har lagts till av Sparv.
Vad är en bz2-fil?
Eftersom meningsmängderna kan vara mycket stora är XML-filerna komprimerade med formatet bzip2 för att minska filstorleken och mängden data som behöver laddas ner.
Bearbeta bz2-filen med Python
Om du ska bearbeta filen programmatiskt behöver du inte packa upp hela filen först. Python kan läsa XML-data direkt från den komprimerade bz2-filen. Eftersom filen kan vara mycket stor rekommenderar vi att den bearbetas stegvis, i stället för att hela XML-dokumentet läses in i minnet.
Ett exempel med Pythons standardbibliotek:
import bz2
import xml.etree.ElementTree as ET
with bz2.open("filnamn.xml.bz2", "rb") as f:
for _event, elem in ET.iterparse(f, events=("end",)):
# Replace "paragraph" with the relevant XML element
if elem.tag == "paragraph":
# Add your processing code here
print(elem.text)
# Free memory when done with the element
elem.clear()Packa upp filen manuellt
Om du ändå vill packa upp XML-filen kan du göra såhär:
- Windows: Använd exempelvis 7-Zip eller ett annat program som stöder bz2.
- macOS: bz2-filer kan vanligtvis packas upp direkt i Finder. Du kan även använda exempelvis The Unarchiver.
- Linux: På kommandoraden kan du exempelvis använda
bunzip2 filnamn.xml.bz2.
Observera att den uppackade XML-filen kan vara betydligt större än bz2-filen och därför kräva mycket diskutrymme.
Se även Hur kan jag få tillgång till icke-meningsomkastade versioner av Språkbankens korpusar? och Hur får man tillgång till skyddade korpusar som till exempel ESPC?.