Stanford NLP Group의 공식 Python NLP 라이브러리입니다. 여기에는 60개 이상의 언어로 다양하고 정확한 자연어 처리 도구를 실행하고 Python에서 Java Stanford CoreNLP 소프트웨어에 액세스하기 위한 지원이 포함되어 있습니다. 자세한 내용은 공식 홈페이지를 방문해 주세요.
이제 생의학 문헌 텍스트 및 임상 노트의 구문 분석 및 개체명 인식(NER)에 대한 원활한 환경을 제공하는 새로운 생의학 및 임상 영어 모델 패키지 컬렉션을 사용할 수 있습니다. 자세한 내용은 생체의학 모델 문서 페이지를 확인하세요.
연구에 이 라이브러리를 사용하는 경우 ACL2020 Stanza 시스템 데모 문서를 인용해 주시기 바랍니다.
@inproceedings { qi2020stanza ,
title = { Stanza: A {Python} Natural Language Processing Toolkit for Many Human Languages } ,
author = { Qi, Peng and Zhang, Yuhao and Zhang, Yuhui and Bolton, Jason and Manning, Christopher D. } ,
booktitle = " Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics: System Demonstrations " ,
year = { 2020 }
}
당사의 생물의학 및 임상 모델을 사용하는 경우 Stanza 생물의학 모델 설명 문서도 인용하십시오.
@article { zhang2021biomedical ,
author = { Zhang, Yuhao and Zhang, Yuhui and Qi, Peng and Manning, Christopher D and Langlotz, Curtis P } ,
title = { Biomedical and clinical {E}nglish model packages for the {S}tanza {P}ython {NLP} library } ,
journal = { Journal of the American Medical Informatics Association } ,
year = { 2021 } ,
month = { 06 } ,
issn = { 1527-974X }
}
이 저장소에서 신경 파이프라인의 PyTorch 구현은 Jason Bolton(@j38), Tim Dozat( @tdozat) 및 John Bauer(@AngledLuffa). 이 저장소의 유지 관리는 현재 John Bauer가 주도하고 있습니다.
Stanza를 통해 CoreNLP 소프트웨어를 사용하는 경우 여기에 설명된 대로 CoreNLP 소프트웨어 패키지와 해당 모듈을 인용하십시오("논문에서 Stanford CoreNLP 인용"). CoreNLP 클라이언트는 대부분 Arun Chaganty가 작성했으며 Jason Bolton은 두 프로젝트를 병합하는 데 앞장섰습니다.
CoreNLP의 Semgrex 또는 Ssurgeon 부분을 사용하는 경우 Semgrex 및 Ssurgeon에 대한 GURT 논문을 인용하십시오.
@inproceedings { bauer-etal-2023-semgrex ,
title = " Semgrex and Ssurgeon, Searching and Manipulating Dependency Graphs " ,
author = " Bauer, John and
Kiddon, Chlo{'e} and
Yeh, Eric and
Shan, Alex and
D. Manning, Christopher " ,
booktitle = " Proceedings of the 21st International Workshop on Treebanks and Linguistic Theories (TLT, GURT/SyntaxFest 2023) " ,
month = mar,
year = " 2023 " ,
address = " Washington, D.C. " ,
publisher = " Association for Computational Linguistics " ,
url = " https://aclanthology.org/2023.tlt-1.7 " ,
pages = " 67--73 " ,
abstract = " Searching dependency graphs and manipulating them can be a time consuming and challenging task to get right. We document Semgrex, a system for searching dependency graphs, and introduce Ssurgeon, a system for manipulating the output of Semgrex. The compact language used by these systems allows for easy command line or API processing of dependencies. Additionally, integration with publicly released toolkits in Java and Python allows for searching text relations and attributes over natural text. " ,
}
질문을 하거나 문제를 보고하거나 기능을 요청하려면 GitHub 문제 추적기를 사용하세요. 새 문제를 생성하기 전에 문제를 해결할 수 있는 기존 문제를 검색하거나 당사 웹사이트의 자주 묻는 질문(FAQ) 페이지를 방문하십시오.
우리는 버그 수정 및 개선의 형태로 Stanza에 대한 커뮤니티 기여를 환영합니다! 기여하고 싶다면 먼저 기여 지침을 읽어보세요.
Stanza는 Python 3.6 이상을 지원합니다. Python 패키지 관리자인 pip를 통해 Stanza를 설치하는 것이 좋습니다. 설치하려면 다음을 실행하세요.
pip install stanza
이는 또한 PyTorch 1.3.0 이상과 같은 Stanza의 모든 종속성을 해결하는 데 도움이 됩니다.
현재 이전 버전의 stanza
설치되어 있는 경우 다음을 사용하십시오.
pip install stanza -U
Anaconda를 통해 Stanza를 설치하려면 다음 conda 명령을 사용하십시오.
conda install -c stanfordnlp stanza
현재 Anaconda를 통해 Stanza를 설치하는 것은 Python 3.10에서는 작동하지 않습니다. Python 3.10의 경우 pip 설치를 사용하세요.
또는 이 git 저장소의 소스에서 설치할 수도 있습니다. 그러면 Stanza를 기반으로 개발할 때 더 많은 유연성이 제공됩니다. 이 옵션의 경우 다음을 실행하세요.
git clone https://github.com/stanfordnlp/stanza.git
cd stanza
pip install -e .
첫 번째 Stanza 파이프라인을 실행하려면 Python 대화형 인터프리터에서 다음 단계를 따르기만 하면 됩니다.
> >> import stanza
> >> stanza . download ( 'en' ) # This downloads the English models for the neural pipeline
> >> nlp = stanza . Pipeline ( 'en' ) # This sets up a default neural pipeline in English
> >> doc = nlp ( "Barack Obama was born in Hawaii. He was elected president in 2008." )
> >> doc . sentences [ 0 ]. print_dependencies ()
requests.exceptions.ConnectionError
발생하는 경우 프록시를 사용해 보세요.
> >> import stanza
> >> proxies = { 'http' : 'http://ip:port' , 'https' : 'http://ip:port' }
> >> stanza . download ( 'en' , proxies = proxies ) # This downloads the English models for the neural pipeline
> >> nlp = stanza . Pipeline ( 'en' ) # This sets up a default neural pipeline in English
> >> doc = nlp ( "Barack Obama was born in Hawaii. He was elected president in 2008." )
> >> doc . sentences [ 0 ]. print_dependencies ()
마지막 명령은 입력 문자열(또는 스탠자에 표시된 대로 Document
)의 첫 번째 문장에 있는 단어와 해당 문장의 범용 종속성 구문 분석에서 이를 제어하는 단어에 대한 인덱스(" head"), 단어 간의 종속 관계와 함께 표시됩니다. 출력은 다음과 같아야 합니다.
('Barack', '4', 'nsubj:pass')
('Obama', '1', 'flat')
('was', '4', 'aux:pass')
('born', '0', 'root')
('in', '6', 'case')
('Hawaii', '4', 'obl')
('.', '4', 'punct')
자세한 내용은 시작 가이드를 참조하세요.
신경 파이프라인 외에도 이 패키지에는 Python 코드로 Java Stanford CoreNLP 소프트웨어에 액세스하기 위한 공식 래퍼도 포함되어 있습니다.
몇 가지 초기 설정 단계가 있습니다.
CORENLP_HOME
환경 변수(예: *nix)를 설정하여 Stanford CoreNLP가 있는 Python 코드를 알려줍니다. export CORENLP_HOME=/path/to/stanford-corenlp-4.5.3
우리는 Stanza를 통해 CoreNLP를 사용하고 여기에서 다양한 주석을 추출하는 방법을 보여주는 포괄적인 예제를 문서에 제공합니다.
시작하려면 demo
폴더에 대화형 Jupyter 노트북도 제공됩니다. 또한 이러한 노트북을 열고 Google Colab에서 대화형으로 실행할 수도 있습니다. 사용 가능한 모든 노트북을 보려면 다음 단계를 따르세요.
File
-> Open notebook
로 이동하여 팝업 메뉴에서 GitHub
선택하세요.stanfordnlp/stanza
입력하고 Enter를 클릭하세요.우리는 현재 모든 범용 종속성 트리뱅크 v2.8에 대한 모델과 널리 사용되는 몇 가지 언어에 대한 NER 모델을 제공합니다. 여기에서 이러한 모델을 다운로드하고 사용하는 방법에 대한 지침을 찾을 수 있습니다.
속도 성능을 최대화하려면 문서 배치에서 파이프라인을 실행하는 것이 필수적입니다. 한 번에 한 문장씩 for 루프를 실행하는 것은 매우 느립니다. 현재 가장 좋은 접근 방식은 각 문서를 빈 줄(예: 두 줄 바꿈 nn
)로 구분하여 문서를 연결하는 것입니다. 토크나이저는 빈 줄을 문장 구분으로 인식합니다. 우리는 다중 문서 처리 개선을 위해 적극적으로 노력하고 있습니다.
이 라이브러리의 모든 신경 모듈은 자체 데이터로 훈련할 수 있습니다. 토크나이저, 다중 단어 토큰(MWT) 확장기, POS/형태학적 특징 태거, 표제어 분석기 및 종속성 구문 분석기에는 CoNLL-U 형식의 데이터가 필요한 반면, NER 모델에는 BIOES 형식이 필요합니다. 현재 Pipeline
인터페이스를 통한 모델 교육은 지원되지 않습니다. 따라서 자신만의 모델을 훈련하려면 이 git 저장소를 복제하고 소스에서 훈련을 실행해야 합니다.
자신의 모델을 교육하고 평가하는 방법에 대한 자세한 단계별 지침을 보려면 교육 문서를 참조하세요.
Stanza는 Apache 라이센스 버전 2.0에 따라 출시됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.