この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 56998|答える: 2

[出典] 文字列類似度アルゴリズムをC#で実装します

[リンクをコピー]
掲載地 2019/04/23 12:59:18 | | | |
最近、ユーザーが入力した文字列とシステムが取得した文字列を比較する問題があります。誤差が大きくない場合、システムは要件を満たしていると判断し、閾値を設定するのが最善です。
CAPTCHA認識を行う際には、文字コードの類似性を比較し、「編集距離アルゴリズム」を使って原則とC#の実装を記録します。

百度百科事典によると:

編集距離(Levenshtein distance、編集距離とも呼ばれる)は、2つの文字列間で切り替えるために必要な最小編集回数であり、距離が大きいほど異なるものになります。 許可された編集操作には、ある文字を別の文字に置き換えること、文字の挿入、削除が含まれます。

例えば、kittenという単語をsittingに変換します:

シッテン(K→S)

シッティン(E→I)

座っている(→g)

ロシアの科学者ウラジーミル・レヴェンシュタインは1965年にこの概念を提唱しました。 これがレーヴェンシュタイン・ディスタンスという名前の由来です。

例えば

もしstr1=「ivan」、str2=「ivan」ならば、0と計算されます。 改宗はしていません。 類似度=1-0/Math.Max(str1.length, str2.length)=1
もしstr1=「ivan1」、str2=「ivan2」ならば、それは1と等しいと計算されます。 str1の「1」は「2」に変換され、文字を変換するため距離は1、類似度=1-1/Math.Max(str1.length, str2.length)=0.8

応用:

  • DNA解析
  • スペルチェック
  • 音声認識
  • 盗用検出



このアルゴリズムはC#で実装されています:

テストコード:






検査結果から、次の結論に至ります。又は句読点弦の位置異なる都市類似性に影響を与える結果したがって、文字列認識を比較する際には、アルゴリズムを呼び出す前に文字列内のすべてのスペースと特殊記号を削除することが推奨されます

リソース:ハイパーリンクのログインが見えます。

GitHubにはC#文字列の類似度比較用のライブラリもあります

FuzzyStringは、私の日常業務のために開発されたライブラリで、異なるグリッドモデル間の命名規則を調整しています。 電力システム固有のコードを剥ぎ取り、2つの文字列間のおおよその等価を判定するために、効果的に使える文字列拡張をまとめました。 ここで使用されているすべてのアルゴリズムはオンラインソースから抽出され、C#に変換され、このライブラリにコンパイルされています。 他にも似たようなオープンソース実装がいくつか見つかりましたが、それらは利用可能ではありません。 NET / C#。 プロジェクトに*.dllを追加すると、この拡張機能とApproximatelyEquals()拡張の下にある個々の拡張機能にアクセスできます。



住所:ハイパーリンクのログインが見えます。

NuGetインストール:

本プロジェクトに含まれるアルゴリズム:

  • ハミング距離
  • ジャカード距離
  • ジャロ距離
  • ヤロ・ウィンクラー距離
  • レーヴェンシュタイン距離
  • 最長の公衆
  • 部分列の最長共通部分文字列
  • 重なり係数
  • ラトクリフとオーバーヘルプの類似性
  • ソレンセン-ダイス距離
  • 谷もも係数



用途:


結果:



(終わり)




先の:ソフトウェアテストの技術 第3版pdf
次に:「データアナリストの8つの能力」はコース全体を暗号化していません
掲載地 2019/05/06 13:11:34 |
知識がやってくる
掲載地 2021/09/07 15:01:05 |
返信後にコードを見ることは可能ですか?
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com