def test_extract_legislation_relations(self):
        # Instrument is the object of a preposition without a provision reference
        text = "The Secretary of State went on to describe the negative resolution procedure set out in the Constitutional Reform and Governance Act 2010."
        doc = self.nlp(text)
        relations = extract_legislation_relations(doc)
        assert str(relations[0][0]) == "None"
        assert relations[0][1] == "None"
        assert str(relations[0][2]) == "Constitutional Reform and Governance Act 2010"
        assert relations[0][3] == "http://www.legislation.gov.uk/ukpga/2010/25/contents"

        # Instrument is the object of a preposition and includes a provision reference
        text = "The Secretary of State went on to describe the negative resolution procedure set out in section 20 of the Constitutional Reform and Governance Act 2010."
        doc = self.nlp(text)
        relations = extract_legislation_relations(doc)
        assert str(relations[0][0]) == "section 20"
        assert (
            relations[0][1] == "http://www.legislation.gov.uk/ukpga/2010/25/section/20"
        )
        assert str(relations[0][2]) == "Constitutional Reform and Governance Act 2010"
        assert relations[0][3] == "http://www.legislation.gov.uk/ukpga/2010/25/contents"

        # Instrument is a direct object without a provision reference
        text = (
            "The procedure follows the Constitutional Reform and Governance Act 2010."
        )
        doc = self.nlp(text)
        relations = extract_legislation_relations(doc)
        assert str(relations[0][0]) == "None"
        assert relations[0][1] == "None"
        assert str(relations[0][2]) == "Constitutional Reform and Governance Act 2010"
        assert relations[0][3] == "http://www.legislation.gov.uk/ukpga/2010/25/contents"
Ejemplo n.º 2
0
def Legislation(item: Request):

    doc = nlp(item.text)
    relations = extract_legislation_relations(doc)

    legislations = []

    for provision, provision_url, instrument, instrument_url in relations:
        legislations.append(
            Leg(provision.text, provision_url, instrument.text,
                instrument_url))

    return JSONResponse(content=jsonable_encoder(legislations))
Ejemplo n.º 3
0
def ner():
    req_data = request.get_json()
    text = req_data['text']
                
    doc = nlp(text) 
    relations = extract_legislation_relations(doc)

    legislations = []

    for provision, provision_url, instrument, instrument_url in relations:
        legislations.append(Legislation(provision.text,provision_url,instrument.text,instrument_url))


    return jsonpickle.encode(legislations, unpicklable=False)