การใช้งาน CRF ในหลาม


32

มีการใช้งานยอดนิยมของเขตข้อมูลแบบสุ่มในPythonหรือไม่?

ฉันดูเหมือนจะไม่พบสิ่งที่ใช้กันอย่างแพร่หลายและเป็นที่นิยม!


ไปดู Github Repo ของฉัน ( ScikitCRF_NER ) สำหรับการใช้ python ของ scikitCRF
Manikandan Thangavelu

คำตอบ:


13

CRF ++เป็นที่นิยมโดยทั่วไปและมีการผูกหลาม CRFSuiteยังมีการเชื่อมโยงเอกสารที่นี่แต่ดูเหมือนจะไม่ได้เห็นการใช้อย่างแพร่หลายเช่น CRF ++ จากการเขียนนี้กรอบการเรียนรู้ของเครื่องในระดับที่สูงขึ้นเช่น scikit-Learn ขาดการสนับสนุน CRF (ดูคำขอดึงนี้ )


15

CRF ++ มีลิงก์เข้ามามากกว่านี้เพราะเป็นห้องสมุดที่เก่ากว่า
CRFSuiteเหนือกว่าในความคิดของฉัน

  • การอ้างสิทธิ์ของผู้เขียน CRFSuite นั้นเร็วกว่า CRF ++ ถึง 20 เท่าในการฝึกอบรมนางแบบ
  • ข้อกำหนดที่เข้มงวดน้อยลงสำหรับข้อมูลอินพุต

หากคุณกำลังมองหาการผูก Python CRFSuite ก็ดีกว่าเพราะคุณสามารถฝึกอบรมโมเดลใน Python ได้ในขณะที่ใน CRF ++ คุณสามารถทดสอบรุ่นที่มีอยู่ใน Python ได้เท่านั้น (นั่นคือตัวแบ่งข้อตกลงสำหรับฉัน) CRFSuite ยังมาพร้อมกับโค้ดตัวอย่างจำนวนมากใน Python เช่น NER, Chunking และ POS tagging


3
คุณสามารถอธิบายวิธีการใช้ NER และ Chunking ที่จัดทำโดย CRFSuite ได้หรือไม่? ดูเหมือนว่าคาดว่าข้อมูลการฝึกอบรมในรูปแบบที่แตกต่างกัน ฉันจะหาสิ่งนี้ได้ที่ไหน
ตำนาน

14

ต่อไปนี้เป็นคำแนะนำ / การใช้งานอื่น ๆ :

  • https://github.com/adsva/python-wapiti - งูหลามเสื้อคลุมสำหรับhttp://wapiti.limsi.fr/ Wapiti รวดเร็ว เกณฑ์มาตรฐาน crfsuite นั้นไม่ยุติธรรมกับ wapiti เพราะ wapiti สามารถทำให้การฝึกอบรม L-BFGS แบบขนานกับหลายคอร์ของ CPU และคุณลักษณะนี้ไม่ได้ถูกใช้ในการวัดประสิทธิภาพ ปัญหาเกี่ยวกับ Wapiti คือมันไม่ได้เขียนเป็นห้องสมุด เสื้อคลุมพยายามอย่างหนักที่จะเอาชนะสิ่งนั้น แต่คุณยังสามารถถอดexit()เสื้อได้และฉันเห็นความจำรั่วระหว่างการฝึก นอกจากนี้ wapiti มีข้อ จำกัด ในคุณสมบัติหลายประการที่สามารถแสดงได้ แต่ CRFsuite ก็มี จำกัด เช่นกัน Wapiti มาพร้อมกับห่อหุ้มไม่จำเป็นต้องติดตั้งแยกต่างหาก
  • https://github.com/jakevdp/pyCRFsuite - เสื้อคลุมสำหรับ crfsuite เสื้อคลุมค่อนข้างสูงและอนุญาตให้ใช้เมทริกซ์กระจัดกระจาย scipy เป็นอินพุต แต่ดูเหมือนว่ามีปัญหาบางอย่างที่ยังไม่ได้แก้ไขมันเป็นไปได้ที่จะได้รับ segfault ในบางกรณี
  • https://github.com/tpeng/python-crfsuite - wrapper crfsuite อีกอัน อันนี้ค่อนข้างง่าย มันรวม crfsuite เพื่อการติดตั้งที่ง่ายขึ้นและสามารถติดตั้งได้ด้วย 'pip install python-crfsuite'
  • https://github.com/larsmans/seqlearnจัดโครงสร้าง Perceptron ซึ่งสามารถทดแทน CRF ได้ในหลายกรณี การใช้ Perceptron แบบมีโครงสร้างนั้นรวดเร็วมากใน seqlearn มีการประชาสัมพันธ์ (ไม่รวมในเวลาที่เขียน) ซึ่งเพิ่มการสนับสนุน CRF ให้กับ seqlearn; มันดูแข็งแกร่ง
  • https://github.com/timvieira/crf - มันค่อนข้างพื้นฐานและไม่มีคุณสมบัติที่จำเป็นบางอย่าง แต่ต้องการเพียงจำนวนมาก

ฉันขอแนะนำให้ใช้ seqlearn ถ้าคุณทำได้ python-crfsuite หากคุณต้องการอัลกอริทึมการฝึกอบรม CRFsuite และความเร็วในการฝึกอบรม pyramfsuite หากคุณต้องการการรวม CRFsuite ขั้นสูงและพร้อมที่จะเผชิญกับความไม่สะดวกบางอย่าง Python-wapiti ไม่สามารถใช้งานได้ใน CRFsuite (เช่นการปรับเงื่อนไขการสังเกตแต่ละครั้งของการเปลี่ยนผ่าน) และ crf ของ timvieira ถ้าไม่มีวิธีที่จะทำให้คอมไพเลอร์ C / C ++ ทำงานได้ แต่ไม่มีการสร้าง prebuilt


7

ผมคิดว่าสิ่งที่คุณกำลังมองหาPyStruct

PyStruct มุ่งมั่นที่จะเป็นห้องสมุดการเรียนรู้และการทำนายที่ใช้งานง่าย ในปัจจุบันมันใช้วิธีการที่มีมาร์จิ้นสูงสุดเท่านั้นและ perceptron แต่อัลกอริทึมอื่น ๆ อาจตามมา

เป้าหมายของ PyStruct คือการจัดหาเครื่องมือที่มีเอกสารที่ดีสำหรับนักวิจัยและไม่ใช่ผู้เชี่ยวชาญเพื่อใช้อัลกอริธึมการทำนายเชิงโครงสร้าง การออกแบบพยายามที่จะอยู่ใกล้กับอินเทอร์เฟซและแบบแผนของ scikit เรียนรู้

PyStructมาพร้อมกับดีเอกสารและจะมีการพัฒนาอย่างแข็งขันบนGitHub

ด้านล่างนี้เป็นตารางเปรียบเทียบPyStructกับCRFsuiteและแพ็คเกจอื่น ๆ ที่สกัดจากPyStruct - การทำนายแบบโครงสร้างใน Python :

การเปรียบเทียบชุดซอฟต์แวร์การทำนายที่มีโครงสร้าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.