0

У меня есть таблица около 100 000 строк. Эта таблица находится в файле Excel, а вот снимок из него:Как использовать эффективное сопоставление шаблонов, чтобы найти сходство строк в больших данных

+------------+-----------+-----+-----+-----------------------------------------------------------+ 
| First Name | Last Name | Sex | Age |       Address       | 
+------------+-----------+-----+-----+-----------------------------------------------------------+ 
| Parm  | Jit  | m | 23 | palm court scoeity, RD. golf course, delhi    | 
| Param  | jit  | m | 24 | palm cort society, road golf course, delhi    | 
| Pram  | Jet  | m | 28 | palm court socityt Road golf course, Delhi    | 
| Prm  | jit  | m | 31 | society palm court, Rod. Golf coure, delhi    | 
| Param  | Jeet  | m | 33 | palm court scoety, delhi         | 
| varun  | nagraj | m | 36 | Thame Square, auckland-AZ-2014       | 
| Janet  | kumar  | m | 40 | Thame Square, auckland-AZ-2014       | 
| varun  | kumar  | m | 42 | Thame Square, auckland-AZ-2014       | 
| Jatin  | Kakkar | m | 45 | Noida, near shipra mall, sectr 57, Noida, U.P.   | 
| Jatin  | Kakar  | m | 56 | Noida, near shipra mall, sectr 57, Noida, Uttar pardesh | 
| Jatin  | Kakkr  | m | 57 | Noida, Flat no- 23, near shipra mall, sectr 57, Noida, UP | 
| Janet  | Yellen | F | 23 | 11 CORONADO POINTELAGUNA NIGUELCA92677     | 
| Janet  | Yellen | F | 24 | 11 CORONADO POINTELAGUNA NIGUELCA       | 
| Janet  | Yellen | F | 25 | 11 CORONADO POINTELAGUNA 92677-0000      | 
| Jant  | Yelen  | F | 26 | 11 CORONADO POINTELAGUNA NIGUELCA0000      | 
| Janet  | Yellen | F | 26 | 11 CORONADO POINTELAGUNA NIGUELC       | 
| Abigail | Johnson | F | 24 | PRESERVE DRIVE NE, 11BELMONTMI4930      | 
| andrew  | symonds | m | 24 | Fame Stret, brisbane, hn 181        | 
| Angel  | Ahrendts | F | 26 | WYNGATE MANOR CTALEXANDRIAVA        | 
| Safra  | Catz  | F | 26 | 31155 ZOAR SCHOOL ROADLOCUST GROVEVA22508-0000   | 
| Park  | Geun-hye | F | 30 | CATHOLIC CHURCH RDBEACH LAKEPA       | 
| Sheryl  | Sandberg | F | 24 | 80164 SULTANA AVEINDIOCA92201-0000      | 
| Sheryl  | Sandberg | F | 24 | SULTANA AVEINDIOC           | 
| Safra  | Catz  | F | 26 | OAR SCHOOL ROADLOCUST GROVEV        | 
| Park  | Geun-hye | F | 30 | 308 CATHOLIC CHURCH RDBEACH LAKEPA18405-0000    | 
| andrw  | simnds | m | 24 | Fame Stret, 181 HOUSE NO         | 
| prashat | vats  | m | 35 | Al thei, al nzar, dubai12         | 
| prasant | vats  | m | 37 | Al, al nazar, dubai23          | 
| andrw  | simonds | m | 34 | Fame brisbane, 181 H.N.         | 
| vats  | prashant | m | 30 | Al thei, al nazar, dubai         | 
| vast  | prshant | m | 30 | al nazar, dubai, street adamifullah      | 
| prashant | vats  | m | 37 | Al thei, al nazar, dubai         | 
| ram  | vats  | m | 29 | Al thei, nazar, dubai          | 
| Kiss  | hanes  | m | 45 | Sydney, andrew str. 223         | 
+------------+-----------+-----+-----+-----------------------------------------------------------+ 

Я пытаюсь выяснить строки сходства в этих данных, например, строка 1 очень похожа на грести 2. Я попытался алгоритмы кластеризации (а именно BIRCH, DBSCAN, K means, Spectral и Markov Clustering), но все из них занимает около получаса, чтобы работать на 100000 строк, прежде чем они дают ошибку памяти в python (так как я беру все данные на моей python платформе, моя машина имеет барабан 16gb).

Должен ли я использовать какой-то лучший алгоритм для этой проблемы или мне нужно переместить мои данные на платформу, например spark, а затем работать над ней? Если это так, вы можете помочь мне с некоторым алгоритмом, который не занимает слишком много времени? Пожалуйста, не рассматривайте это как теоретический вопрос, поскольку я с нетерпением жду подхода к решению практической проблемы с большими данными.

+1

Excel и всего 100000 записей - это не большие данные. Это мегабайты, а не экзабайты ... –

ответ

1

Это не имеет смысла использовать эти алгоритмы на этом наборе данных ...

Прежде всего, всегда начинайте с образцом, чтобы узнать рабочий подход, прежде чем рассматривать масштаб. Не тратьте время на масштабирование нерабочего подхода ...

Для фактической проблемы, а не кластеризации, я бы предложил сосредоточиться на уборка данных. OpenRefine может стать хорошим началом.

+0

Какой подход вы предложили бы для очистки данных? –