Acora

소프트웨어 스크린 샷:
Acora
소프트웨어 정보:
버전: 1.8
업로드 날짜: 11 May 15
개발자: Stefan Behnel
라이센스: 무료
인기: 8

Rating: 3.0/5 (Total Votes: 1)

아 코라 파이썬, 빠른 멀티 키워드 텍스트 검색 엔진 'fgrep 명령은'입니다.
유니 코드 또는 바이트를 한 세트의 키워드들에 기초하여, 검색 용 오토 마톤 (DFA)를 생성하고, 문자열 입력에 그것을 실행.
코라는 아호-Corasick 알고리즘 NFA 투 DFA 파워 셋 구조에 기초한다.
아 코라는 순수 파이썬 구현과 Cython로 작성된 빠른 바이너리 모듈을 모두 함께 제공됩니다.
어떻게 사용합니까?
패키지를 가져옵니다
>>> 아 코라 수입 AcoraBuilder에서
몇 가지 키워드를 수집 :
>>> 빌더 AcoraBuilder = ( 'AB', 'BC', '드')
>>> builder.add ( 'A', 'B')
현재 키워드 세트에 대한 아 코라의 검색 엔진을 생성합니다 :
>>> AC = builder.build ()
모든 항목에 대한 문자열을 검색 :
>>> ac.findall ( 'ABC')
[( 'A', 0), ( 'AB', 0), ( 'B', 1), ( 'BC', 1)]
>>> ac.findall ( 'ABDE')
[( 'A', 0), ( 'AB', 0), ( 'B', 1), ( '드', 2)]
그들이에 와서 검색 결과를 반복 :
>>> ac.finditer ( 'ABDE')에서 KW, POS 용 :
... 인쇄 ( "%의 2S [% d 개]"% (KW, POS))
& NBSP; [0]
AB [0]
& NBSP; B [1]
드 [2]
자주 묻는 질문과 요리법
1. 어떻게 가장 긴 일치 키워드에 대한 욕​​심 검색을 실행합니까?
& NBSP; >>> 빌더 = AcoraBuilder ( '', 'AB', 'ABC')
& NBSP; >>> AC = builder.build ()
& NBSP; >>> ac.finditer ( 'abbabc')에서 KW, POS 용 :
& NBSP; ... 인쇄 (KW)
& NBSP;
& NBSP; AB
& NBSP;
& NBSP; AB
& NBSP; ABC
& NBSP; >>> itertools는 GROUPBY를 가져올에서
& NBSP; >>> 운영자 수입 itemgetter에서
& NBSP; >>> 데프 (일치) longest_match :
& NBSP; ... GROUPBY에서 POS, match_set에 대한 (경기, itemgetter (1)) :
& NBSP; ... 수율 최대 (match_set)
& NBSP; >>> 원, POS longest_match에서 (ac.finditer ( 'abbabc'))에 대한 :
& NBSP; ... 인쇄 (KW)
& NBSP; AB
& NBSP; ABC
2. 방법 fgrep 명령이처럼,하지만 임의의 행 끝으로, 나는 라인 별을 구문 분석합니까?
& NBSP; >>> 데프 group_by_lines (S, * 키워드) :
& NBSP; ... 빌더 = AcoraBuilder ( ' r에', ' n을'* 키워드)
& NBSP; ... AC = builder.build ()
& NBSP; ...
& NBSP; ... current_line_matches = []
& NBSP; ... last_ending = 없음
& NBSP; ...
& NBSP; ... KW를 들어, ac.finditer (들)에 POS :
& NBSP; ... 경우 ' R 없음'에 KW :
& NBSP; ... last_ending 경우 == ' R'및 원 == ' n'을 :
& NBSP; ... 계속 #은 CRLF를 결합
& NBSP; ... 수익률 튜플 (current_line_matches)
& NBSP; ... 델 current_line_matches [:]
& NBSP; ... last_ending = 원
& NBSP; ... 다른 사람 :
& NBSP; ... last_ending = 없음
& NBSP; ... current_line_matches.append (KW)
& NBSP; ... 수익률 튜플 (current_line_matches)
& NBSP; >>> kwds = [ 'AB', 'BC', '드']
& NBSP; >>> group_by_lines에 매치 ( ' R 연구 NBC 연구 ndede N 죽겠 어', * kwds) :
& NBSP; ... 인쇄 (경기)
& NBSP; ()
& NBSP; ()
& NBSP; ( 'BC')
& NBSP ( '드', '드')
& NBSP; ()
& NBSP; ( 'AB')

특징 :

유니 코드 문자열과 바이트 문자열 함께 작동
약 2 ~ 3 배 대부분의 입력을위한 파이썬의 정규 표현식 엔진처럼 재 빠르게
중복 일치, 모든 키워드 즉, 모든 경기를 찾습니다
대소 문자를 구분 검색을 지원 (~ 10 배 빠른 속도로 '다시')
검색하는 동안 GIL를 해제
추가 (느리지 만 짧은) 순수 파이썬 구현
파이썬 2.5 + 및 3.x 지원
파일 검색 지원
허용 BSD 라이센스

이 릴리스의 새로운 기능입니다 :

사전 구축 된 검색 엔진 피클 지원
빌더의 성능 최적화
유니 코드 분석 나중에 파이썬 3.3에 최적화되어 있습니다
--with-cython 옵션이 setup.py에 전달되지 않는 Cython가 설치 될 때 더 이상 소스를 재 컴파일 (0.20+ Cython 필요하지 않습니다)
최근 Cython 버전으로 실패한 빌드
Cython 0.20.1 사용하여 구축

실질적으로 빠른 오토 마톤 건물 :

버전 1.6의 새로운 기능
더 이상 소스 배포판에서 .hg REPO 포함되지 않습니다
Cython 0.15 (RC0)를 사용하여 구축

Cython 컴파일 NFS-2-DFA 구조는 실질적으로 빠르게 실행 :

버전 1.5의 새로운 기능
Cython가 설치되지 않은 경우에도 항상 확장 모듈을 빌드
확장 모듈 건물을 방지하기 위해 setup.py에 스위치를 --no 컴파일
Cython 0.14.1 (RC2)를 사용하여 구축

1.4 버전의 새로운 기능 :

내부 검색 엔진 루프에서 약간의 속도 향상을
일부 코드 정리
Cython의 0.12.1를 사용하여 구축 (최종)

요구 사항 :

파이썬

코멘트 Acora

댓글을 찾을 수 없습니다
코멘트를 추가
이미지를 켜십시오!