- Регистрация
- 16.03.2016
- Сообщения
- 1 633
- Благодарностей
- 1 229
- Баллы
- 113
В общем, ситуация следующая.
Есть массив данных в виде таблицы, в которой по определенным колонкам нужно найти все строки, в которых встречаются определенные "стоп-слова" (или словосочетания). Т.е., это обычный contains (текст в ячейке не равен слову, он может его содержать).
Проблема в том, что нужно учесть "варианты написания" )))
Т.е., в списке стоп-слов есть такие варианты: Alexandr, Monty Python, Smith & Wesson...
Нужно найти строки/ячейки, в которых будут такие варианты:
- Alexandr, Aleksandr, Alexander, Александр
- Monty Python, MontyPython, Monty Pyton, Монтипайтон
- Smith & Wesson, Smith and Wesson, Smith&Wesson, Смит энд Вессон, Смит и Вессон
Да, русскоязычный вариант тоже, желательно, чтобы определялся. Впрочем, как и в обратную сторону (указываем Александр, находит Alexandr).
Также должны учитываться все варианты написания по пробелам, регистрам букв и т.д.
Понятно, что можно было бы поискать и задействовать какой-нибудь сторонний ресурс и пытаться проверять через него, но массив может быть относительно большой, плюс данные надо будет обрабатывать более-менее постоянно. Хочется замкнуть весь процесс в рамках своей машины. Скорость работы некритична, все равно все будет пробегаться в цикле по таблице (по каждому стопслову).
Может, есть какие-то библиотеки, которые можно было бы использовать? Или еще какие варианты? )))
ps. Надеюсь, понятно объяснил, что нужно )) Не помню точный термин, как такой поиск называется, поэтому возникла проблема с поиском. Такое ощущение, что где-то на форуме подобная тема как-то всплывала, но не могу найти ))
pps. И да, я понимаю, что 100% точность маловероятна, я за ней и не стремлюсь. Ошибки и "ложные срабатывания" тоже возможны. Результат работы потом все равно будет дополнительно обрабатываться руками. Просто нужно изначальный объем сузить, скажем так ))
Есть массив данных в виде таблицы, в которой по определенным колонкам нужно найти все строки, в которых встречаются определенные "стоп-слова" (или словосочетания). Т.е., это обычный contains (текст в ячейке не равен слову, он может его содержать).
Проблема в том, что нужно учесть "варианты написания" )))
Т.е., в списке стоп-слов есть такие варианты: Alexandr, Monty Python, Smith & Wesson...
Нужно найти строки/ячейки, в которых будут такие варианты:
- Alexandr, Aleksandr, Alexander, Александр
- Monty Python, MontyPython, Monty Pyton, Монтипайтон
- Smith & Wesson, Smith and Wesson, Smith&Wesson, Смит энд Вессон, Смит и Вессон
Да, русскоязычный вариант тоже, желательно, чтобы определялся. Впрочем, как и в обратную сторону (указываем Александр, находит Alexandr).
Также должны учитываться все варианты написания по пробелам, регистрам букв и т.д.
Понятно, что можно было бы поискать и задействовать какой-нибудь сторонний ресурс и пытаться проверять через него, но массив может быть относительно большой, плюс данные надо будет обрабатывать более-менее постоянно. Хочется замкнуть весь процесс в рамках своей машины. Скорость работы некритична, все равно все будет пробегаться в цикле по таблице (по каждому стопслову).
Может, есть какие-то библиотеки, которые можно было бы использовать? Или еще какие варианты? )))
ps. Надеюсь, понятно объяснил, что нужно )) Не помню точный термин, как такой поиск называется, поэтому возникла проблема с поиском. Такое ощущение, что где-то на форуме подобная тема как-то всплывала, но не могу найти ))
pps. И да, я понимаю, что 100% точность маловероятна, я за ней и не стремлюсь. Ошибки и "ложные срабатывания" тоже возможны. Результат работы потом все равно будет дополнительно обрабатываться руками. Просто нужно изначальный объем сузить, скажем так ))