Acora

نرم افزار تصویر:
Acora
جزئیات نرم افزار:
نسخه: 1.8
ها تاریخ: 11 May 15
توسعه دهنده: Stefan Behnel
پروانه: رایگان
محبوبیت: 8

Rating: 3.0/5 (Total Votes: 1)

در Acora 'fgrep برای پایتون، یک موتور جستجو متن سریع چند کلمه کلیدی است.
بر اساس مجموعه ای از کلمات کلیدی، آن را تولید یک ماشین جستجو (DFA) و آن را اجرا می شود بیش ورودی رشته، یا یونیکد یا بایت.
Acora بر الگوریتم Aho-Corasick و ساخت و ساز پاورست NFA به DFA است.
Acora می آید با هر دو پیاده سازی پایتون خالص و یک ماژول دودویی سریع نوشته شده در Cython.
چگونه می توانم از آن استفاده کنم؟
واردات و بسته بندی:
>>> از acora واردات AcoraBuilder
جمع آوری برخی از کلمات کلیدی:
>>> سازنده = AcoraBuilder ('AB'، 'پیش از میلاد'، 'د')
>>> builder.add (''، 'B')
تولید موتور جستجو Acora برای مجموعه کلید واژه کنونی:
>>> AC = builder.build ()
جستجو یک رشته برای همه تکرار:
>>> ac.findall ('ای بی سی ")
[('A'، 0)، ('AB'، 0)، ('B'، 1)، ('قبل از میلاد'، 1)]
>>> ac.findall ('ABDE)
[('A'، 0)، ('AB'، 0)، ('B'، 1)، ('د'، 2)]
تکرار بیش از نتایج جستجو را به عنوان آنها در آمده:
>>> برای کیلو وات، POS در ac.finditer ('ABDE):
... نسخه قابل چاپ ("٪ 2S [٪ D]"٪ (کیلو وات، POS))
& nbsp؛ یک [0]
AB [0]
از & nbsp؛ ب [1]
د [2]
سوالات متداول و دستور العمل
1. چگونه می توانم یک جستجو حریص برای طولانی ترین کلمات کلیدی تطبیق اجرا کنم؟
از & nbsp؛ >>> سازنده = AcoraBuilder (''، 'AB'، 'ای بی سی ")
از & nbsp؛ >>> AC = builder.build ()
از & nbsp؛ >>> برای کیلو وات، POS در 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؛ >>> برای کیلو وات، POS در longest_match (ac.finditer ('abbabc')):
از & nbsp؛ ... نسخه قابل چاپ (کیلو وات)
& nbsp؛ از AB
& nbsp؛ از ABC
2. چگونه می توانم من تجزیه خط به خط، به عنوان fgrep می کند، اما با انتهای خط خودسرانه؟
از & nbsp؛ >>> دف group_by_lines (بازدید کنندگان، * کلمات کلیدی):
از & nbsp؛ ... سازنده = AcoraBuilder (' R'، '' N، * کلمات کلیدی)
از & nbsp؛ ... AC = builder.build ()
& nbsp؛ در ...
از & nbsp؛ ... current_line_matches = []
از & nbsp؛ ... last_ending = هیچ
& nbsp؛ در ...
از & nbsp؛ ... برای کیلو وات، POS در ac.finditer (بازدید کنندگان):
از & nbsp؛ ... اگر کیلووات در ' r n و':
از & nbsp؛ ... اگر last_ending == ' R' و کیلو وات == '' N:
از & nbsp؛ ... ادامه # ترکیب CRLF
از & nbsp؛ ... تاپل عملکرد (current_line_matches)
از & nbsp؛ ... دل current_line_matches [:]
از & nbsp؛ ... last_ending = کیلو وات
از & nbsp؛ ... دیگری:
از & nbsp؛ ... last_ending = هیچ
از & nbsp؛ ... current_line_matches.append (کیلو وات)
از & nbsp؛ ... تاپل عملکرد (current_line_matches)
از & nbsp؛ >>> kwds = ['AB'، 'پیش از میلاد'، 'د']
از & nbsp؛ >>> برای بازی در group_by_lines (' R R ان بی سی ها r ndede n n در قاپیدن، * kwds):
از & nbsp؛ ... نسخه قابل چاپ (مسابقات)
از & nbsp؛ ()
از & nbsp؛ ()
از & nbsp؛ ('قبل از میلاد،)
از & nbsp؛ ('د'، 'د')
از & nbsp؛ ()
از & nbsp؛ ('AB،)

ویژگی ها:

با رشته های یونیکد و رشته بایت کار می کند
درباره 2-3x به همان سرعتی که موتور عبارت منظم پایتون برای اکثر ورودی
می یابد مسابقات با هم تداخل دارند، یعنی تمام مسابقات از همه کلمات کلیدی
پشتیبانی از مورد جستجو حساس (~ تا 10x به همان سرعتی که دوباره ')
آزاد GIL در حالی که جستجو
اجرای پایتون خالص اضافی (آهسته اما کوتاه)
پشتیبانی از پایتون 2.5+ و های 3.x
پشتیبانی برای جستجو در فایل ها
مجوز BSD مجاز

به چه چیزی جدید در این نسخه است:

در حمایت ترشی برای موتور های جستجو از پیش ساخته شده
بهینهسازیهایی عملکرد در ساز
تجزیه یونیکد برای پایتون 3.3 و بعد از بهینه سازی
recompiles دیگر منابع زمانی که Cython نصب شده است، مگر اینکه گزینه-cython --with به تصویب می رسد به 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 است:

جزئی سرعت بالا در درون حلقه موتور جستجو
برخی از پاکسازی کد
ساخته شده با استفاده از 0.12.1 Cython (نهایی)

در مورد نیاز:

پایتون

نظرات به Acora

نظر یافت نشد
اضافه کردن نظر
روشن کردن تصاویر!