첫 번째 Python 패키지 인 englishidioms
의 출시를 발표하게되어 기쁩니다. 이 패키지는 문장 내에서 영어 관용구, 문구 및 문구 동사를 식별하기위한 강력한 도구이며 22,209 개의 고유 표현 데이터베이스가 있습니다.
배경 : NLP (Natural Language Processing) 프로젝트의 일환으로 영어 문장 내에서 관용 표현을 인식 할 수있는 파이썬 패키지가 필요하다는 것을 알았습니다. 놀랍게도 적절한 솔루션을 찾을 수 없었기 때문에 처음부터 하나를 만들기로 결정했습니다.
설치 : PIP를 사용하여 패키지를 쉽게 설치할 수 있습니다 : pip install englishidioms
사용 방법 :
>>> 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.'}]
논쟁
sentence
(str) - 분석하려는 영어 문장 (필수).limit
(int) - 일치 점 (기본값 : 10)에 따라 순서대로 최대 결과 수입니다.html
(BOOL) - 사전에서 원래 형식을 보존하기 위해 HTML 마크 업의 반환 구 및 정의 (기본값 : false).span
(bool) - 문장에서 일치하는 스팬을 반환합니다 (기본값 : false).entry_range
bool) - 디버깅을위한 사전 시작/끝 줄 (기본값 : false).entry_id
(bool) - 디버깅을위한 rases.json의 return dictionary entry entr (default : false).작동 방식 (단순화) :
이 패키지는 "미국 관용구와 구두 동사의 McGraw-Hill 사전"에서 모든 사전 항목을 구문 분석하여 개발되었습니다. Python-Docx와 같은 Python 라이브러리를 사용하고 사전 정의 된 형식을 활용하여 각 항목에서 핵심 사항을 추출했습니다. 이 핵심 사항은 다음과 같습니다.
상수 : 관용 표현의 핵심을 형성하는 고정 된 단어의 단어. 변수 : 광범위하게 일치 할 수있는 가변 단어 클래스. 선택적 상수 : 단일 관용 표현식 내의 추가 선택 단어 또는 문구. 동사 : 일반적으로 관용구 앞에있는 동사.
예를 들어, 사전 항목을 고려하십시오.
*A (죽은) Ringer (누군가를 위해 ) 그림. 다른 사람과 외관이 매우 밀접하게 비슷합니다. (*일반적으로 : be ~;려면 ~.) _ 당신은 내 동생에게 죽은 벨소리가 확실합니다. _ 그는 척에게 벨소리가 아닌가?
이 항목의 경우 다음을 식별합니다.
'find_idioms'메소드를 호출 할 때마다 검색 알고리즘은 22,209 사전 항목에서 이러한 주요 포인트를 검사하고 문법 변형과 단어 순서를 고려하여 주어진 문장과 일치시킵니다. 그런 다음 일치하는 항목 목록을 반환합니다.
성능:
이 패키지를 책에서 40,442 문장으로 테스트했으며 91%의 사례에서 올바른 일치 사전 항목을 감지했습니다. 또한 문장 처리를위한 평균 실행 시간은 약 3 초입니다.
프로젝트 세부 사항
이 프로젝트는 몇 가지 주요 단계로 나뉩니다.
1. 데이터 얻기 :
우리는 "미국 관용구와 구두 동사의 McGraw-Hill 사전"에서 소스 자료를 얻는 것으로 시작합니다. 이 리소스의 사본에 PDF 형식으로 액세스 할 수 있습니다.
다음으로 PDF를보다 유용한 형식 인 'Clean-Output.docx'라는 DOCX 문서로 변환합니다. 우리는 2 열 레이아웃에서 단일 열 텍스트로 재구성합니다. 이 전환 프로세스의 기술적 세부 사항은이 문서에서 논의되지 않습니다.
2. 데이터 준비 :
우리는 일련의 12 단계를 거쳐 'clean-output.docx'에서 데이터를 처리하고 개선하고 'phrases.json'에 저장합니다. 각 단계는 특정 파이썬 모듈에 의해 관리됩니다.
'clean-output.docx'의 데이터에 대한 포괄적 인 데이터베이스 인 'phrases.json'의 최종 버전을 작성하려면이 모듈을 지정된 순서로 실행하는 것이 중요합니다. Windows CMD 에서이 명령을 사용하여 순차적으로 실행할 수 있습니다.
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. 핵심 기능 :
프로젝트의 핵심은 'l_algorithm.py'모듈입니다. 관용적 표현을 영어 문장과 일치시키기 위해 'phrases.json'을 사용합니다. 이 모듈은 패키지에 중요하므로 문장에서 관용구, 문구 및 구 동사를 식별 할 수 있습니다.
프로젝트의 핵심은 'l_algorithm.py'모듈이며 'EnglishIdioms'디렉토리에 있습니다. 관용적 표현을 영어 문장과 일치시키기 위해 'phrases.json'을 사용합니다. 'l_algorithm.py'및 'phrases.json'을 'EnglishIdioms'디렉토리에 유지하는 것은 이중 목적을 제공합니다.
패키지 크기 감소 : 이러한 코어 구성 요소를 분리하여 디스크 공간 측면에서 패키지를 더 작게 만듭니다. 즉, 사용자는 필수 구성 요소 만 설치하면 패키지를보다 가볍고 효율적으로 만듭니다.
최소화 된 종속성 : 'l_algorithm.py'및 'phrases.json'조합은 전체 패키지에 비해 외부 종속성이 적습니다. 이는 최종 사용자의 설치 프로세스를 단순화하여 특정 사용에 필요하지 않은 추가 라이브러리 및 요구 사항을 설치해야 할 필요성을 줄입니다.
'EnglishIdioms'디렉토리에는 'l_algorithm.py'를 실행하는 데 필요한 세 가지 필요한 NLTK 리소스도 포함되어 있습니다.
이 간소화 된 접근 방식을 채택함으로써 사용자는 불필요한 오버 헤드없이 패키지의 핵심 기능에 빠르고 쉽게 액세스 할 수 있습니다.
4. 점검 및 테스트 :
'l_algorithm.py'에서 데이터 품질과 검색 알고리즘의 효과를 보장하기 위해 세 가지 추가 모듈을 사용합니다.
패키지를 사용하려는 최종 사용자의 경우 'l_algorithm.py'및 'phrases.json'만 필요합니다. 다른 모듈은 주로 개발 중 데이터 처리 및 검증을위한 것입니다.
기여하는 방법 :
전체 프로젝트는 오픈 소스이며 Github에서 사용할 수 있습니다. 자유롭게 코드를 탐색하고 개선하며 개발에 기여하십시오.
면책 조항 : 이 파이썬 패키지는 사용자에게 "미국의 관용구와 구두 동사의 McGraw-Hill Dictionary"에 나타나는 관용구 및 구두 동사 모음에 액세스 할 수 있도록 설계되었습니다. 이 패키지는 사전의 저작권 보유자 인 McGraw-Hill Companies, Inc.가 승인하거나 승인하지 않습니다.
저작권 통지 : "미국식 관용구 및 구두 동사의 McGraw-Hill 사전"은 저작권이있는 자료이며, 그 사용은 McGraw-Hill Companies, Inc가 설정 한 저작권 용어에 따릅니다.이 패키지는 개인 사본에서 파생 된 컨텐츠에 의존합니다. 책.
의도 된 사용 : 이 파이썬 패키지는 교육 및 연구 목적으로 만, 개인적이고 비상업적 인 사용을위한 것입니다. 상업용 응용 프로그램을위한 것이 아닙니다.
사용자 책임 : 이 Python 패키지를 사용함으로써 귀하는 귀하가 저작권법과 원래 작업에 요약 된 사용 약관을 준수해야한다는 것을 인정합니다. 귀하는 개인적이고 비상업적 목적으로만이 패키지를 사용할 수 있습니다. 이 패키지의 출력의 상업용 응용 프로그램 또는 배포는 게시자 인 McGraw-Hill Companies, Inc.의 사전 서면 동의가 필요할 수 있습니다. 정기적 으로이 패키지를 정기적으로 사용하려는 사용자는 자신의 개인 사본을 구매하는 것을 고려하는 것이 좋습니다. 저자를 지원하고 저작권법을 준수하기 위해 "미국 관용구와 구절 동사의 McGraw-Hill 사전".
저자 지원 : 상업적 목적 으로이 패키지의 내용을 사용하려면 McGraw-Hill Companies, Inc.로부터 필요한 권한과 라이센스를 얻는 것이 좋습니다. "미국 관용구와 구두 동사의 McGraw-Hill 사전"의 개인 사본을 구매합니다.
책임 : 이 파이썬 패키지의 제작자와 관리자는 저작권 또는 패키지의 오용에 대한 책임을지지 않습니다. 사용자는이 패키지를 사용할 때 모든 법률 및 저작권 요구 사항을 준수 할 책임이 있습니다.
저작권 보유자와 저자의 권리를 존중 하면서이 패키지의 윤리적이고 합법적 인 사용을 권장합니다. 책임감있게 사용하십시오.