Acora

Software screenshot:
Acora
Software ətraflı:
Version: 1.8
Tarixi Upload: 11 May 15
Geliştirici: Stefan Behnel
Lisenziya: Pulsuz
Məşhurluq: 10

Rating: 3.0/5 (Total Votes: 1)

Acora Python, bir sürətli multi-söz mətn axtarış mühərriki üçün "fgrep" deməkdir.
, Unicode və ya bayt və ya açar sözlər, bir sıra əsasında bu axtarış automaton (DFA) yaradır və simli daxil üzərində çalışır.
Acora Aho-Corasick alqoritm və NFA-to-Dfa powerset tikintisi əsaslanır.
Acora təmiz Python həyata keçirilməsi və Cython yazılı sürətli ikili modulu ilə gəlir.
Mən bunu necə istifadə edə bilərəm?
Paketi idxal:
>>> Acora idxal AcoraBuilder olan
Bəzi açar sözlər toplamaq:
>>> Builder = AcoraBuilder (ab "," bc ',' de)
>>> Builder.add ('a', 'b')
Cari söz set üçün Acora axtarış mühərriki yaratmaq:
>>> Ac = builder.build ()
Bütün hadisələr üçün simli axtarış:
>>> Ac.findall (abc)
[('A', 0), (ab, 0), ('b', 1), (bc, 1)]
>>> Ac.findall (abde)
[('A', 0), (ab, 0), ('b', 1), (de ', 2)]
Onlar gəlmək kimi axtarış nəticələri təkrarlamaq:
>>> Ac.finditer (abde) ilə kw, POS üçün:
... Print ("% 2s [% d]"% (kw, pos))
& Nbsp; a [0]
ab [0]
& Nbsp; b [1]
de [2]
suallar və reseptlər
1. necə uzun uyğun açar sözlər, üçün görməmiş axtarış edirsiniz?
& Nbsp; >>> builder = AcoraBuilder ('a', 'ab', 'abc)
& Nbsp; >>> ac = builder.build ()
& Nbsp; >>> ac.finditer (abbabc) ilə kw, POS üçün:
& Nbsp; ... print (kw)
& Nbsp; bir
& Nbsp; ab
& Nbsp; bir
& Nbsp; ab
& Nbsp; abc
& Nbsp; >>> itertools groupby idxal
& Nbsp; >>> operator idxal itemgetter olan
& Nbsp; >>> def (oyunları) longest_match:
& Nbsp; ... groupby olan pos, match_set üçün (matçları, itemgetter (1)):
& Nbsp; ... gəlir max (match_set)
& Nbsp; >>> kw, POS longest_match da (ac.finditer (abbabc)) üçün:
& Nbsp; ... print (kw)
& Nbsp; ab
& Nbsp; abc
2. necə fgrep kimi, lakin ixtiyari line sonluğu ilə, mən xətti-by-line analiz edirsiniz?
& Nbsp; >>> def group_by_lines (s * açar sözlər):
& Nbsp; ... builder = AcoraBuilder (' r', ' n "* açar sözlər)
& Nbsp; ... ac = builder.build ()
& Nbsp; ...
& Nbsp; ... current_line_matches = []
& Nbsp; ... last_ending = None
& Nbsp; ...
& Nbsp; ... kw üçün ac.finditer (s) pos:
& Nbsp; ... əgər r n "da kw:
& Nbsp; ... last_ending əgər == ' r "və kw ==' n:
& Nbsp; ... davam # CrLf birləşdirilmiş
& Nbsp; ... gəlir tuple (current_line_matches)
& Nbsp; ... del current_line_matches []
& Nbsp; ... last_ending = kw
& Nbsp; ... başqa:
& Nbsp; ... last_ending = None
& Nbsp; ... current_line_matches.append (kw)
& Nbsp; ... gəlir tuple (current_line_matches)
& Nbsp; >>> kwds = ['ab', 'bc', 'de']
& Nbsp; >>> group_by_lines matçları üçün (a r r NBC r ndede n nab, * kwds):
& Nbsp; ... print (oyun)
& Nbsp; ()
& Nbsp; ()
& Nbsp; (bc ")
& Nbsp; ('de', 'de)
& Nbsp; ()
& Nbsp; (ab ")

Features

  • unicode strings və byte strings ilə işləyir
  • haqqında 2-3x kimi sürətli ən giriş üçün Python nin normal ifade mühərrik kimi
  • tapır oyunları üst-üstə düşən, bütün açar sözlər, yəni bütün matçlarda
  • (kimi sürətli "yenidən" kimi ~ 10x) halda hissiz axtarış üçün dəstək

  • Axtarış zamanı
  • gil kurtarır
  • əlavə (slow but qısa) təmiz Python həyata keçirilməsi
  • Python dəstək 2.5 + və 3.x
  • faylları axtarış üçün dəstək
  • liberal BSD lisenziya

Bu azad yeni nədir:

  • pre-built axtarış motorları üçün turşu dəstək
  • builder performans optimisations
  • Unicode təhlil Python 3.3 üçün optimize və sonra

  • Cython yüklü zaman --with-cython seçimi setup.py qəbul halda
  • artıq mənbələri recompiles (+ Cython 0.20 tələb edir)
  • Son Cython versiyasını uğursuz build
  • Cython 0.20.1 istifadə inşa

nədir Versiya 1.6 Yeni

  • əsaslı sürətli automaton bina
  • artıq daxildir mənbə paylanması .hg repo
  • Cython 0.15 (rc0) istifadə inşa

Versiyası 1.5 yeni nədir:

  • Cython tərtib NFS-2-DFA tikinti əsaslı sürətli çalışır
  • həmişə Cython yüklü olmasa belə uzadılması modulları qurmaq
  • - heç tərtib qarşısını almaq üçün setup.py keçid uzadılması modul bina
  • Cython 0.14.1 (RC2) istifadə inşa

Versiya 1.4 yeni nədir:

  • daxili axtarış mühərriki loop kiçik sürət-up
  • Bəzi kodu təmizləmə
  • Cython 0.12.1 istifadə inşa (final)

tələblər

  • Python

Şərh Acora

Şərhlər tapılmadı
Şərh əlavə
Images yandırın!