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; >>> от импорта GroupBy itertools
& 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

Комментарии не найдены
добавить комментарий
Включите картинки!