3 C
Nova Iorque
sábado, fevereiro 22, 2025

Analisando relatórios de legistas com LLMs — Wolfram Weblog


No Reino Unido, os formulários de Prevenção de Mortes Futuras (PFDs) desempenham um papel essential na garantia da segurança pública. Este é um tipo especial de relatório do legista que documenta mais do que apenas as circunstâncias da morte de um indivíduo. Os PFDs são emitidos quando um legista investiga uma morte e determina que um risco específico ou falha sistêmica – considerada evitável – desempenhou um papel significativo nessa morte.

Embora esses formulários tenham uma estrutura, na medida em que cada um deles possui seções que devem ser preenchidas pelos legistas, essas seções são preenchidas pelos legistas em linguagem pure, tornando a análise desses formulários (até agora) muito demorada, com cada relatório ter que ser lido por um humano.

da Wolfram Language A extensa lista de funções integradas permite que chamadas para vários modelos de linguagem grande (LLMs) diferentes sejam feitas de dentro do kernel do Wolfram. A implementação de LLMs dentro do Wolfram significa que a extração de dados não estruturados, como o conteúdo de um relatório do legista, é realizada em uma fração do tempo. Podemos então usar as ferramentas de análise de dados da Wolfram para processar o que coletamos.

Coletando os dados

Os Tribunais e Tribunais Judiciários do Reino Unido publicam uma amostra desses PFDs em seus website. Infelizmente, eles não possuem uma API pública para acessar esses arquivos, o que significa que a única maneira de visualizá-los é visitando a página e encontrando cada arquivo. Isso levaria muito tempo para ser feito manualmente, então precisaremos fazer um raspador de teia para passar e baixar automaticamente os PFDs:

Observação: todos os dados são retirados do Tribunais e Tribunais Judiciários Prevenção de Relatos de Mortes Futuras sob Licença governamental aberta v3 .0.

Envolva-se com o código desta postagem baixando o Wolfram Pocket book

Tempos

Vamos testar se esse código funciona obtendo as duas primeiras páginas de hyperlinks:

getPFDLista(1,2)

Brilhante! Agora vamos usá-lo para extrair mais páginas:

pfdLinks = getPFDLista(1,2)
pfdLinks = getPFDLista(1,60)
pfdLinks // Curto
Colocar
Exportar, String
Sistema aberto (

Vamos agora importar todos eles para obter o texto do documento:

pdfs = Importar(
pdfsWithLinks =

Com os dados agora recolhidos, uma aplicação interessante é rever a duração destas investigações traçadas ao longo do tempo. A maneira tradicional de fazer isso seria pedir a alguém que lesse todos esses relatórios e inserisse manualmente as datas de início e término de uma investigação em uma planilha. Isso parece muito demorado (e chato). Os LLMs podem ser extremamente úteis aqui, tendo conhecimento suficiente para ser capaz de ler o relatório e extrair apenas as duas datas, sem levar tanto tempo quanto um ser humano levaria.

Uma desvantagem do uso de LLMs é que muitas vezes são necessários muitos estímulos para restringir seu comportamento. Com sugestões imprecisas ou vagamente formuladas, o LLM muitas vezes acaba sendo muito inútil e produz resultados inesperados. Felizmente, a Wolfram tem uma boa maneira de combater essa desvantagem. LLMExampleFunção não apenas aceita a solicitação padrão como argumento, mas também permite que você passe uma lista de exemplos para o LLM seguir:

Alguns exemplos nesta postagem dependem de um modelo de linguagem grande (LLM) e exigem uma chave de API.

extractDates = LLMExampleFunction

Este pedaço de código usa LLMExampleFunção para criar uma função que receberá PDFs importados como entrada e fornecerá uma lista contendo as datas de início e término das investigações:

dataPares =
dataPares =
datePairs = extrairDatas
pfdsWithDates = Bloquear

Um gráfico da linha do tempo de uma amostra aleatória dos resultados mostra que ela retornou o que period esperado (cada linha do gráfico representa uma investigação):

TimelinePlot (DateInterval
DateListPlot (

Aplicações do mundo actual

Pesquisas acadêmicas anteriores de Alison Leary et al. investigou as principais áreas de preocupação que os legistas expressam em seus relatórios. Aqui, usamos as categorias resultantes dessa pesquisa e as aplicamos aos nossos próprios dados. Com isso, somos capazes de combinar insights anteriores da academia, o poder computacional da Wolfram Language e a fluência dos LLMs para reunir insights sobre um corpus de dados muito maior:

getConcerns
lista de preocupações =

Código de categorização

Em seguida, listamos as principais preocupações identificadas por Leary, passamos essas preocupações para um Função LLM e solicitamos que o modelo de linguagem aplique as categorias a cada arquivo no conjunto de dados:

categorias padrão
concernCategories = Tabela(
preocupaçãoCategorias =
fullDataSet = JoinAcross

Plotagem

Ao traçar cada categoria para cada ano para o qual temos relatórios em um gráfico de barras, podemos ver os PFDs mais comuns:

getListIndex
listIndex = getListIndex
lista = comprimento
legendas do gráfico = {
Gráfico de barras, agrupado

Um gráfico de barras empilhadas é uma forma alternativa de visualizar os mesmos dados que nos permite focar na proporção de cada categoria em cada ano. Embora aproximadamente consistentes ao longo dos anos, podemos detectar algumas tendências temporais, por exemplo, o pico nas questões de comunicação em 2020. A barra para 2024 é muito menor, uma vez que os dados foram recolhidos no verão de 2024, quando a maioria dos relatórios para esse ano tinha ainda não foi enviado:

Gráfico de barras, empilhado

Para visualizar melhor as tendências atuais, podemos tornar o gráfico de barras empilhadas proporcional a 100% das preocupações do ano. Nisso, vemos que as questões de comunicação estão no caminho certo para ter uma proporção maior da participação complete em comparação com anos anteriores, atingindo potencialmente os níveis que tinham em 2020:

Gráfico de barras, percentil

Curiosamente, estes resultados refletem principalmente os encontrados no trabalho de Leary. Isto sugere que o emprego de LLMs nas fases iniciais de tarefas que visam extrair insights da linguagem pure – como análises temáticas – pode ser um primeiro passo valioso para extrair significado de dados não estruturados. É provável que isto seja especialmente verdadeiro nos casos em que categorias amplas já foram definidas por trabalhos anteriores, e estas definições podem ser transmitidas como instruções aos LLMs.

Seguindo em frente

Usando a tecnologia Wolfram, podemos coletar e preparar dados rapidamente para passar mais tempo fazendo análises e encontrando soluções para melhorar práticas no futuro. Para obter ajuda further para aprender a computacionalizar seu fluxo de trabalho, não deixe de conferir o novo Assistente de pocket book Wolfram!

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles