1

表現方法にバリエーションがある2つの名前がある場合、名前の類似性/相違性のスコアを与えることができるAPI /ツール/アルゴリズムはありますか?

Tim O'Reillyは1つの入力であり、TReillyは別の入力です。これら2つの間で返されるスコアは、TimO'ReillyとTimReillyの間で得られるスコアよりも低くなるはずです。

そのようなスコア計算メカニズムを探しています。アルゴリズムが処理できる必要があるいくつかの課題は次のとおりです
。1)名前が入力として指定された場合、名前と名前が入れ替わる
可能性があります。2)名前の代わりにイニシャルがある可能性があります
。3)名前の1つに名前がない可能性があります。姓。もう一方は名と姓の両方を持つことができます。

...など、名前表現の一般的なエラーです。

4

2 に答える 2

1

名前の類似性のための少数の距離スコアを含む 2 つのライブラリは次のとおりです。

あなたが言及したケースをカバーする単一の方法はありませんが、1)および3)機能とセットの類似性の尺度(jaccard、tfidfなど)が機能します.2)soundex(@ houman001が言及)以外に、levenstheinまたはjaroを検討できます。ユースケースのいくつかの例を試して、組み合わせてください。

于 2012-06-22T11:58:51.917 に答える
0

「名前の類似点/相違点のスコアを与えることができる API/ツール/アルゴリズム」の部分については、ヒントを与えることができます。

検索エンジンが使用するヒューリスティック ライブラリがいくつかありますが、単語から数値を計算するsoundexと呼ばれるコーディングもあります。同じ soundex コードを持つ単語は、わずかに異なる単語です。Java の実装もいくつかあります。

名前について後で言及した点については、連絡先管理ライブラリ/ユーティリティを探して、これらの要件がかなり具体的であるため、いくつかのコーディングを行ってください。

于 2012-06-21T04:40:37.767 に答える