fc2ブログ
 
■カウンター

ただ今電波障害発生中

■プロフィール

JR8PPG

Author:JR8PPG

■1アマ取得キャンペーン


■ためになる本



■最近の記事
■最近のコメント
■カテゴリー
■リンク
■月別アーカイブ

N+1
N+1を実際に使ってみてわかったこと。

コール欄に「JI1IIF」と入れるとこうなりました。
nplus1_2.png
目を凝らしてみると3番目に一致しているJI1IIF局のコールがある。なんじゃこりゃ。だめじゃん。
てなわけで、慌てて修正してみる。

とりあえずレーベンシュタイン距離の近い方から表示して一致する場合(距離0)は色を付けてみた。
nplus1_3.png
なんかよさそう。

次にWin-Testの動きを確認する。
こちらは一致しても特に他と変わらず。ただし、一致する物が無い場合は[UNIQUE]の表示が出る。
なるほどね~

一致する物に色を付けると、それに誘導されてしまうからなのかな。なんとかバイアスってやつ。
で、代わりに一致無しを知らせる様にした。

JH5GHMさんはその逆で、採用のヒントとするために、
違う文字(又は同じ文字)に色を付けることにした。
なるほどね~

うーん、どうしたものかな。

それから、JH1KVQさんが順番を間違えた場合(KVQをKQVとか)を色々考えている様なので、
レーベンシュタイン距離の応用でなんとかならんかも考えてみた。
残念ながら、標準化(距離を0~1の範囲)したスコアとしても、比較する文字列長が6文字なので
下記のパターンしか無い事がわかったので断念。

0文字違い(一致)・・・距離0
1文字違い(JR8PPGをJR8PGGなど)・・・0.1667
2文字違い(JR8PPGをJE8PGGやJR8PGPなど)・・・0.3333
2文字違いで長さが違う場合(JR8PPG/8をJR8PPG)・・・0.250
3文字違い(JR8PPGをJE8PGPなど)・・・0.5000

結局、閾値をどこに持って行っても順番間違えは2文字違いにするしかなくて、
2文字違いでは候補が増えすぎで意味が無くなる。

さてさてどうしたものか。

だいぶ酔っ払ってきたので今日はここまで。日付変わってるし、、、



zLog | 00:13:34 | トラックバック(0) | コメント(2)
コメント
呼ばれてもいないのに勝手に出てきました。

レーベンシュタイン距離の定義上文字入れ替えはどうやっても2文字になるのと、以前にコメントしたように同じ文字列でもその時その時の検索コンテキストが違うため、自分が欲するものが常に上位に出るとは限らないです。

すでに考慮されていると思いますが、合致した際の色付けについて実装方法によっては短いコールを包含しているとそれも色付けするケースもあるので注意が必要ですね。私の実装では包含ではなく、完全マッチの場合背景がグレーとなります。また、コールサイン入力フィールドでも同様に背景がグレーになってパーシャル画面をいちいち確認せずともマッチしていることがわかるようになっています。

ちなみに私の実装ですとこんな感じです。[]で囲まれたコールは世にいうcall history中にあるコールサインです。下線の色を削除や置換によって分けることも可能ですが、マッチする文字が連続している数が多いほど上位に表示にされていることもあり、個人的には特にそこまでの必要性は感じていないです。
https://www.dropbox.com/s/zhtje2f8ew555f8/fuzzymatching.png?dl=0
マッチするコールがあった場合はこちら。
https://www.dropbox.com/s/gkoxjmky5481365/matched.png?dl=0

ご参考まで。
2020-06-08 月 14:36:42 | URL | JH5GHM [編集]
こんばんは。
コメントありがとうございます。
実際に使ってみてGHMさんが言わんとすることがわかりました。
なるほどと言う感じで。
マッチする場合に色を変えるのも良いのか悪いのかわかりませんね。
GHMさんのようにグレーでさりげない感じだと余計なバイアスかからないで済みますかね。
いろいろな方に使ってもらって話を聞きたい感じです。

2020-06-08 月 20:05:30 | URL | JR8PPG [編集]
コメントの投稿

管理者にだけ表示を許可する