Acora

ソフトウェアのスクリーンショット:
Acora
ソフトウェアの詳細:
バージョン: 1.8
日付のアップロード: 11 May 15
開発者: Stefan Behnel
ライセンス: 無料
人気: 10

Rating: 3.0/5 (Total Votes: 1)

アコラは、Python用の「fgrepは '、高速マルチキーワードテキスト検索エンジンです。
キーワードのセットに基づいて、検索オートマトン(DFA)を生成し、ユニコードまたはバイト数のいずれか、文字列入力の上、それを実行します。
アコラはアホ - CorasickアルゴリズムとNFAツーDFA Powersetの構造に基づいています。
アコラは、純粋なPython実装と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))
  [0]
AB [0]
  B [1]
ド[2]
よくある質問とレシピ
1.どのように私は、最長一致キーワードの欲張り探索を実行しますか?
  >>>ビルダー= AcoraBuilder( 'A'、 'AB'、 'ABC')
  >>> AC = builder.build()
  >>> ac.finditer( 'abbabc')でKW、POSのための:
  ...印刷(KW)
 
  AB
 
  AB
  ABC
  >>>のitertools輸入GROUPBYから
  >>>オペレータ輸入itemgetterから
  >>>デフ(試合)をlongest_match:
  ... POSのため、GROUPBYでmatch_set(マッチ、itemgetter(1)):
  ...降伏最大(match_set)
  >>>キロワット、POS longest_match中(ac.finditer( 'abbabc'))のための:
  ...印刷(KW)
  AB
  ABC
2.どのように私はfgrepのがするように、ライン·バイ·ラインを解析しますが、任意の行末を持つのですか?
  >>>デフgroup_by_lines(S、*キーワード):
  ...ビルダー= AcoraBuilder( ' rを'、 ' n'は、*キーワード)
  ... AC = builder.build()
  ...
  ... current_line_matches = []
  ... last_ending =なし
  ...
  ... KWため、ac.finditer(複数可)でのPOS:
  ...場合は ' rをする n'でKW:
  ... last_ending場合== ' rとキロワット==' n 'は:
  ...続きを#はCRLFを組み合わせました
  ...利回りタプル(current_line_matches)
  ...デルcurrent_line_matches [:]
  ... last_ending =キロワット
  ... ELSE:
  ... last_ending =なし
  ... current_line_matches.append(KW)
  ...利回りタプル(current_line_matches)
  >>> kwds = ['AB'、 'BC'、 'ド']
  >>> group_by_linesで一致するもの( '​​ rを rのNBC rを ndede N 逮捕'、* kwds):
  ...印刷(マッチ)
 ()
 ()
 ( 'BC'、)
 ( '·デ·'、 'デ·')
 ()
 ( 'AB')

この機能は:

このUnicode文字列とバイト文字列で動作します
ほとんどの入力のためのPythonの正規表現エンジンの約2〜3倍の速さ
重複試合、すべてのキーワードのすなわちすべての一致を検索します
大文字小文字を区別しない検索のためのサポート(〜10倍の速さで '再')
検索中GILを解放します
追加(遅いが短い)、純粋なPython実装
Pythonの2.5+および3.xのサポート
ファイル内を検索するためのサポート
寛容なBSDライセンス

このリリースで新しい何が:事前に構築された検索エンジンのための

このピクルスサポート
Builderのパフォーマンスの最適化
ユニコードの解析には、Python 3.3用に最適化され、後にされています
--with-cythonオプションがsetup.pyに渡されない限り、Cythonは、インストールされている場合、もはやソースを再コンパイル(0.20+ Cythonを必要としません)
最近のCythonのバージョンで失敗しましたビルド
Cython 0.20.1を使用して構築されました

このバージョン1.6の新機能です:

この実質的に速いオートマトンの建物
もはやソース配布中の.hgレポを含みません
Cython 0.15(RC0)を使用して構築

このバージョン1.5の新機能です:

このCythonコンパイルNFS-2-DFA構成は、実質的に高速に実行されます
Cythonがインストールされていない場合でも、常に拡張モジュールをビルド
拡張モジュールの建物を防止するためのsetup.pyで--no-コンパイルスイッチ
Cython 0.14.1(RC2)を使用して構築

このバージョン1.4の新機能である:内部検索エンジンのループでます。

マイナースピードアップ
いくつかのコードのクリーンアップ
Cythonの0.12.1を使用して構築された(最終)

この要件:

このパイソン

へのコメント Acora

コメントが見つかりません
コメントを追加
画像をオンにする!