Tenho o prazer de anunciar o lançamento do meu primeiro pacote Python, englishidioms
. Este pacote é uma ferramenta poderosa para identificar idiomas, frases e verbos frasais em inglês dentro de frases, com um banco de dados de 22.209 expressões únicas.
Antecedentes: Como parte de um projeto de processamento de linguagem natural pessoal (PNL), achei a necessidade de um pacote Python capaz de reconhecer expressões idiomáticas nas frases em inglês. Para minha surpresa, não consegui encontrar uma solução adequada, então decidi construir uma do zero.
Instalação: você pode instalar facilmente o pacote usando o pip: pip install englishidioms
Como usá -lo:
>>> from englishidioms import find_idioms
>>> sentence = "The plan didn't work, but I'll give you an a for effort for trying."
>>> results = find_idioms(sentence, limit=1)
>>> print(results)
[{'phrase': '*an A for effort', 'definition': 'acknowledgement for having tried to do something, even if it was not successful. (*Typically: get ~; give someone ~.) _ The plan didn’t work, but I’ll give you an A for effort for trying.'}]
Argumentos
sentence
(STR) - A frase em inglês que você deseja analisar (obrigatório).limit
(INT) - Número máximo de resultados, ordenado por pontos de correspondência (padrão: 10).html
(BOOL) - Frase de retorno e definição na marcação HTML para preservar a formatação original do dicionário (padrão: false).span
(BOOL) - Retorne a extensão correspondente na frase (padrão: false).entry_range
Bool) - Retorne o dicionário de início/linha final para depuração (padrão: false).entry_id
(BOOL) - Retornar ID de entrada do dicionário em phrases.json para depuração (padrão: false).Como funciona (simplificado):
Este pacote foi desenvolvido analisando todas as entradas de dicionário no "McGraw-Hill Dictionary of American Dpressoms and Phrasal Verbs". Ao usar bibliotecas Python como Python-Docx e alavancar a formatação predefinida, extraí pontos-chave de cada entrada. Esses pontos -chave incluem:
Constantes: classes fixas de palavras que formam o núcleo da expressão idiomática. Variáveis: Classes variáveis de palavras que podem ser amplamente correspondentes. Constantes opcionais: palavras ou frases opcionais adicionais dentro de uma única expressão idiomática. Verbos: verbos que geralmente precedem a frase idiomática.
Por exemplo, considere a entrada do dicionário:
*A (morto) Ringer (para alguém ) Fig. Muito parecido em aparência a outra pessoa. (*Normalmente: seja ~; pareça ~.) _ Você tem certeza de uma campainha morta para o meu irmão. _ Ele não é uma campainha para Chuck?
Para esta entrada, identificamos:
Com cada chamada para o método 'find_idioms', um algoritmo de pesquisa examina esses pontos -chave em 22.209 entradas de dicionário e as corresponde à sentença fornecida, considerando variações gramaticais e ordem de palavras. Em seguida, ele retorna uma lista de entradas correspondentes.
Desempenho:
Testei este pacote em 40.442 frases do livro e ele detectou a entrada correta do dicionário correspondente em 91% dos casos. Além disso, o tempo médio de execução para o processamento de uma frase é de aproximadamente 3 segundos.
Detalhes do projeto
Este projeto está dividido em várias etapas importantes:
1. Obtendo os dados:
Começamos obtendo o material de origem do "McGraw-Hill Dictionary of American idioms e verbos frasais". Você pode acessar uma cópia deste recurso no formato PDF aqui.
Em seguida, convertemos o PDF em um formato mais utilizável, um documento DOCX chamado 'Clean-output.docx'. Nós o reformatamos de um layout de duas colunas para um texto de uma única coluna. Observe que os detalhes técnicos desse processo de conversão não são discutidos nesta documentação.
2. Preparando os dados:
Passamos por uma série de doze etapas para processar e refinar os dados de 'limpe-output.docx' e salvá-los em 'phrases.json'. Cada etapa é gerenciada por um módulo Python específico:
É importante executar esses módulos na ordem especificada para criar a versão final de 'phrases.json', que é o banco de dados abrangente para dados de 'limpe-output.docx'. No Windows CMD, você pode executá -los sequencialmente usando este comando:
python A_breakitup.py && python A_splitrandom.py && python B_breakitup.py && python C_readit.py && python D_readit.py && python E_tidyup.py && python F_tidyup.py && python FF_manualoverride.py && python G_asterisk.py && python H_hyphenated_words.py && python I_getpatterns.py && python J_getwordforms.py && python K_getexamples.py
3. Funcionalidade central:
O coração do projeto é o módulo 'l_algorithm.py'. Ele utiliza 'phrases.json' para combinar expressões idiomáticas com frases em inglês. Este módulo é crucial para o pacote, permitindo a identificação de expressões idiomáticas, frases e verbos frasais em frases.
O coração do projeto é o módulo 'l_algorithm.py', localizado no diretório 'inglês'. Ele utiliza 'phrases.json' para combinar expressões idiomáticas com frases em inglês. Manter 'l_algorithm.py' e 'phrases.json' no diretório 'inglês' serve a um objetivo duplo:
Tamanho reduzido do pacote: ao isolar esses componentes principais, tornamos o pacote menor em termos de espaço em disco. Isso significa que os usuários precisam apenas instalar os componentes essenciais, tornando o pacote mais leve e eficiente.
Dependências minimizadas: a combinação 'l_algorithm.py' e 'phrases.json' requer menos dependências externas em comparação com todo o pacote. Isso simplifica o processo de instalação para usuários finais, reduzindo a necessidade de instalar bibliotecas e requisitos adicionais que podem não ser necessários para o uso específico.
O 'Diretório Inglês' também inclui três recursos NLTK necessários para executar 'l_algorithm.py'
Ao adotar essa abordagem simplificada, garantimos que os usuários possam acessar rápida e facilmente a funcionalidade principal do pacote sem nenhuma sobrecarga desnecessária.
4. Verificação e teste:
Para garantir a qualidade dos dados e a eficácia do algoritmo de pesquisa em 'l_algorithm.py', usamos três módulos adicionais:
Observe que, para os usuários finais que desejam usar o pacote, são necessários apenas 'l_algorithm.py' e 'phrases.json'. Os outros módulos são principalmente para processamento e validação de dados durante o desenvolvimento.
Como contribuir:
Todo o projeto é de código aberto e está disponível no GitHub. Sinta -se à vontade para explorar o código, fazer melhorias e contribuir para o seu desenvolvimento.
Isenção de responsabilidade: Este pacote Python foi projetado para fornecer aos usuários acesso a uma coleção de expressões idiomáticas e verbos frasais, à medida que aparecem no "McGraw-Hill Dictionary of American Idioms e verbos frasais". Observe que este pacote não é endossado ou autorizado pela McGraw-Hill Companies, Inc., o detentor de direitos autorais do Dicionário.
Aviso de direitos autorais: O "McGraw-Hill Dictionary of American Discooms and Frasal Verbs" é material protegido por direitos autorais, e seu uso está sujeito aos termos de direitos autorais estabelecidos pela McGraw-Hill Companies, Inc. Este pacote depende de conteúdo derivado de uma cópia pessoal de o livro.
Uso pretendido: Este pacote Python é destinado apenas a fins educacionais e de pesquisa e para uso pessoal e não comercial. Não se destina a aplicações comerciais.
Responsabilidade do Usuário: Ao usar este pacote Python, você reconhece que deve cumprir as leis de direitos autorais e os termos de uso descritos no trabalho original. Você tem permissão para usar este pacote apenas para fins pessoais e não comerciais. Qualquer aplicação comercial ou distribuição da produção deste pacote pode exigir o consentimento prévio por escrito do editor, a McGraw-Hill Companies, Inc. É fortemente incentivada que os usuários que pretendem usar esse pacote regularmente considerem a compra de sua própria cópia pessoal de O "McGraw-Hill Dictionary of American Discooms and Frasal Verbs" para apoiar os autores e aderir às leis de direitos autorais.
Apoie o autor: se você pretende usar o conteúdo deste pacote para fins comerciais, recomendo fortemente que você obtenha as permissões e licenças necessárias da McGraw-Hill Companies, Inc. para acessar toda a gama de idiomas e verbos frasais, considere Comprando sua própria cópia pessoal do "McGraw-Hill Dictionary de idiomas americanos e verbos frasais".
Responsabilidade: Os criadores e mantenedores deste pacote Python não serão responsabilizados por qualquer violação de direitos autorais ou uso indevido do pacote. Os usuários são responsáveis por aderir a todos os requisitos legais e de direitos autorais ao usar este pacote.
Encorajo o uso ético e legal deste pacote, respeitando os direitos dos detentores de direitos autorais e autores. Por favor, use -o com responsabilidade.