Source code for fastNLP.core.instance

[docs]class Instance(object): """An Instance is an example of data. Example:: ins = Instance(field_1=[1, 1, 1], field_2=[2, 2, 2]) ins["field_1"] >>[1, 1, 1] ins.add_field("field_3", [3, 3, 3]) :param fields: a dict of (str: list). """ def __init__(self, **fields): self.fields = fields
[docs] def add_field(self, field_name, field): """Add a new field to the instance. :param field_name: str, the name of the field. """ self.fields[field_name] = field
def __getitem__(self, name): if name in self.fields: return self.fields[name] else: raise KeyError("{} not found".format(name)) def __setitem__(self, name, field): return self.add_field(name, field) def __repr__(self): return "{" + ",\n".join( "\'" + field_name + "\': " + str(self.fields[field_name]) for field_name in self.fields) + "}"