Blackstone-это модель Spacy и библиотека для обработки длинного, неструктурированного юридического текста. Блэкстоун - это экспериментальный исследовательский проект из Института юридического совета, отчитывающегося для исследовательской лаборатории Англии и Уэльса, ICLR & D. Блэкстоун был написан Даниэлем Хоадли.
Почему мы строим Blackstone?
Что особенного в Блэкстоуне?
Наблюдения и другие вещи, которые стоит отметить
Установка
Установите библиотеку
Установите модель Blackstone
О модели
Трубопровод
Названный признак
Текст -категоризатор
Использование
Применение модели NER
Визуализация сущностей
Применение модели категории текста
Пользовательские расширения трубопровода
Аббревиатура и резолюция определения длинного формирования
Справочное обнаружение ссылки на соединение
Линкер законодательства
Сегмент предложения
В последние несколько лет наблюдался всплеск деятельности на пересечении закона и технологий. Однако в Соединенном Королевстве огромная основная часть этой деятельности произошла в юридических фирмах и в других коммерческих контекстах. Следствием этого является то, что, несмотря на бесконечный шквал развития в юридической информитике, практически ни одно из исследований не предоставляется на основе с открытым исходным кодом.
Более того, основная исследования в области юридической информированной области Великобритании (открытая или закрытая) была сосредоточена на разработке приложений NLP для автоматизации контрактов и других юридических документов, которые носят транзакционные характеристики. Это понятно, потому что основными благотворителями юридических исследований НЛП в Великобритании являются юридические фирмы и юридические фирмы, как правило, нельзя найти трудно
Проблема, как мы видим, заключается в том, что юридические исследования НЛП в Великобритании были концентрированы на коммерческих приложениях и что стоит сделать инвестиции в разработку юридических исследований НЛП в отношении других юридических текстов, таких как суждения, научные статьи, аргументы скелета и заявления.
Примечание! Настоятельно рекомендуется установить Blackstone в виртуальную среду! Смотрите здесь, чтобы узнать больше о виртуальных средах. Блэкстоун должен совместимы с Python 3.6 и выше.
Чтобы установить Blackstone, следуйте этим шагам:
Первый шаг - установить библиотеку, которая в настоящее время содержит несколько пользовательских компонентов Spacy. Установите библиотеку так:
pip install blackstone
Второй шаг - установить модель Spacy. Установите модель так:
pip install https://blackstone-model.s3-eu-west-1.amazonaws.com/en_blackstone_proto-0.0.1.tar.gz
Если вы разрабатываете Blackstone, вы можете установить из Source, как SO:
pip install --editable .
pip install -r dev-requirements.txt
Это самый первый выпуск Blackstone, и модель лучше всего рассматривать как прототип ; Это грубо по краям и представляет собой первый шаг в более крупной текущей программе исследований с открытым исходным кодом в NLP о легальных текстах, выполняемых ICLR & D.
С этим, вот краткое краткое изложение того, что происходит в прото -модели.
Модель Proto, включенная в этот релиз, имеет следующие элементы в его трубопроводе:
Благодаря дефициту tokenizer данных обучения в речее и зависимости для юридического текста, компоненты трубопровода tagger и parser были взяты из модели SPACY en_core_web_sm . В целом, эти компоненты, по -видимому, выполняют достойную работу, но было бы хорошо вернуться к этим компонентам с помощью пользовательских данных обучения в какой -то момент в будущем.
Компоненты ner и textcat - это пользовательские компоненты, подготовленные специально для Blackstone.
Компонент NER модели Blackstone был обучен для обнаружения следующих типов объектов:
| ENT | Имя | Примеры |
|---|---|---|
| Касенамен | Имена случаев | Например, Смит против Джонса , в Ре -Джонсе , в случае Джонса |
| Цитирование | Цитаты (уникальные идентификаторы для зарегистрированных и не сообщаемых случаев) | Например (2002) 2 CR App R 123 |
| Инструмент | Письменные юридические инструменты | Например, Закон о краже 1968 года, Европейская конвенция о правах человека, СЛР |
| ОБЕСПЕЧЕНИЕ | Подразделение в письменном юридическом инструменте | Например, раздел 1, ст. 2 (3) |
| СУД | Суд или трибунал | Например, апелляционный суд, верхний трибунал |
| СУДИТЬ | Ссылки на судьи | например, eady J, лорд Бингхэм из Корнхилла |
Этот релиз Blackstone также поставляется с текстовым категоризом. В отличие от компонента NER (который был обучен для идентификации токенов и серии интересующих токенов), текстный категоризер классифицирует более длительные промежутки текста, такие как предложения.
Текстовый категорист был обучен классифицировать текст в соответствии с одной из пяти взаимоисключающих категорий, которые следующие:
| Кот | Описание |
|---|---|
| Аксиома | Текст, по-видимому, постулят устоявшийся принцип |
| ЗАКЛЮЧЕНИЕ | Текст, по -видимому, делает вывод, удержание, определение или заключение |
| ПРОБЛЕМА | Текст, по -видимому, обсуждает проблему или вопрос |
| Legal_test | Тест, по -видимому, обсуждает юридический тест |
| Ун | Текст не попадает в одну из четырех категорий выше |
Вот пример того, как модель применяется к некоторому тексту, взятому из пункта 31 постановки Суда Отдела по делу R (Miller) v Государственного секретаря по выходу из Европейского Союза (Birnie Intervining) [2017] UKSC 5; [2018] AC 61:
import spacy
# Load the model
nlp = spacy . load ( "en_blackstone_proto" )
text = """ 31 As we shall explain in more detail in examining the submission of the Secretary of State (see paras 77 and following), it is the Secretary of State’s case that nothing has been done by Parliament in the European Communities Act 1972 or any other statute to remove the prerogative power of the Crown, in the conduct of the international relations of the UK, to take steps to remove the UK from the EU by giving notice under article 50EU for the UK to withdraw from the EU Treaty and other relevant EU Treaties. The Secretary of State relies in particular on Attorney General v De Keyser’s Royal Hotel Ltd [1920] AC 508 and R v Secretary of State for Foreign and Commonwealth Affairs, Ex p Rees-Mogg [1994] QB 552; he contends that the Crown’s prerogative power to cause the UK to withdraw from the EU by giving notice under article 50EU could only have been removed by primary legislation using express words to that effect, alternatively by legislation which has that effect by necessary implication. The Secretary of State contends that neither the ECA 1972 nor any of the other Acts of Parliament referred to have abrogated this aspect of the Crown’s prerogative, either by express words or by necessary implication.
"""
# Apply the model to the text
doc = nlp ( text )
# Iterate through the entities identified by the model
for ent in doc . ents :
print ( ent . text , ent . label_ )
> >> European Communities Act 1972 INSTRUMENT
> >> article 50 EU PROVISION
>> > EU Treaty INSTRUMENT
> >> Attorney General v De Keyser ’ s Royal Hotel Ltd CASENAME
> >> [ 1920 ] AC 508 CITATION
>> > R v Secretary of State for Foreign and Commonwealth Affairs , Ex p Rees - Mogg CASENAME
>> > [ 1994 ] QB 552 CITATION
> >> article 50 EU PROVISION Spacy поставляется с отличным набором визуализаторов, в том числе визуализатор для предсказаний NER. Blackstone поставляется с пользовательской цветовой палитрой, которую можно использовать, чтобы облегчить дистигрирование сущностей в исходном тексте при использовании смещения.
"""
Visualise entities using spaCy's displacy visualiser.
Blackstone has a custom colour palette: `from blackstone.displacy_palette import ner_displacy options`
"""
import spacy
from spacy import displacy
from blackstone . displacy_palette import ner_displacy_options
nlp = spacy . load ( "en_blackstone_proto" )
text = """
The applicant must satisfy a high standard. This is a case where the action is to be tried by a judge with a jury. The standard is set out in Jameel v Wall Street Journal Europe Sprl [2004] EMLR 89, para 14:
“But every time a meaning is shut out (including any holding that the words complained of either are, or are not, capable of bearing a defamatory meaning) it must be remembered that the judge is taking it upon himself to rule in effect that any jury would be perverse to take a different view on the question. It is a high threshold of exclusion. Ever since Fox’s Act 1792 (32 Geo 3, c 60) the meaning of words in civil as well as criminal libel proceedings has been constitutionally a matter for the jury. The judge’s function is no more and no less than to pre-empt perversity. That being clearly the position with regard to whether or not words are capable of being understood as defamatory or, as the case may be, non-defamatory, I see no basis on which it could sensibly be otherwise with regard to differing levels of defamatory meaning. Often the question whether words are defamatory at all and, if so, what level of defamatory meaning they bear will overlap.”
18 In Berezovsky v Forbes Inc [2001] EMLR 1030, para 16 Sedley LJ had stated the test this way:
“The real question in the present case is how the courts ought to go about ascertaining the range of legitimate meanings. Eady J regarded it as a matter of impression. That is all right, it seems to us, provided that the impression is not of what the words mean but of what a jury could sensibly think they meant. Such an exercise is an exercise in generosity, not in parsimony.”
"""
doc = nlp ( text )
# Call displacy and pass `ner_displacy_options` into the option parameter`
displacy . serve ( doc , style = "ent" , options = ner_displacy_options )Что производит что -то, что выглядит так:
Текстовый категоризер Блэкстоуна генерирует прогнозируемую категоризацию для doc . Компонент трубопровода textcat был разработан для применения к отдельным предложениям, а не к одному документу, состоящему из многих предложений.
import spacy
# Load the model
nlp = spacy . load ( "en_blackstone_proto" )
def get_top_cat ( doc ):
"""
Function to identify the highest scoring category
prediction generated by the text categoriser.
"""
cats = doc . cats
max_score = max ( cats . values ())
max_cats = [ k for k , v in cats . items () if v == max_score ]
max_cat = max_cats [ 0 ]
return ( max_cat , max_score )
text = """
It is a well-established principle of law that the transactions of independent states between each other are governed by other laws than those which municipal courts administer.
It is, however, in my judgment, insufficient to react to the danger of over-formalisation and “judicialisation” simply by emphasising flexibility and context-sensitivity.
The question is whether on the facts found by the judge, the (or a) proximate cause of the loss of the rig was “inherent vice or nature of the subject matter insured” within the meaning of clause 4.4 of the Institute Cargo Clauses (A).
"""
# Apply the model to the text
doc = nlp ( text )
# Get the sentences in the passage of text
sentences = [ sent . text for sent in doc . sents ]
# Print the sentence and the corresponding predicted category.
for sentence in sentences :
doc = nlp ( sentence )
top_category = get_top_cat ( doc )
print ( f" " { sentence } " { top_category } n " )
> >> "In my judgment, it is patently obvious that cats are a type of dog." ( 'CONCLUSION' , 0.9990500807762146 )
> >> "It is a well settled principle that theft is wrong." ( 'AXIOM' , 0.556410014629364 )
> >> "The question is whether on the facts found by the judge, the (or a) proximate cause of the loss of the rig was “inherent vice or nature of the subject matter insured” within the meaning of clause 4.4 of the Institute Cargo Clauses (A)." ( 'ISSUE' , 0.5040785074234009 )В дополнение к основной модели, этот выпуск Blackstone поставляется с тремя пользовательскими компонентами:
AbbreviationDetector() в [Scispacy] и разрешает сокращенную форму для его определения длинной формы, например, ECtHR -> European Court of Human Rights .CASENAME и CITATION , позволяющие объединить CITATION с его родительским CASENAME .Авторы юридических документов нередко являются сокращенными многословными терминами, которые будут использоваться вместо длинной формы через остальную часть документа. Например,
Европейский суд по правам человека («ECTHR») является судом в конечном итоге ответственным за применение Европейской конвенции о правах человека («ECHR»).
Компонент обнаружения аббревиатуры в Блэкстоуне стремится решить эту проблему путем реализации очень модифицированной версии AbbreviationDetector() (которая сама по себе является реализацией подхода, изложенной в этой статье: https://psb.stanford.edu/psb-online/proeadings/psb03/schwartz.pdf). Наша реализация по -прежнему имеет некоторые проблемы, но пример его использования заключается в следующем:
import spacy
from blackstone . pipeline . abbreviations import AbbreviationDetector
nlp = spacy . load ( "en_blackstone_proto" )
# Add the abbreviation pipe to the spacy pipeline.
abbreviation_pipe = AbbreviationDetector ( nlp )
nlp . add_pipe ( abbreviation_pipe )
doc = nlp ( 'The European Court of Human Rights ("ECtHR") is the court ultimately responsible for applying the European Convention on Human Rights ("ECHR").' )
print ( "Abbreviation" , " t " , "Definition" )
for abrv in doc . _ . abbreviations :
print ( f" { abrv } t ( { abrv . start } , { abrv . end } ) { abrv . _ . long_form } " )
> >> "ECtHR" ( 7 , 10 ) European Court of Human Rights
>> > "ECHR" ( 25 , 28 ) European Convention on Human Rights Компонент обнаружения ссылки на соединение в Блэкстоуне предназначен для женитьбы на объектах CITATION с их родительскими объектами CASENAME .
Общие юрисдикции общего права обычно связаны с ссылками на дело посредством связи имени (как правило, полученным от имен сторон в этом деле) и некоторой уникальной цитаты, чтобы определить, где было сообщено об этом случае, как и так:
Regina V Horncastle [2010] 2 AC 373
Модель Blackstone NER отдельно пытается идентифицировать CASENAME и CITATION сущности. Тем не менее, это потенциально полезно (особенно в контексте извлечения информации), чтобы вытянуть эти сущности в качестве пар.
CompoundCases() применяет пользовательскую трубу после NER и идентифицирует пары CASENAME / CITATION в двух сценариях:
import spacy
from blackstone . pipeline . compound_cases import CompoundCases
nlp = spacy . load ( "en_blackstone_proto" )
compound_pipe = CompoundCases ( nlp )
nlp . add_pipe ( compound_pipe )
text = "As I have indicated, this was the central issue before the judge. On this issue the defendants relied (successfully below) on the decision of the High Court in Gelmini v Moriggia [1913] 2 KB 549. In Jones' case [1915] 1 KB 45, the defendant wore a hat."
doc = nlp ( text )
for compound_ref in doc . _ . compound_cases :
print ( compound_ref )
> >> Gelmini v Moriggia [ 1913 ] 2 KB 549
>> > Jones ' case [ 1915 ] 1 KB 45 Линкер законодательства Блэкстоуна пытается сопоставить ссылку на PROVISION своему родительскому INSTRUMENT , используя модель NER для определения наличия INSTRUMENT , а затем навигации по дереву зависимости для определения положения детей.
Как только Блэкстоун определил PROVISION : пара INSTRUMENT , он попытается сгенерировать целевые URL -адреса как положения, так и инструмента на Legislation.gov.uk.
import spacy
from blackstone . utils . legislation_linker import extract_legislation_relations
nlp = spacy . load ( "en_blackstone_proto" )
text = "The Secretary of State was at pains to emphasise that, if a withdrawal agreement is made, it is very likely to be a treaty requiring ratification and as such would have to be submitted for review by Parliament, acting separately, under the negative resolution procedure set out in section 20 of the Constitutional Reform and Governance Act 2010. Theft is defined in section 1 of the Theft Act 1968"
doc = nlp ( text )
relations = extract_legislation_relations ( doc )
for provision , provision_url , instrument , instrument_url in relations :
print ( f" n { provision } t { provision_url } t { instrument } t { instrument_url } " )
> >> section 20 http : // www . legislation . gov . uk / ukpga / 2010 / 25 / section / 20 Constitutional Reform and Governance Act 2010 http : // www . legislation . gov . uk / ukpga / 2010 / 25 / contents
> >> section 1 http : // www . legislation . gov . uk / ukpga / 1968 / 60 / section / 1 Theft Act 1968 http : // www . legislation . gov . uk / ukpga / 1968 / 60 / contentsБлэкстоун поставляется с пользовательским сегментом предложений, основанного на правилах, в котором рассматривается ряд характеристик, присущих юридическим текстам, которые имеют тенденцию сбивать из строя правила сегментации предложений.
Такое поведение может быть расширено путем необязательного прохождения списка моделей сопоставления в стиле Spacy, которые явно предотвратят обнаружение границ предложения внутри совпадений.
import spacy
from blackstone . pipeline . sentence_segmenter import SentenceSegmenter
from blackstone . rules import CITATION_PATTERNS
nlp = spacy . load ( "en_blackstone_proto" )
# add the Blackstone sentence_segmenter to the pipeline before the parser
sentence_segmenter = SentenceSegmenter ( nlp . vocab , CITATION_PATTERNS )
nlp . add_pipe ( sentence_segmenter , before = "parser" )
doc = nlp (
"""
The courts in this jurisdiction will enforce those commitments when it is legally possible and necessary to do so (see, most recently, R. (on the application of ClientEarth) v Secretary of State for the Environment, Food and Rural Affairs (No.2) [2017] P.T.S.R. 203 and R. (on the application of ClientEarth) v Secretary of State for Environment, Food and Rural Affairs (No.3) [2018] Env. L.R. 21). The central question in this case arises against that background.
"""
)
for sent in doc . sents :
print ( sent . text )Мы хотели бы поблагодарить следующих людей/организаций, которые помогли нам (прямо или косвенно) построить этот прототип.