2

Edit Distance / Levenshtein Distance に基づいて、ELKI を使用して多数の文字列をクラスター化する必要があります。データ セットが大きすぎるため、ファイル ベースの事前計算された距離行列は避けたいと思います。どうやって

(a) ファイルから ELKI に文字列データをロードしますか (「ラベル」のみ)?

(b) ラベルにアクセスする距離関数を実装します (AbstractDBIDDistanceFunction を拡張しますが、ラベルを取得する方法は?)

いくつかのコード スニペットまたは入力ファイルの例が役立ちます。

4

1 に答える 1

1

それは実際には非常に簡単です:

A )入力ファイル形式に適しParserた aを書きます(ラベル付きの数値ベクトル用に書かれたパーサーを再利用しようとするのはなぜですか? ) 。これらの距離については、もう少し一般的であることがより適切な概念かもしれません。AbstractStreamingParserStringTokenSequence

BDistanceFunction ) DBID の代わりにこのベクター型に基づいてa を実装しPrimitiveDistanceFunction<String>ます。繰り返しますが、サブクラス化AbstractPrimitiveDistanceFunctionが最も簡単な方法かもしれません。

パフォーマンス上の理由から、たとえば最も類似した k 個の文字列を効率的に取得するために、インデックス作成アルゴリズムを調べることもできます。文字列編集距離とレーベンシュタイン距離にどのインデックス構造が存在するかわかりません。

同僚には、トークン編集距離が機能しているように見える学生がいますが、私はまだコードを見たりレビューしたりしていません。彼はログ ファイルを処理しているので、おそらく文字ではなくトークン ベースのアプローチを使用するでしょう。

于 2013-03-18T18:40:16.100 に答える