問題タブ [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 投票する
1 に答える
1058 参照

csv - 文字列の一致に FuzzyWuzzy と Pandas を使用する場合の TypeError

Python 3 で FuzzyWuzzy ライブラリを使用しているときにエラーが発生します。Pandas ライブラリも使用して CSV ファイルを操作しています。

CSV ファイルに次のデータがあります。

CorporationName 列と CorporationName2 列は実際には同じです。それぞれ不動産関連の事業者名が入っています。これらのビジネスの名前は、各列に複数回表示されますが、ご覧のとおり、わずかに異なる形で表示される場合があります。

私の目標は、CorporationName の各文字列を取得し、それを CorporationName2 のすべての文字列と比較することです。次に、FuzzyWuzzy が CorporationName2 から最も関連性の高い 5 つの文字列 (つまり、その名前の可能なバリエーション) を返すようにします。これは、私が受けた大規模な文字列マッチング タスクの最初のステップにすぎません。

これはトレースバック エラーです。

正直に言うと、ここで何が起こっているのかわかりません。インターネットでもあまり見つけられませんでした。

あなたが提供できるどんな助けも大歓迎です。

ありがとう!

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

python - pandas と fuzzywuzzy の一致率が正しくない

fuzzywuzzy 列と列の一致を使用しようとしています。

私のコードは次のとおりです。

ある列から別の列に何を一致させようとしても、各列の比率は常に同じです。例えば

サンプルデータセットはこちら

上記は 0, 100, 100 および 0, 100, 100 になります。

0 投票する
2 に答える
1124 参照

python - 1 つの列が 100% を満たす場合の 2 つの列の fuzzywuzzy 比率は、最良の列と一致します

私のデータフレームは

ここに画像の説明を入力

上記のコードは機能しませんが、国が一致する場合にのみアカウント名のあいまい一致を実行したいと考えています。

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

python - あいまいなモジュールが機能しない

次のコードの 2 番目の部分を実行しようとすると、このあいまいなモジュールに問題が発生します。

次のようなエラーが発生します。

最後の部分を実行しようとしたときの2番目のもの:

次のようなエラーが発生します。

これらの 2 つを除いて、他のすべてのコードは正常に機能しています。これを修正するにはどうすればよいですか? 現在、ubuntu 14.04LTS と Spyder を使用して Python を実行しています。

編集:levenshtein、fuzzywuzzy、およびdifflibモジュールを再インストールしようとしました。それでも同じ問題が発生します。ubuntuを使っているからでしょうか?デュアル ブート Windows 10 を使用して実行しようとすると、動作するからです。

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

python - fuzzywuzzy を使用して、一致した結果の列をデータ フレームに作成する

FuzzyWuzzy ライブラリを使用してすべての結果をデータ フレーム列に格納するという課題に直面しています (ループが必要になるのではないかと思いますか?)あなたの誰かが解決策を手伝ってくれるかどうか見てください!とても参考になります!


私がやろうとしていることの例として、ここに 2 つのデータ フレーム テーブルがあります…</p>

マスターテーブル

ルックアップテーブル

基本的に、マスター テーブルの値のリスト全体に対してルックアップ テーブルの値を使用し、結果を 3 番目のテーブルに格納しようとしています。

これが私が最終的な出力をどのように見せたいかです...

私は Fuzzy Wuzzy の基本を知っています。

出力= [('チキンサラダ', 90), ('プレーンサラダ', 90)]

素晴らしいですが、マスター テーブルのすべての値に対してすべてのルックアップ値を実行して、体系的な方法でそれを行うにはどうすればよいでしょうか?

私を読んでくれてありがとう!

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

python - パンダで適用を使用して多くの(あいまいな)文字列比較を並列化する方法は?

次の問題があります

次のような文を含むデータフレームマスターがあります

Master のすべての行について、別の Dataframeスレーブを検索して、fuzzywuzzy. 2 つのデータフレーム間で一致する文が少し異なる可能性があるため (余分な文字など)、fuzzywuzzy を使用します。

たとえば、スレーブ

これは、完全に機能し、素晴らしく、コンパクトな作業例です:)

100 万ドルの問題は、上記の適用コードを並列化できるかどうかです。

結局のところ、すべてmasterの行がすべての行と比較されますslave(スレーブは小さなデータセットであり、データの多くのコピーを RAM に保持できます)。

複数の比較を実行できなかった理由がわかりません (つまり、同時に複数の行を処理します)。

問題: それを行う方法がわかりません。または、それが可能かどうかもわかりません。

どんな助けでも大歓迎です!

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

python - Python でのファジー文字列マッチングによる 2 つの大きな csv ファイルのマッチング

600,000 個の個人の名前 (フル ネーム) を、8700 万件を超える観測 (フル ネーム) を持つ別のデータベースとほぼ一致させようとしています。

fuzzywuzzyライブラリでの最初の試みは遅すぎたため、はるかに高速なモジュールfuzzysetを使用することにしました。すべてのデータセットをメモリにロードするのに十分強力なコンピューターがあると仮定すると、964 個の観測値のテスト ファイルを使用して、50,000 個の観測値と照合するために次のことを行っています。

はるかに小さいデータセット (50,000 の観測に対して 964 の観測が一致) では、時間は39 秒でした。

ただし、このメソッドを完全なデータセットで実行したい場合、これは遅すぎます。

実行時間を改善する方法を知っている人はいますか? 私はすでにfuzzysetモジュールの Cython バージョンをインポートしているので、Cython は可能性がないと思います

どうもありがとう、

エイドリアン

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

python - データフレーム列全体にあいまい一致を適用し、結果を新しい列に保存します

それぞれ異なる行数を持つ 2 つのデータ フレームがあります。以下は、各データセットからのいくつかの行です

を使って並べて結合しましたcombined_data = pandas.concat([df1, df2], axis = 1)。私の次の目標は、モジュールからいくつかの異なる一致するコマンドを使用してdf1['Company']、下の各文字列を下の各文字列と比較し、最も一致する値とその名前を返すことです。それを新しい列に保存したい。たとえば、とを実行すると、最適な一致がのスコアであったことが返され、これが の新しい列に保存されます。結果は次のようになりますdf2['FDA Company']fuzzy wuzzyfuzz.ratiofuzz.token_sort_ratioLACKY SHEET METALdf1['Company']df2['FDA Company']LACKY SHEET METAL100combined data

やってみた

しかし、列の長さが異なるため、エラーが発生しました。

私は困惑しています。どうすればこれを達成できますか?