Source code for germanetpy.iliLoader
from germanetpy.iliRecord import IliRecord
LEXID = "lexUnitId"
EWNREL = 'ewnRelation'
PWNWORD = 'pwnWord'
PWN20ID = 'pwn20Id'
PWN30ID = 'pwn30Id'
SOURCE = 'source'
PWN20PARAPHRASE = 'pwn20paraphrase'
[docs]def create_ili_record(attributes, synonyms) -> IliRecord:
"""
Creates the ili record given the XML attributes.
:type synonyms: list(String)
:type attributes: xml attributes
:param attributes: The XML attributes that contain the required information about the ili record.
:param synonyms: A list of Strings, containing the synonyms of the ili record.
:return: The ili record object
"""
lex_id = attributes[LEXID]
ewnrelation = attributes[EWNREL]
pwnword = attributes[PWNWORD]
pwn20Id = attributes[PWN20ID]
pwn30Id = attributes[PWN30ID]
source = attributes[SOURCE]
pwn20paraphrase = attributes.get(PWN20PARAPHRASE)
ili = IliRecord(lexunit_id=lex_id, ewnRelation=ewnrelation, pwnWord=pwnword, pwn20Id=pwn20Id,
pwn30Id=pwn30Id, source=source, pwn20synonyms=synonyms, pwn20paraphrase=pwn20paraphrase)
return ili
[docs]def load_ili(germanet, tree):
"""
This method creates the ili record objects given a datafile and adds them to the GermaNet object and the
corresponding lexical unit.
:type tree: Element Tree
:type germanet: Germanet
:param germanet: The GermaNet object
:param tree: The XML tree containing the data about the ili records
"""
root = tree.getroot()
for child in root:
attributes = child.attrib
synonyms = []
for subchild in child:
for subsubchild in subchild:
synonyms.append(subsubchild.text)
ili = create_ili_record(attributes, synonyms)
lexunit = germanet.lexunits[ili.lexunit_id]
lexunit.ili_records.append(ili)
germanet.ili_records.append(ili)