Acora

Скріншот програми:
Acora
Дані програми:
Версія: 1.8
Дата завантаження: 11 May 15
Розробник: Stefan Behnel
Ліцензія: Безкоштовно
Популярність: 8

Rating: 3.0/5 (Total Votes: 1)

Acora є "fgrep 'для Python, швидко мульти-ключове слово текстового пошуку.
На підставі набору ключових слів, він генерує пошуку автомат (ДКА) і запускає його на вхідному рядку, або Unicode або байт.
Acora заснований на алгоритмі Ахо-Corasick і POWERSET будівництва NFA-на-DFA.
Acora приходить як з чистого реалізації Python і швидкого бінарного модуля написано в Cython.
<Сильний> Як я можу використовувати це?
Імпорт пакету:
>>> Від імпорту Acora AcoraBuilder
Зберіть деякі ключові слова:
>>> Будівельник = AcoraBuilder ('AB', 'BC', 'де')
>>> Builder.add ('', 'б')
Створення пошукової системи Acora для поточного набору ключових слів:
>>> Ас = builder.build ()
Виберіть рядок для всіх входжень:
>>> Ac.findall ('ABC')
[('', 0), ('AB', 0), ('B', 1), ('BC', 1)]
>>> Ac.findall ('ABDE ")
[('', 0), ('AB', 0), ('B', 1), ('де', 2)]
Перебору результатів пошуку, як вони приходять в:
>>> Для кВт, поз в ac.finditer ('Абде'):
... Print ("% 2s [% d]"% (кВт, сел))
& NBSP; [0]
AB [0]
& NBSP; б [1]
де [2]
Запитання і відповіді і рецепти
1. Як мені запустити жадібний пошук найдовших узгоджувальних ключових слів?
& NBSP; >>> будівельник = AcoraBuilder ('', 'AB', 'ABC')
& NBSP; >>> ас = builder.build ()
& NBSP; >>> для кВт, поз в ac.finditer ('abbabc'):
& NBSP; ... друк (кВт)
& NBSP;
& NBSP; AB
& NBSP;
& NBSP; AB
& NBSP; ABC
& NBSP; >>> від імпорту itertools GroupBy
& NBSP; >>> від оператора itemgetter імпорту
& NBSP; >>> Def 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 (S, * ключові слова):
& NBSP; ... будівельник = AcoraBuilder (' г', ' п', * ключові слова)
& NBSP; ... ас = builder.build ()
& NBSP; ...
& NBSP; ... current_line_matches = []
НЕ & NBSP; ... last_ending = Немає
& NBSP; ...
& NBSP; ... для квт, сел в ac.finditer (и):
& NBSP; ... якщо кВт в ' г п ":
& NBSP; ... якщо last_ending == ' г' і кВт == ' п':
& 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', 'BC', 'де']
& NBSP; >>> збігів в group_by_lines (' г г NBC г ndede п наб', * kwds):
& NBSP; ... друк (матчі)
& NBSP; ()
& NBSP; ()
& NBSP; ('BC',)
& NBSP; ('де', 'де')
& NBSP; ()
& NBSP; ('AB',)

Особливості

  • працює з Юнікод і байт рядка
  • про 2-3x так швидко, як регулярних виразів в Python для більшості введення
  • знаходить перекриття матчі, тобто всі матчі всіх ключових слів
  • підтримка пошук без урахування регістру (~ 10x, як швидко, як 'повторно')
  • звільняє GIL при пошуку
  • додатковий (повільний, але короткий) чистий реалізація Python
  • підтримка Python 2.5+ і 3.x
  • підтримка для пошуку в файлах
  • дозвільний ліцензія BSD

Що нового У цьому випуску:

  • підтримка розсіл для готових пошукових системах
  • продуктивність оптимізації, в будівельника
  • розбір Unicode оптимізований для Python 3.3 і пізніше
  • більше не перекомпілюються джерела при установці 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 (фінал)

Вимоги

  • Python

Acora

Коментар не знайдено
додати коментар
Включіть картинки!