問題タブ [fuzzywuzzy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
12523 参照

python - Python でのファジー文字列マッチング

わずかに異なる命名規則を持つ 100 万を超える名前の 2 つのリストがあります。ここでの目標は、類似したレコードを 95% の信頼度のロジックで一致させることです。

Python の FuzzyWuzzy モジュールなど、利用できるライブラリがあることを知りました。

ただし、処理に関しては、1 つのリスト内のすべての文字列を他のリストと比較するには、あまりにも多くのリソースを消費するようです。

この問題に対する他のより効率的な方法はありますか?

アップデート:

そこで、バケット関数を作成し、空白や記号を削除して値を小文字に変換するなどの単純な正規化を適用しました...

pythons pandas を使用することで、年ごとにグループ化された小さなバケットにデータが読み込まれ、FuzzyWuzzy モジュールをprocess.extractOne使用して最適な一致が得られます。

結果はまだ少し残念です。テスト中、上記のコードは、わずか 5,000 個の名前を含むテスト データ フレームで使用され、ほぼ 1 時間かかります。

テスト データは で分割されます。

  • 名前
  • 年 生年月日

そして、YM が同じバケットにあるバケットごとに比較しています。

問題は、私が使用している FuzzyWuzzy モジュールが原因でしょうか? どんな助けにも感謝します。

0 投票する
4 に答える
7477 参照

python - Python での 2 つのリストの全対全比較

私はいくつかのパフォーマンスの複雑さに苦しんでいます。手元のタスクは、2 つの文字列間の類似値を抽出することです。このために私は使用していfuzzywuzzyます:

ただし、これで問題ありません。私が直面している問題は、2 つのリストがあり、1 つには 1500 行、もう 1 つには数千行あることです。最初の要素のすべての要素と 2 番目の要素のすべての要素を比較する必要があります。for ループ内の単純な for は、計算にとてつもなく長い時間がかかります。

どうすればこれをスピードアップできるか提案があれば、大歓迎です。

0 投票する
1 に答える
617 参照

python - Python: Fuzzywuzzy が外国語の文字に対して機能しない

外国語の文字で単純な fuzzywuzzy 式を試すと、process.extractOne メソッドを使用して誤った結果が得られます (u の有無にかかわらず試しました)。

それでも、fuzz.ratio ではスムーズに実行されます。

そして、同じコードは通常の文字にもうまく機能します:

何が問題なのですか?

0 投票する
0 に答える
226 参照

php - fuzzywuzzy はクラス Diff_SequenceMatcher が見つからないことを示しています

Phalconを使用してPHPで記述されたDiff_SequenceMatcherでSequenceMatcherクラスを拡張しているとき。それは、fuzzywuzzy にクラスが見つからないことを示していますか?

0 投票する
1 に答える
986 参照

python - Python の fuzzywuzzy が予測できない結果を返す

私はpythonでfuzzy wuzzyを使用していますが、レーベンシュタイン距離で機能すると主張していますが、1文字が異なる多くの文字列が異なる結果をもたらすことがわかりました。例えば。

すべての例で単一文字の距離があるため、レーベンシュタイン距離は同じである必要があると思いますが、これは単純な距離ではなく、ある種の「平等パーセンテージ」であることを理解しています。

それがどのように機能するかを理解しようとしましたが、理解できないようです。私の非常に長い文字列は 97 で、非常に短い文字列は 67 です。文字列が大きいほど、1 つの文字への影響が少ないことを意味すると思います。ただし、「vendor」、「vendedora」、および「estagiário」、「estagiária」の例では、後者が前者よりも大きいため、そうではありません。

これはどのように作動しますか?

現在、ユーザー入力の役職を照合し、入力ミスした名前を正しく入力された名前に関連付けようとしています。私のタスクに適したパッケージはありますか?