[解決済み] Javaによる類似文字列比較
2022-06-21 16:55:28
質問
複数の文字列を互いに比較し、最も似ているものを見つけたいのです。 どの文字列が他の文字列とより似ているかを返すようなライブラリ、メソッド、またはベストプラクティスがあるかどうか疑問に思っています。 たとえば
- "The quick fox jumped" -> "The fox jumped"
- "The quick fox jumped" -> "The fox"
この比較では、前者が後者よりも似ていると返されるでしょう。
というようなメソッドが必要なんでしょうね。
double similarityIndex(String s1, String s2)
そんなものがどこかにあるのだろうか。
編集:なぜ私はこれをやっているのでしょうか?私は、MS Project ファイルの出力と、タスクを処理するいくつかのレガシー システムの出力を比較するスクリプトを作成しています。 レガシー システムのフィールド幅は非常に限られているため、値が追加されるとき、説明は省略されます。 生成されたキーを得るために、MS Projectのどのエントリーがシステム上のエントリーと類似しているかを見つける半自動化された方法が欲しいのです。 それはまだ手動でチェックされなければならないので、欠点がありますが、それは多くの仕事を節約するでしょう。
どのように解決するのですか?
そうですね、よく知られたアルゴリズムがたくさんあります。
- コサイン類似度
- ジャカード類似度
- ダイス係数
- マッチングの類似性
- オーバーラップ類似度
- などなど
良いまとめ("Sam's String Metrics") はここで見つけることができます。 (元のリンクが切れているため、Internet Archive にリンクしています)
また、これらのプロジェクトもチェックしてください。
関連
-
JDKの設定時にjava.dllが見つからない、java SE Runtime Environmentが見つからない問題が発生しました。
-
[オリジナル】java学習ノート【II】よくあるエラー クラスパス上のクラスファイルが見つからない、またはアクセスできない場合
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
Java Exceptionが発生しました エラー解決
-
jd-gui Java Exceptionが発生しました。
-
Dateが型に解決できない問題を解決する
-
JDKの設定時にjava.dllが見つからない、java SE Runtime Environmentが見つからない問題が発生しました。
-
Spring BootのテストメソッドFailed to load ApplicationContextの問題を解決する
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
あるコードに出会いましたが、何に使うのか理解できません。 List<String> list = new ArrayList<String>() { { a
-
java 例外。Javaツールの初期化
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決