Acora

Software screenshot:
Acora
Podrobnosti Software:
Verze: 1.8
Datum uploadu: 11 May 15
Vývojka: Stefan Behnel
Licence: Volný
Popularita: 10

Rating: 3.0/5 (Total Votes: 1)

Acora je "fgrep" pro Python, rychlý multi-klíčovým motorem textové vyhledávání.
Na sadě klíčových slov základě generuje vyhledávací automat (DFA) a spustí jej nad řetězec vstup, buď Unicode nebo bajtů.
Acora je založen na algoritmu Aho-Corasick a POWERSET konstrukci NFA-to-DFA.
Acora přichází s oběma čistě implementace Python a rychlý binární modul napsán v Cython.
Jak mohu použít?
Importovat balíček:
>>> Z acora import AcoraBuilder
Sbírat některá klíčová slova:
>>> Stavitel = AcoraBuilder ("ab", "bc", "de")
>>> Builder.add ('', 'b')
Generování vyhledávač Acora pro aktuální sadu klíčových slov:
>>> Ac = builder.build ()
Hledat řetězec pro všechny výskyty:
>>> Ac.findall ("abc")
[('', 0), ("ab", 0), ('b', 1), ("bc", 1)]
>>> Ac.findall ("Abde")
[('', 0), ("ab", 0), ('b', 1), ("de", 2)]
Iteraci přes výsledky vyhledávání tak, jak přicházejí v:
>>> For kW, pos v ac.finditer ("Abde"):
... Print ("% 2s [% d]"% (kw, pos))
& Nbsp; [0]
ab [0]
& Nbsp; b [1]
de [2]
FAQ a recepty
1. Jak mohu spustit chamtivý hledání nejdelších odpovídajících klíčových slov?
& Nbsp; >>> stavitel = AcoraBuilder ('', 'ab "," ABC ")
& Nbsp; >>> ac = builder.build ()
& Nbsp; >>> for kW, pos v ac.finditer ("abbabc"):
& Nbsp; ... print (kw)
& Nbsp;
& Nbsp; ab
& Nbsp;
& Nbsp; ab
& Nbsp; abc
& Nbsp; >>> z itertools importovat groupby
& Nbsp; >>> od operátora import itemgetter
& Nbsp; >>> def longest_match (zápasy):
& Nbsp; ... pro Pos, match_set v groupby (zápalky, itemgetter (1)):
& Nbsp; ... výnos max (match_set)
& Nbsp; >>> for kW, pos v longest_match (ac.finditer ("abbabc")):
& Nbsp; ... print (kw)
& Nbsp; ab
& Nbsp; abc
2. Jak mohu analyzovat řádek po řádku, jak fgrep dělá, ale s libovolnými konci řádků?
& Nbsp; >>> def group_by_lines (S, * keywords):
& Nbsp; ... stavitel = AcoraBuilder (' r', ' n', * klíčová slova)
& Nbsp; ... ac = builder.build ()
& Nbsp; ...
& Nbsp; ... current_line_matches = []
& Nbsp; ... last_ending = None
& Nbsp; ...
& Nbsp; ... pro kW, pos v ac.finditer (y):
& Nbsp; ... pokud kw v " r n":
& Nbsp; ... pokud last_ending == ' r' a kW == ' n':
& Nbsp; ... pokračovat # kombinaci CRLF
& Nbsp; ... výtěžek n-tice (current_line_matches)
& Nbsp; ... del current_line_matches [:]
& Nbsp; ... last_ending = kw
& Nbsp; ... jinak:
& Nbsp; ... last_ending = None
& Nbsp; ... current_line_matches.append (kw)
& Nbsp; ... výtěžek n-tice (current_line_matches)
& Nbsp; >>> kwds = ['ab', "bc", "de"]
& Nbsp; >>> pro zápasy v group_by_lines (" r r NBC r ndede n NAB ', * kwds):
& Nbsp; ... tiskové (zápasy)
& Nbsp; ()
& Nbsp; ()
& Nbsp; ("bc",)
& Nbsp; ("de", "de")
& Nbsp; ()
& Nbsp; ("ab",)

Vlastnosti :

  • pracuje s unicode řetězce a bajtu řetězce
  • asi 2-3x tak rychle, jak regulární výraz motor Python pro většinu vstupních
  • najde překrývající utkání, tedy všechny zápasy všech klíčových slov
  • podpora pro malá a velká písmena vyhledávání (~ 10x tak rychle, jak "znovu")
  • osvobozuje Gil Během vyhledávání
  • další (pomalý, ale krátký) čistý implementace Python
  • Podpora pro Python 2.5+ a 3.x
  • Podpora pro vyhledávání v souborech
  • tolerantní BSD licence

Co je nového v této verzi:

  • Podpora lák pro vyhledávače předpřipravených
  • výkonnostní optimalizace v stavitel
  • Unicode analýze je optimalizován pro Python 3.3 a novější
  • již znovu zkompiluje zdroje, pokud je nainstalován Cython, pokud --with-cython volba je předán setup.py (vyžaduje Cython 0,20 +)
  • Build se nezdařila s aktuálními verzemi Cython
  • postavený s použitím Cython 0.20.1

Co je nového ve verzi 1.6:

  • podstatně rychlejší automat budova
  • již zahrnuje .hg repo ve zdrojové distribuci
  • postavený s použitím Cython 0,15 (RC0)

Co je nového ve verzi 1.5:

  • Cython zkompilovaný NFS-2-DFA výstavba probíhá podstatně rychlejší
  • vždy stavět rozšiřujících modulů, i když není nainstalován Cython
  • - no-kompilovat přepínač v setup.py, aby se zabránilo rozšíření modulu objekt
  • postavený s použitím Cython 0.14.1 (RC2)

Co je nového ve verzi 1.4:

  • menší rychlost-up ve vnitřní smyčce vyhledávače
  • nějaký kód vyčištění
  • postavený s použitím Cython 0.12.1 (v konečném znění)

Požadavky na :

  • Python

Komentáře k Acora

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!