Acora

ภาพหน้าจอของซอฟแวร์:
Acora
รายละเอียดซอฟแวร์:
รุ่น: 1.8
วันที่อัพโหลด: 11 May 15
ผู้พัฒนา: Stefan Behnel
การอนุญาต: ฟรี
ความนิยม: 8

Rating: 3.0/5 (Total Votes: 1)

Acora คือ 'fgrep สำหรับหลามรวดเร็วเครื่องมือค้นหาข้อความหลายคำ
ขึ้นอยู่กับชุดของคำหลักจะสร้างหุ่นยนต์ค้นหา (เอฟเอ) และวิ่งมันมากกว่าการป้อนข้อมูลสตริงทั้ง Unicode หรือไบต์
acora จะขึ้นอยู่กับขั้นตอนวิธี Aho-Corasick และ NFA ไป DFA ก่อสร้าง powerset
acora มาพร้อมกับทั้งการดำเนินการหลามบริสุทธิ์และโมดูลไบนารีรวดเร็วเขียนใน Cython
ฉันจะใช้มันได้หรือไม่
นำแพคเกจ:
>>> จากการนำเข้า Acora AcoraBuilder
เก็บคำหลัก:
>>> สร้าง AcoraBuilder = (AB ',' BC ',' de ')
>>> builder.add ('', 'b')
สร้างเครื่องมือค้นหา Acora สำหรับชุดคำหลักปัจจุบัน:
>>> AC = builder.build ()
ค้นหาสตริงสำหรับเหตุการณ์ที่เกิดขึ้นทั้งหมด:
>>> ac.findall (abc)
[('', 0), ('AB', 0), ('b', 1), (BC '1)]
>>> ac.findall (ABDE)
[('', 0), ('AB', 0), ('b', 1), ('de' 2)]
ย้ำกว่าผลการค้นหาที่พวกเขามาใน:
>>> สำหรับกิโลวัตต์, POS ใน ac.finditer (ABDE):
... พิมพ์ ("% 2s [% d]"% (กิโลวัตต์, POS))
& nbsp; [0]
AB [0]
& nbsp; ข [1]
เด [2]
คำถามที่พบบ่อยและสูตร
1. ฉันจะเรียกใช้การค้นหาโลภสำหรับการจับคู่คำหลักที่ยาวที่สุด?
& nbsp; >>> สร้าง = AcoraBuilder ('', 'AB', 'abc')
& nbsp; >>> AC = builder.build ()
& nbsp; >>> สำหรับกิโลวัตต์, POS ใน ac.finditer (abbabc):
& nbsp; ... พิมพ์ (กิโลวัตต์)
& nbsp;
& nbsp; AB
& nbsp;
& nbsp; AB
& nbsp; abc
& nbsp; >>> นำเข้าจาก itertools GroupBy
& nbsp; >>> จากผู้ประกอบการนำเข้า itemgetter
& nbsp; >>> def longest_match (ขีด):
& nbsp; ... สำหรับ POS, match_set ใน GroupBy (ไม้ขีดไฟ itemgetter (1)):
& nbsp; ... ผลผลิตสูงสุด (match_set)
& nbsp; >>> สำหรับกิโลวัตต์, POS ใน longest_match (ac.finditer (abbabc ')):
& nbsp; ... พิมพ์ (กิโลวัตต์)
& nbsp; AB
& nbsp; abc
2. ฉันจะแยกบรรทัดโดยบรรทัดเป็น fgrep ไม่ แต่มีตอนจบบรรทัดโดยพล?
& nbsp; >>> def group_by_lines (s * คำหลัก):
& nbsp; ... สร้าง = AcoraBuilder (' r', ' n' * คำหลัก)
& nbsp; ... AC = builder.build ()
& nbsp; ...
& nbsp; ... current_line_matches = []
& nbsp; ... last_ending = ไม่มี
& nbsp; ...
& nbsp; ... สำหรับกิโลวัตต์, POS ใน ac.finditer (s):
& nbsp; ... ถ้ากิโลวัตต์ใน ' r n':
& nbsp; ... ถ้า last_ending == ' r และกิโลวัตต์ ==' n ':
& nbsp; ... ยังคง # รวม CRLF
& nbsp; ... tuple ผลผลิต (current_line_matches)
& nbsp; ... current_line_matches เดล [:]
& nbsp; ... last_ending = กิโลวัตต์
& nbsp; ... อื่น:
& nbsp; ... last_ending = ไม่มี
& nbsp; ... current_line_matches.append (กิโลวัตต์)
& nbsp; ... tuple ผลผลิต (current_line_matches)
& nbsp; >>> kwds = ['AB', 'BC', 'de']
& nbsp; >>> สำหรับการแข่งขันใน group_by_lines (' r r เอ็นบีซี r ndede n จับ' * kwds):
& nbsp; ... พิมพ์ (ขีด)
& nbsp; ()
& nbsp; ()
& nbsp; (BC ')
& nbsp; ('de', 'de')
& nbsp; ()
& nbsp; (AB ')

คุณสมบัติ

  • การทำงานกับสตริง Unicode และสตริงไบต์
  • เกี่ยวกับ 2-3x เร็วที่สุดเท่าที่เครื่องยนต์แสดงออกปกติ ธ สำหรับการป้อนข้อมูลมากที่สุด
  • ที่ทับซ้อนกันพบว่าการแข่งขันคือการแข่งขันทั้งหมดของคำหลักทั้งหมด
  • การสนับสนุนสำหรับกรณีการค้นหาตาย (~ 10 เท่าเป็นอย่างที่ 'ใหม่')
  • ปลดปล่อย GIL ขณะที่การค้นหา
  • เพิ่มเติม (ช้า แต่สั้น) งูหลามบริสุทธิ์การดำเนินงาน
  • การสนับสนุนสำหรับหลาม 2.5+ และ 3.x
  • การสนับสนุนสำหรับการค้นหาในไฟล์
  • ใบอนุญาต BSD อนุญาต

มีอะไรใหม่ ในข่าวประชาสัมพันธ์นี้:

  • การสนับสนุนดองสำหรับเครื่องมือค้นหาที่สร้างไว้ล่วงหน้า
  • optimisations ประสิทธิภาพการทำงานในการสร้าง
  • แยก Unicode เหมาะสำหรับ Python 3.3 และต่อมา
  • ไม่ recompiles แหล่ง Cython เมื่อมีการติดตั้งตัวเลือกเว้นแต่ --with-Cython ถูกส่งไปยัง setup.py (ต้อง Cython 0.20 +)
  • สร้างล้มเหลวด้วยรุ่นล่าสุด Cython
  • สร้างขึ้นโดยใช้ Cython 0.20.1

มีอะไรใหม่ ในรุ่น 1.6:

  • การสร้างหุ่นยนต์ได้เร็วขึ้นอย่างมีนัยสำคัญ
  • ไม่รวมถึงการซื้อคืน .hg ในการกระจายแหล่งที่มา
  • สร้างขึ้นโดยใช้ Cython 0.15 (RC0)

มีอะไรใหม่ ในรุ่น 1.5:

  • Cython รวบรวมก่อสร้าง NFS-2-DFA ทำงานได้เร็วขึ้นอย่างมีนัยสำคัญ
  • เสมอสร้างโมดูลขยายแม้ว่า Cython ไม่ได้ติดตั้ง
  • - ไม่มีสวิทช์ในการรวบรวม setup.py เพื่อป้องกันไม่ให้อาคารโมดูลส่วนขยาย
  • สร้างขึ้นโดยใช้ Cython 0.14.1 (RC2)

มีอะไรใหม่ ในรุ่น 1.4:

  • เล็กน้อยความเร็วสูงขึ้นในวงของเครื่องมือค้นหาภายใน
  • ล้างรหัส
  • สร้างขึ้นโดยใช้ Cython 0.12.1 (สุดท้าย)

ต้องการ

  • งูใหญ่

ความคิดเห็นที่ Acora

ความคิดเห็นที่ไม่พบ
เพิ่มความคิดเห็น
เปิดภาพ!