ไลบรารี Python NLP อย่างเป็นทางการของ Stanford NLP Group ประกอบด้วยการรองรับการใช้งานเครื่องมือประมวลผลภาษาธรรมชาติที่แม่นยำต่างๆ ในกว่า 60 ภาษา และสำหรับการเข้าถึงซอฟต์แวร์ Java Stanford CoreNLP จาก Python สำหรับข้อมูลโดยละเอียด กรุณาเยี่ยมชมเว็บไซต์อย่างเป็นทางการของเรา
แพ็คเกจโมเดลภาษาอังกฤษ ชีวการแพทย์ และ ทางคลินิก ชุดใหม่พร้อมให้บริการแล้ว โดยนำเสนอประสบการณ์ที่ราบรื่นสำหรับการวิเคราะห์เชิงวากยสัมพันธ์และการจดจำเอนทิตีที่มีชื่อ (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 Biomedical ของเราด้วย:
@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 ของไปป์ไลน์ประสาทในพื้นที่เก็บข้อมูลนี้เกิดจาก Peng Qi (@qipeng), Yuhao Zhang (@yuhaozhang) และ Yuhui Zhang (@yuhui-zh15) โดยได้รับความช่วยเหลือจาก Jason Bolton (@j38), Tim Dozat ( @tdozat) และ John Bauer (@AngledLuffa) การบำรุงรักษา repo นี้ปัจจุบันนำโดย John Bauer
หากคุณใช้ซอฟต์แวร์ CoreNLP ผ่าน Stanza โปรดอ้างอิงแพ็คเกจซอฟต์แวร์ CoreNLP และโมดูลที่เกี่ยวข้องตามที่อธิบายไว้ที่นี่ ("การอ้างอิง Stanford CoreNLP ในเอกสาร") ไคลเอ็นต์ CoreNLP ส่วนใหญ่เขียนโดย Arun Chaganty และ Jason Bolton เป็นหัวหอกในการรวมทั้งสองโครงการเข้าด้วยกัน
หากคุณใช้ส่วน Semgrex หรือ Ssurgeon ของ CoreNLP โปรดอ้างอิงเอกสาร GURT ของเราเกี่ยวกับ Semgrex และ Ssurgeon:
@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 Issue Tracker ก่อนที่จะสร้างปัญหาใหม่ โปรดตรวจสอบให้แน่ใจว่าได้ค้นหาปัญหาที่มีอยู่ซึ่งอาจช่วยแก้ปัญหาของคุณได้ หรือไปที่หน้าคำถามที่พบบ่อย (FAQ) บนเว็บไซต์ของเรา
เรายินดีต้อนรับการมีส่วนร่วมของชุมชนใน Stanza ในรูปแบบของการแก้ไขข้อบกพร่องและการปรับปรุง! หากคุณต้องการมีส่วนร่วม โปรดอ่านหลักเกณฑ์การสนับสนุนของเราก่อน
Stanza รองรับ Python 3.6 หรือใหม่กว่า เราขอแนะนำให้คุณติดตั้ง Stanza ผ่าน pip ซึ่งเป็นตัวจัดการแพ็คเกจ Python หากต้องการติดตั้ง เพียงเรียกใช้:
pip install stanza
สิ่งนี้ควรช่วยแก้ไขการขึ้นต่อกันทั้งหมดของ Stanza เช่น PyTorch 1.3.0 หรือสูงกว่า
หากขณะนี้คุณติดตั้ง stanza
เวอร์ชันก่อนหน้าแล้ว ให้ใช้:
pip install stanza -U
หากต้องการติดตั้ง Stanza ผ่าน Anaconda ให้ใช้คำสั่ง conda ต่อไปนี้:
conda install -c stanfordnlp stanza
โปรดทราบว่าในตอนนี้การติดตั้ง Stanza ผ่าน Anaconda ไม่สามารถใช้ได้กับ 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
ตามที่แสดงใน Stanza) รวมถึงดัชนีสำหรับคำที่ควบคุมคำนั้นในการแยกวิเคราะห์ Universal Dependencies ของประโยคนั้น (" head") พร้อมด้วยความสัมพันธ์การพึ่งพาระหว่างคำต่างๆ ผลลัพธ์ควรมีลักษณะดังนี้:
('Barack', '4', 'nsubj:pass')
('Obama', '1', 'flat')
('was', '4', 'aux:pass')
('born', '0', 'root')
('in', '6', 'case')
('Hawaii', '4', 'obl')
('.', '4', 'punct')
ดูคู่มือการเริ่มต้นใช้งานของเราสำหรับรายละเอียดเพิ่มเติม
นอกเหนือจากไปป์ไลน์ประสาทแล้ว แพ็คเกจนี้ยังรวมถึง wrapper อย่างเป็นทางการสำหรับการเข้าถึงซอฟต์แวร์ Java Stanford CoreNLP ด้วยโค้ด Python
มีขั้นตอนการตั้งค่าเริ่มต้นบางประการ
CORENLP_HOME
(เช่นใน * nix): export CORENLP_HOME=/path/to/stanford-corenlp-4.5.3
เรามีตัวอย่างที่ครอบคลุมในเอกสารของเราที่แสดงให้เห็นว่าเราสามารถใช้ CoreNLP ผ่าน Stanza ได้อย่างไร และแยกคำอธิบายประกอบต่างๆ จาก CoreNLP
เพื่อเริ่มต้นใช้งาน เรายังจัดเตรียมสมุดบันทึก Jupyter แบบโต้ตอบไว้ในโฟลเดอร์ demo
อีกด้วย คุณยังเปิดสมุดบันทึกเหล่านี้และเรียกใช้แบบโต้ตอบได้บน Google Colab หากต้องการดูสมุดบันทึกที่มีอยู่ทั้งหมด ให้ทำตามขั้นตอนเหล่านี้:
File
-> Open notebook
และเลือก GitHub
ในเมนูป๊อปอัปstanfordnlp/stanza
ในแถบค้นหา และคลิก Enterขณะนี้เราจัดเตรียมโมเดลสำหรับ Universal Dependencies treebanks v2.8 ทั้งหมด รวมถึงโมเดล NER สำหรับภาษาที่พูดกันอย่างแพร่หลายบางภาษา คุณสามารถดูคำแนะนำในการดาวน์โหลดและใช้งานรุ่นเหล่านี้ได้ที่นี่
เพื่อเพิ่มประสิทธิภาพความเร็วสูงสุด จำเป็นต้องรันไปป์ไลน์กับเอกสารเป็นชุด การเรียกใช้ for loop ทีละประโยคจะช้ามาก แนวทางที่ดีที่สุดในขณะนี้คือการต่อเอกสารเข้าด้วยกัน โดยแต่ละเอกสารจะคั่นด้วยบรรทัดว่าง (เช่น แบ่งสองบรรทัด nn
) โทเค็นเซอร์จะจดจำบรรทัดว่างเป็นตัวแบ่งประโยค เรากำลังดำเนินการปรับปรุงการประมวลผลเอกสารหลายฉบับอย่างแข็งขัน
โมดูลประสาททั้งหมดในไลบรารีนี้สามารถฝึกด้วยข้อมูลของคุณเองได้ โทเค็นไนเซอร์, ตัวขยายโทเค็นหลายคำ (MWT), ตัวแท็กคุณลักษณะ POS/สัณฐานวิทยา, ตัวย่อและตัวแยกวิเคราะห์การพึ่งพาต้องใช้ข้อมูลที่จัดรูปแบบ CoNLL-U ในขณะที่โมเดล NER ต้องใช้รูปแบบ BIOES ในปัจจุบัน เราไม่รองรับการฝึกโมเดลผ่านอินเทอร์เฟซ Pipeline
ดังนั้น หากต้องการฝึกโมเดลของคุณเอง คุณจะต้องโคลนพื้นที่เก็บข้อมูล git นี้และดำเนินการฝึกจากแหล่งที่มา
สำหรับคำแนะนำโดยละเอียดทีละขั้นตอนเกี่ยวกับวิธีการฝึกอบรมและประเมินโมเดลของคุณเอง โปรดไปที่เอกสารการฝึกอบรมของเรา
Stanza เปิดตัวภายใต้ Apache License เวอร์ชัน 2.0 ดูไฟล์ใบอนุญาตสำหรับรายละเอียดเพิ่มเติม