Acora

البرمجيات قطة:
Acora
تفاصيل البرنامج:
الإصدار: 1.8
تاريخ إيداع: 11 May 15
المطور: Stefan Behnel
ترخيص: حرر
شعبية: 10

Rating: 3.0/5 (Total Votes: 1)

ACORA هو 'fgrep' لبيثون، محرك البحث عن النص متعدد الكلمة سريع.
استنادا إلى مجموعة من الكلمات الرئيسية، فإنه يولد إنسان البحث (DFA) ويمتد على مدى سلسلة الإدخال، إما يونيكود أو بايت.
ويستند ACORA على خوارزمية أهو-Corasick والبناء باورسيت NFA إلى DFA.
ACORA يأتي مع كل تطبيق بيثون النقي وحدة ثنائية سريعة كتب في Cython.
كيف يمكنني استخدامه؟
استيراد حزمة:
>>> من فندق acora AcoraBuilder استيراد
جمع بعض الكلمات الرئيسية:
>>> باني = AcoraBuilder ('أب'، 'ق'، 'دي')
>>> builder.add ("أ"، "ب")
توليد محرك البحث ACORA لمجموعة الكلمة الحالية:
>>> ميلان = builder.build ()
بحث سلسلة لكافة تواجدات:
>>> ac.findall ('اي بي سي')
[("أ"، 0)، ('أب'، 0)، ('ب'، 1)، ('ق'، 1)]
>>> ac.findall ('ABDE')
[("أ"، 0)، ('أب'، 0)، ('ب'، 1)، ('دي'، 2)]
أعاد على نتائج البحث كما أنها تأتي في:
>>> للكيلووات، ونقاط البيع في ac.finditer ('ABDE'):
... الطباعة ("٪ 2S [٪ د]"٪ (كيلووات، ونقاط البيع))
على & nbsp؛ و[0]
أب [0]
على & nbsp؛ ب [1]
دي [2]
أسئلة وأجوبة وصفات
1. كيف يمكنني تشغيل بحث الجشع لأطول كلمات مطابقة؟
على & nbsp؛ >>> باني = AcoraBuilder (ع '،' أب '،' اي بي سي ')
على & nbsp؛ >>> ميلان = builder.build ()
على & nbsp؛ >>> للكيلووات، ونقاط البيع في ac.finditer ('abbabc'):
على & nbsp؛ ... طباعة (كيلوواط)
على & nbsp؛ ل
على & nbsp؛ AB
على & nbsp؛ ل
على & nbsp؛ AB
على & nbsp؛ ABC
على & nbsp؛ >>> من itertools استيراد groupby
على & nbsp؛ >>> من مشغل itemgetter استيراد
على & nbsp؛ >>> longest_match مواطنه (مباريات):
على & nbsp؛ ... لنقاط البيع، match_set في groupby (المباريات، itemgetter (1)):
على & nbsp؛ ... العائد ماكس (match_set)
على & nbsp؛ >>> للكيلووات، ونقاط البيع في longest_match (ac.finditer ('abbabc')):
على & nbsp؛ ... طباعة (كيلوواط)
على & nbsp؛ AB
على & nbsp؛ ABC
2. كيف يمكنني تحليل خط سطرا، كما fgrep لا، ولكن مع نهايات خط التعسفية؟
على & nbsp؛ >>> مواطنه group_by_lines (ق * كلمة مرور):
على & nbsp؛ ... باني = AcoraBuilder (' ص'، ' ن'، * كلمة مرور)
على & nbsp؛ ... ميلان = builder.build ()
على & nbsp؛ ...
على & nbsp؛ ... current_line_matches = []
على & nbsp؛ ... last_ending = بلا
على & nbsp؛ ...
على & nbsp؛ ... للكيلو وات، ونقاط البيع في ac.finditer (ق):
على & nbsp؛ ... إذا كيلووات في ' ص ن':
على & nbsp؛ ... إذا last_ending == ' ص "وكيلووات ==' 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 = ['أب'، 'ق'، 'دي']
على & nbsp؛ >>> للمباريات في group_by_lines (ع ص ص ان بي سي ص ndede n قبض '، * kwds):
على & nbsp؛ ... طباعة (مباريات)
على & nbsp؛ ()
على & nbsp؛ ()
على & nbsp؛ ('ق'،)
على & nbsp؛ ('دي'، 'دي')
على & nbsp؛ ()
على & nbsp؛ ('أب'،)

الميزات:

يعمل مع سلاسل يونيكود وسلاسل بايت
حول 2-3x أسرع وقت كمحرك التعبير العادي بايثون لمعظم المدخلات
يجد مباريات متداخلة، أي جميع مباريات جميع الكلمات الرئيسية
دعم للقضية حساسة بحث (~ 10X بأسرع 'إعادة')
يحرر GIL أثناء البحث
الإضافي (بطيء ولكنه قصير) تنفيذ بيثون النقي
دعم بايثون 2.5+ و 3.x
دعم للبحث في ملفات
رخصة BSD متساهل

ما هو الجديد في هذا الإصدار:

دعم المخلل لمحركات البحث بنيت قبل
تحقيق أمثلية الأداء في البناء
هو الأمثل يونيكود تحليل لبيثون 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

لم يتم العثور على التعليقات
إضافة تعليق
بدوره على الصور!