Как найти похожие имена из базы данных? - PullRequest
0 голосов
/ 20 января 2011

У меня есть 500 тыс. Данных.

как мне найти похожие имена из базы данных ??

пример для "Microsoft" -> Microsys,Microcode,Microsystems,Microgroup...etc

Ответы [ 4 ]

1 голос
/ 18 февраля 2019

прошло много времени с момента вопроса, но я считаю, что первоначальную проблему можно было легко решить с помощью некоторого алгоритма расстояния Я бы предложил расстояние Левенштейна

В этой статье объясняется, как реализовать расстояние Левенштейна в MySQL.

1 голос
/ 20 января 2011

В MySQL есть команда «SOUNDS LIKE», которая перечисляет все фонетически похожие записи. Я уверен, что есть что-то подобное для всех других систем БД.

0 голосов
/ 20 января 2011

Три разных способа, тогда реальный ответ.

CREATE TABLE company_names (
    company_name VARCHAR(35) PRIMARY KEY
);

INSERT INTO company_names VALUES ('Microsoft');
INSERT INTO company_names VALUES ('Microcode');
INSERT INTO company_names VALUES ('TrendMicro');
INSERT INTO company_names VALUES ('Microphones, Inc.');
INSERT INTO company_names VALUES ('Softonic');
INSERT INTO company_names VALUES ('Soft Touch Cleaning');
INSERT INTO company_names VALUES ('Software Systems');
INSERT INTO company_names VALUES ('SoftTouch Movers');
  1. ВЫБЕРИТЕ имя_компании ИЗ КОМПАНИИ_ЗНАЧЕНИЕ ПО СУБСТРУ (название компании, 1,4);
  2. ВЫБЕРИТЕ имя_компании ИЗ ИМЕН компании_ГДЕ имя_компании LIKE 'Micro%';
  3. ВЫБЕРИТЕ имя_компании ИЗ ИМЕН компании_ГДЕ имя_компании LIKE '% Micro%';

Но если ваша цель - найти похожие предприятия, я бы не стал полагаться на сходство их названий. В США я бы, вероятно, купил список на infousa.com, основываясь на коде SIC или коде NAICS. Вы можете увидеть, как эти коды работают на веб-сайте NAICS Association .

0 голосов
/ 20 января 2011

У вас должна быть логика в группировке похожих имен или в том, как вы определяете термин «похожие».Под «подобным» подразумеваются не только первые несколько символов, совпадающих со словами.Например: - в этом случае « Microsoft » может дать вам результаты в виде Microsys, Microcode и т. Д., Но другие слова, такие как программное обеспечение, софттоник и т. Д., Также будут рассматриваться как похожие.логика остается за вами, а затем вы можете соответствующим образом разделить исходную строку и затем выполнить поиск в таблице, используя предложение LIKE '%%' .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...