У меня есть данные 500 000.
как найти похожие имена из базы данных?
пример для "Microsoft" -> Microsys,Microcode,Microsystems,Microgroup...etc
Три разных способа, затем реальный ответ.
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');
Но если ваша цель - найти похожие предприятия, я не буду полагаться на сходство в их именах. В США я бы, вероятно, купил список с сайта infousa.com на основе кода SIC или кода NAICS. Вы можете видеть, как эти коды работают на веб-сайте NAICS Association.
В MySQL есть команда "SOUNDS LIKE", в которой перечислены все фонетически похожие записи. Я уверен, что есть что-то подобное для всех других систем БД.
Вам нужно иметь некоторую логику для группировки похожих имен или того, как вы определяете термин "Подобный". Для "похожих" означает не только первые несколько символов, соответствующих словам. Например: "в этом случае" Microsoft "может дать вам результаты как Microsys, Microcode и т.д., Но другие слова, такие как программное обеспечение, softtonic и т.д., Также будут считаться схожими.
Ну, логика оставлена вам, а затем вы можете разделить исходную строку соответствующим образом, а затем выполнить поиск в таблице с помощью предложения LIKE '%%'.