0

世界中のさまざまなユーザーからのテキスト入力を含む列があり、それらをグループ化して、類似した文字列がより近くなるようにしたいと考えています。列には、英語以外の言語の文字列が含まれており、さらにスペル ミスの単語が含まれている可能性があります。

私はNグラムとレーベンシュタイン距離を調べてきましたが、行を照合するために文字列を念頭に置いている必要があるようです。

例として、私は

   |Comcast               | 
   |how to play basketball|
   |Walmart               |
   |www.Comcast.net       |
   |Wamlart               |
   |basketball            |

最終的には次のようになります。

   |Comcast               | 
   |www.Comcast.net       |
   |how to play basketball|
   |basketball            |
   |Walmart               |
   |Wamlart               |

どんな助けでも大歓迎です。ありがとうございました。

4

3 に答える 3

1

SOUNDEXコードで注文してみてください。

例えば、

ORDER BY SOUNDEX(MyColumn)

ただし、これは長い文字列では機能しなくなります。Double Metaphone アルゴリズムを使用すると、おそらくよりうまくいくでしょう。

http://www.atomodo.com/code/double-metaphone/metaphone.sql/view

于 2012-04-18T19:05:09.707 に答える
0

データを表示する前に、すべての文字列に '.net' のように削除するものがある場合は、次のように実行できます。

SELECT column,ordercolumn FROM 
(
    SELECT column,REPLACE(column,'www.comcast.net','ComCast') ordercolumn
    FROM mytable
) A
ORDER BY ordercolumn,column;
于 2012-04-18T19:23:53.277 に答える
0

ORDER BYの代わりに使用GROUP BY

SELECT * FROM table ORDER BY column ASC
SELECT * FROM table ORDER BY column DESC

列はアルファベット順に昇順または降順に並べられます

于 2012-04-18T19:13:28.600 に答える