É pronunciado GIF

É pronunciado GIF

Nó Fonte: 3043181

Como a temporada de férias está chegando e uma escriba de Hackaday está protegida das tempestades do Atlântico em seu confortável ninho, é hora de ela considerar os fundamentos de seu ofício. Escrita, ortografia e língua inglesa; questões como por que os americanos têm grafias em inglês diferentes dos britânicos, mas talvez a mais importante de todas para os leitores do Hackaday; é “gif” ou é “jif”? Esta ou a frase engraçada sobre a grafia pode ser considerada uma isca de clique óbvia, mas, em vez disso, é uma maneira de mergulhar no estudo da linguagem. Como decidimos as convenções da nossa linguagem, e deveríamos nos preocupar muito com elas?

Não acredite em tudo que você lê na escola

Uma foto de uma sala de aula americana em 1004
Nem tudo que você aprende aqui vale a pena se apegar. Harrison Keeley, CC BY 4.0.

Somos enviados para a escola para aprender coisas. Durante esse período, somos privados da nossa liberdade, à medida que uma sucessão de adultos tenta, ano após ano, encher-nos a cabeça com factos. Algumas delas achamos interessantes e outras nem tanto, mas na maior parte somos desencorajados de pensar por nós mesmos e, em vez disso, espera-se que aprendamos de cor um conjunto de currículos fixos.

Assim, embora os escritores tenham de descobrir por si próprios que o inglês é uma língua em constante evolução, através da qual podem libertar-se destes limites artificiais que a escola lhes impôs, muitas pessoas continuam com medo de colocar a cabeça acima do parapeito linguístico.

O resultado é que os desvios percebidos das regras são atacados por aqueles que têm medo de acompanhar a língua, e até encontramos as nossas próprias Guerras Santas linguísticas para travar. O mencionado acima sobre “gif” versus “jif” é um ótimo exemplo, realmente importa tanto se você pronuncia com um “G” forte porque é assim que a maioria das pessoas diz, ou como se fosse um “J” porque o criador do formato de arquivo disse assim? Na verdade não, porque o inglês é uma língua em evolução nas mãos daqueles que a falam, não nas mãos das pessoas que escrevem livros escolares.

Infelizmente, ainda não é hora de nos alegrarmos, porque mesmo que algumas dessas regras possam mudar com o tempo, não é gratuito para todos. A linguagem tem que ser mutuamente inteligível; não podemos simplesmente inventá-la à medida que avançamos. Os profissionais adotam o que chamam de abordagem descritiva, onde contam como você usa a linguagem, em contraste com a prescrição de como você rede de apoio social estar usando. Eles fazem isso por meio de análises estatísticas de grandes corpora, corpos de texto, para ver quais formas estão ganhando mais força. E é aqui que isso se torna interessante, porque uma análise linguística em larga escala pode lhe dizer coisas que você não sabia sobre um assunto sobre o qual você achava que sabia muito.

Como não fui o inventor da linguística computacional

Um raspberry Pi modelo b em cima de um gabinete de disco rígido USB
Este Raspberry Pi empoeirado e disco rígido ficaram atrás da minha TV por cerca de uma década processando texto de feeds RSS

Tive minha introdução à análise linguística há cerca de quinze anos, quando estava trabalhando para melhorar a visibilidade do mecanismo de pesquisa de um site muito grande. Este não era o mundo duvidoso de fumaça e espelhos da manipulação obscura dos mecanismos de pesquisa naquela época; em vez disso, eu estava lá para melhorar enormemente o conteúdo do site e, em suma, torná-lo muito mais interessante tanto para os humanos quanto para os mecanismos de pesquisa. Nesse empreendimento, um pouco de análise de texto é incrivelmente útil e, antes que eu percebesse, alguns scripts PHP simples para manipulação de texto se tornaram um conjunto completo.

Sem saber que já era um campo, inventei todo o assunto da linguística computacional para mim mesmo e, embora agora saiba que esse trabalho é ridiculamente ineficiente, ele entregou a mercadoria e ajudou a dizer a mim e ao proprietário do site exatamente onde eles estavam. deu errado.

Tendo adquirido o gosto pela análise de linguagem, tornou-se um daqueles projetos que permaneceu comigo por muitos anos, pois voltei a ele de vez em quando, à medida que meu interesse aumentava e diminuía, e meu conjunto original se transformava em algo muito mais útil. E esse é o objetivo de escrever sobre isso aqui, porque não há nada muito difícil nisso. Se eu posso fazer isso, você também pode, então vale a pena tentar descrevê-lo.

Para construir um corpus de texto para análise, primeiro é necessário começar com algum texto. Eu estava particularmente interessado em dados de séries temporais tanto quanto em linguagem, então tomei como fonte tantos feeds RSS quanto pude encontrar. Isso me proporcionou um suprimento interminável de novos textos para adicionar à minha análise, e meu carro-chefe tem sido um Raspberry Pi com um grande disco rígido USB que passa silenciosamente uma parte do dia buscando histórias e processando-as.

Então, diante de um trecho de texto recém-recuperado, qual é o meu primeiro passo? Antes de mais nada, para eliminar o HTML estranho e o lixo do site, algo que costumava ser um grande aborrecimento de regras até que descobri que o Lynx tem uma opção de linha de comando -dump que faz todo o trabalho pesado. Então é hora de dividi-lo por delimitadores de frase, como pontos finais e pontos de interrogação, e dividir as frases por palavras em uma matriz. Posso então percorrer palavra por palavra e processar o que encontrar em meu armazenamento de dados.

Como você busca rapidamente uma palavra em um bilhão?

Quando você tem alguns milhares de pontos de dados, há muitas opções quando se trata de armazenamento de dados. Um banco de dados SQL, por exemplo, é uma ótima ideia. Mas um corpus atinge um tamanho enorme e rapidamente deixa para trás as abordagens normais de armazenamento. Pode haver algum software incrível capaz de lidar com bilhões de instâncias de palavras, mas nunca o encontrei, então optei por algo integrado ao meu sistema de arquivos. Eu usaria caminhos de sistema de arquivos como consultas, criando uma árvore de diretórios de palavras que eu poderia consultar simplesmente digitando um caminho.

Um gráfico dos incidentes de “gastos” versus “cortes” nas notícias do Reino Unido no início de 2014
Muitos pequenos arquivos JSON criam um gráfico muito rapidamente

Assim, à medida que passo pelas palavras de uma frase, estou interessado em suas frequências e em suas colocações, ou seja, as palavras que aparecem ao lado delas. Portanto, para cada palavra eu criaria um diretório com um arquivo JSON dentro para registrar sua ocorrência e, dentro desse diretório, criaria um subdiretório para a palavra seguinte com um arquivo JSON correspondente. Assim, por exemplo, eu poderia encontrar a popularidade da palavra “Neil” abrindo o JSON no diretório /neil/ e encontrar a prevalência da frase “Neil Armstrong” em /neil/armstrong/. Eu também poderia comparar a ocorrência relativa de Neils Armstrong e Young, olhando em /neil/armstrong/ e /neil/young/. O bom dessa abordagem de sistema de arquivos é que o script de processamento do lado do servidor, ainda em PHP, era muito simples, e meu cliente poderia ser algum Javascript no navegador que recuperaria todos aqueles JSONs em tempo real do sistema de arquivos.

A beleza de ter bilhões de palavras de análise em inglês a apenas um clique do mouse é que posso facilmente verificar qual é a versão mais apropriada de uma frase, quão popular é realmente uma frase efêmera e até mesmo a popularidade relativa de figuras públicas como políticos. É como ter meu próprio verificador de verdade linguística sem ter que confiar no que os outros me dizem, o que no meu ramo de trabalho pode ser muito útil. É claro que isso tem desvantagens, por exemplo, fazer qualquer trabalho com uma árvore de muitos milhões de subdiretórios e pequenos arquivos JSON torna-se muito tedioso. Criar um tarball, mesmo com uma estrutura de dados de tamanho médio, leva alguns dias, o que significa que movê-lo para um novo disco requer algum planejamento.

Esta pode não ter sido a tarifa usual para descrever um projeto pessoal no Hackaday, mas inclui não menos tempo de desenvolvimento e evolução tecnológica do que qualquer um dos meus trabalhos de hardware. Se você quiser seguir meus passos, receio ter vergonha de liberar minha bagunça mal formada de PHP e Javascript antigos, mas como sua função está muito bem descrita acima, acho que a maioria de vocês poderia escrever um você mesmo se você se voltasse para isso. Mesmo que não saiba, espero que isso tenha lhe dado uma ideia de como funciona um analisador de corpus e possa lhe dizer coisas que você não sabia, e você seguirá meu conselho de não ouvir tudo o que seu professor lhe disse.

Carimbo de hora:

Mais de Hackear um dia