Acora

Yazılım ekran görüntüsü:
Acora
Yazılım detaylar:
Versiyon: 1.8
Qayıt: 11 May 15
Geliştirici: Stefan Behnel
Lisans: Ücretsiz
Popülerlik: 8

Rating: 3.0/5 (Total Votes: 1)

Acora Python, hızlı bir çoklu-anahtar kelime metin arama motoru için 'fgrep "dir.
, Unicode veya byte ya anahtar kelime kümesi dayanarak, arama otomat (DFA) oluşturur ve dize girişi üzerine çalışır.
Acora Aho-Corasick algoritma ve NFA-to-DFA Powerset yapısına dayanır.
Acora saf Python uygulaması ve Cython yazılmış hızlı bir ikili modül ile birlikte gelir.
Nasıl kullanabilirim?
Paketi içe:
>>> Acora ithalat AcoraBuilder gelen
Bazı anahtar kelimeleri toplayın:
>>> Oluşturucu = AcoraBuilder ('ab', 'bc', 'de')
>>> Builder.add ('a', 'b')
Geçerli anahtar kelime kümesi için Acora arama motoru oluşturun:
>>> Ac = builder.build ()
Tüm olaylar için bir dize arayın:
>>> Ac.findall ('abc')
[('A', 0), ('ab', 0), ('b', 1), ('bc', 1)]
>>> Ac.findall ('ABDE'),
[('A', 0), ('ab', 0), ('b', 1), ('' de, 2)]
Onlar gelip arama sonuçları üzerinde yineleme:
>>> Ac.finditer ('abde') 'de kw, pos için:
... Print ("% 2s [% d]"% (kw, pos))
& Nbsp; [0]
ab [0]
& Nbsp; b [1]
de [2]
Sık Sorulan Sorular ve yemek tarifleri
1. nasıl uzun eşleşen anahtar kelimeler için bir açgözlü arayacaksınız mı?
& Nbsp; >>> oluşturucu = AcoraBuilder ('a', 'ab', 'abc')
& Nbsp; >>> Ac = builder.build ()
& Nbsp; >>> ac.finditer ('abbabc') 'de kw, pos için:
& Nbsp; ... print (kw)
& Nbsp;
& Nbsp; ab
& Nbsp;
& Nbsp; ab
& Nbsp; abc
& Nbsp; >>> itertools GroupBy ithal gelen
& Nbsp; >>> operatör ithalat itemgetter gelen
& Nbsp; >>> def (eşleşmeleri) longest_match:
& Nbsp; ... GroupBy içinde pos, match_set için (kibrit, itemgetter (1)):
& Nbsp; ... Verim max (match_set)
& Nbsp; >>> kw, pos longest_match içinde (ac.finditer ('abbabc')) için:
& Nbsp; ... print (kw)
& Nbsp; ab
& Nbsp; abc
2. nasıl fgrep yaptığı gibi, ama keyfi satır sonları, ben line-by-line ayrıştırmak mı?
& Nbsp; >>> def group_by_lines (s, * anahtar sözcükler):
& Nbsp; ... oluşturucu = AcoraBuilder (' r', ' n', * anahtar sözcükler)
& Nbsp; ... ac = builder.build ()
& Nbsp; ...
& Nbsp; ... current_line_matches = []
& Nbsp; ... last_ending = Yok
& Nbsp; ...
& Nbsp; ... kw için, ac.finditer (ler) pos:
& Nbsp; ... eğer ' r n' kw:
& Nbsp; ... last_ending eğer == ' r' ve kw == ' n':
& Nbsp; ... Devam # CRLF kombine
& Nbsp; ... Verim tuple (current_line_matches)
& Nbsp; ... del current_line_matches [:]
& Nbsp; ... last_ending = kw
& Nbsp; ... else:
& Nbsp; ... last_ending = Yok
& Nbsp; ... current_line_matches.append (kw)
& Nbsp; ... Verim tuple (current_line_matches)
& Nbsp; >>> kwds = ['ab', 'bc', 'de']
& Nbsp; >>> group_by_lines maçlarda için ('a r r NBC r ndede n nab', * kwds):
& Nbsp; ... print (maç)
& Nbsp; ()
& Nbsp; ()
& Nbsp; ('bc')
& Nbsp; ('de', 'de')
& Nbsp; ()
& Nbsp; ('ab')

Özellikler :

  • unicode dizeleri ve byte dizeleri ile çalışır
  • yaklaşık 2-3x kadar hızlı çoğu girişi için Python'ın düzenli ifade motoru olarak
  • bulur maçları örtüşen, tüm anahtar kelimelerin yani tüm maçları
  • (hızlı 'yeniden' olarak ~ 10x) duyarsız arama için destek

  • Ararken
  • GIL boşaltır
  • ek (yavaş ama kısa) saf Python uygulaması
  • Python desteği 2.5 + ve 3.x
  • dosyaları aramak için destek
  • müsamahakar BSD lisansı

Bu sürümdeki yeni Nedir:

  • önceden oluşturulmuş arama motorları için turşu desteği
  • oluşturucu performans optimizasyonları
  • Unicode ayrıştırma Python 3.3 için optimize edilmiştir ve daha sonra

  • Cython yüklü olduğunda --with-cython seçeneği setup.py geçirilen sürece
  • artık, kaynaklarını yeniden derler (+ cython 0.20 gerektirir)
  • son Cython sürümleri ile başarısız inşa
  • cython 0.20.1 kullanılarak inşa

nedir sürüm 1.6 Yeni:

  • ölçüde daha hızlı otomat bina
  • artık içeren kaynak dağılımında .hg repo
  • cython 0.15 (rc0) kullanılarak inşa

sürüm 1.5 yeni Nedir:

  • Cython derlenmiş NFS 2-DFA inşaat önemli ölçüde daha hızlı çalışır
  • Her zaman Cython yüklü olmasa bile uzantısı modülleri oluşturmak
  • - no-derleme önlemek için setup.py anahtarı uzatma modülü bina
  • cython 0.14.1 (rc2) kullanılarak inşa

sürüm 1.4 yeni Nedir:

  • İç arama motoru döngüsünde küçük hız-up
  • Bazı kod temizleme
  • cython 0.12.1 kullanılarak inşa (nihai)

Gereksinimleri :

  • Python

Yorumlar Acora

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!