|
|
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Пытаюсь из некоторого толстого doc-файла, в котором имеются табличные данные для упрощения некторых задач создать БД. Только таблицы эти создавались разными людьми, соответственно и заполняли их по своему усмотрению. Что-то унифицировать сейчас не представляется возможным. Объясню на кошках и иных братьях наших меньших: допустим, в ячейках встречаются такие записи: "кошка, собака, попугай" или "собака, хомяк, канарейка". Эти значения могут повторяться во многих строках. Путем выборки и разбивки строк на подстроки по запятой, получаю уникальные значения для каждой животины ("кошка", "собака", "попугай" и пр.). Но некоторые товарищи заполняли таблицу так: "кошкИ, собакИ" или еще хуже : "собаки дворовые, породистые, кошка". То есть в таблице уникальных животных будут записи: собака, собаки. И если с этим еще как-то можно мириться, то вот разбив последнюю запись по запятой как разделителю, в числе животных появляется некое "породистые", что совсем ни в какие ворота. Не могу придумать, как научить алгоритм понимать, где заканчиваются "собаки породистые" и начинается "кошка". Буду благодарен за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 03:30 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Вручную, вручную... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 07:40 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Алексей Шм.Здравствуйте! ..... Не могу придумать, как научить алгоритм понимать, где заканчиваются "собаки породистые" и начинается "кошка". Буду благодарен за помощь. Ну если в строке встречается последовательность "собак" - то значит нашел собаку, если нашел последовательность "кошк" - то кошку.... разве не очевидно? чтобы было проще искать - сразу преобразуй к примеру в нижний регистр все... также можешь наступить на мину с буквой "с", ибо она находится на месте латинской "с", а ленивые люди, увидев что печатают не в той раскладке - стирают только неверные символы и дальше дописывают текст, получается слово из кириллицы с первым латинским символом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 10:24 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
AndreyTarasovАлексей Шм.Здравствуйте! ..... Не могу придумать, как научить алгоритм понимать, где заканчиваются "собаки породистые" и начинается "кошка". Буду благодарен за помощь. Ну если в строке встречается последовательность "собак" - то значит нашел собаку, если нашел последовательность "кошк" - то кошку.... разве не очевидно? чтобы было проще искать - сразу преобразуй к примеру в нижний регистр все... также можешь наступить на мину с буквой "с", ибо она находится на месте латинской "с", а ленивые люди, увидев что печатают не в той раскладке - стирают только неверные символы и дальше дописывают текст, получается слово из кириллицы с первым латинским символом. Это как раз таки очевидно, поэтому и написал, что собакИ не так страшно. А вот как из строки "собаки дворовые, породистые, кошка" получить "собаки дворовые", "собаки породистые", "кошка"? Сдается, что только AkinaВручную, вручную... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 10:39 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Ну или хотя бы "собаки дворовые, породистые" и "кошка". Как на регулярках выразиться, что "породистые" относится к собакам, а кошка - уже другое животное. Дело в том, что я заранее не знаю, какие еще будут записи далее по таблице. Как вариант - выбрать все уникальные с разделителем по запятой и потом смотреть в списке косячные.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 10:46 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Алексей Шм.Это как раз таки очевидно, поэтому и написал, что собакИ не так страшно. А вот как из строки "собаки дворовые, породистые, кошка" получить "собаки дворовые", "собаки породистые", "кошка"? ии??? в чем проблема-то?? ну ищи по основному и дополнительному признаку, если основной признак у тебя делится на разделы.. 1 колонка = Собака(найденное ключевое слово) 2 колонка = Собаки дворовые(полный текст, для детального изучения) либо внятно озвуч проблемы :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 10:48 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
AndreyTarasovАлексей Шм.А вот как из строки "собаки дворовые, породистые, кошка" получить "собаки дворовые", "собаки породистые", "кошка"? либо внятно озвуч проблемы :-) ИМХУ внятно написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 10:52 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Алексей Шм.Как вариант - выбрать все уникальные с разделителем по запятой и потом смотреть в списке косячные.. Как вариант: в первый проход составить словарь косячных слов (руками), во второй проход при встрече слова из словаря добавлять начало от предыдущего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 11:00 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Dima TAndreyTarasovпропущено... либо внятно озвуч проблемы :-) ИМХУ внятно написано. Абсолютно непонятно.. что надо найти??? всех собак и отделить от кошек? или найти всех собак и разделить их по категориям, а потом тоже самое с кошками? если первое - то второстепенные признаки абсолютно не важны и на них смотреть не стоит, хоть дворовые, хоть породистые и т.п. а если второе - то никто не мешает сделать 2 таблицы и делить найденное по разделам, определяя каждые раздел по сллову определителю - но это автор не озвучил, по этому и проблема не известна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 11:03 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Сначала сделайте первичный разбор и сформируйте словарь. Причём сразу предусмотрите 2 поля - токен в списке и токен в словаре. Вручную обработайте его, для начала просто подкорректируйте очевидные варианты. Это уже даст формализацию значительной части массива. А на втором этапе уже обрабатывайте и "ословаривайте" те выпендроны, которые встречаются в единственном или около того экземпляре. В итоге получите двухэтапную таблитцу преобразования, которая может использоваться для автоматического преобразования "кривого" списка в нормальный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 11:05 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Применительно к приведённому примеру: "кошка, собака, попугай" "собака, хомяк, канарейка" "кошки, собаки" "собаки дворовые, породистые, кошка" таблица преобразования получится такой: Исх. токен Кон. токенсобаки дворовые, породистые собака породистаясобаки дворовые, породистые собака двороваяканарейкаканарейкапопугайпопугайсобакасобакасобакисобакахомяк хомяккошкакошкакошкикошка Таблица формируется (или, во всяком случае, обрабатывается) в порядке уменьшения длины токена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 11:16 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за участие! AkinaПрименительно к приведённому примеру: . В том и проблема, что не могу сформировать исходный список. Представляете такую строку, в одной ячейке: "Собаки дворовые, породистые , кошка, попугай волнистый, желтый, синий, рыбки аквариумные, речные, гуппи, медведь бурый, гималайский" Таких строк тысячи с разным содержимым . Если я выберу уникальные значения с разделителем по запятой, получу: - Собаки дворовые - породистые - кошка -попугай волнистый -желтый -синий -рыбки аквариумные - речные - гуппи -медведь бурый - Гималайский То есть массив как бы "животных". В итоге придётся все равно в исходной сроке между животными в ручную ставить иной разделитель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 12:36 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Алексей Шм., Тогда обрати внимание на окончание слов.... просто выбери прилагательные :-) остальные слова станут ключевыми. Ну и далее уже манипуляции с запятыми ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 12:58 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Алексей Шм., если в реальности также соблюдается формат "существительное" "существительное прилагательное" "прилагательное" Т.е. всегда первое существительное, тогда к прилагательному подставлять предыдущее существительное. Тут можно попробовать окончания разбирать и предсказывать существительное это или прилагательное. Но 100% не предскажешь, например: "Железо, Алюминий" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 13:11 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Алексей Шм."Собаки дворовые, породистые , кошка, попугай волнистый, желтый, синий, рыбки аквариумные, речные, гуппи, медведь бурый, гималайский" Таких строк тысячи с разным содержимым . Если я выберу уникальные значения с разделителем по запятой, получу: - Собаки дворовые - породистые - кошка -попугай волнистый -желтый -синий -рыбки аквариумные - речные - гуппи -медведь бурый - ГималайскийДа, представляю. После первого этапа ты получишь указанный список. Обработаешь его и пометишь к дальнейшей ручной обработке токены: - породистые -желтый -синий - речные - Гималайский Соответственно при ручной обработке ты выполнишь сшивку с предыдущим токеном, получая составные токены. А кто сказал, что будет легко? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 13:54 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Dima T..... окончания разбирать и предсказывать существительное это или прилагательное. Но 100% не предскажешь, например: "Железо, Алюминий" "Алюминий" не подходит под прилагательное :-) не могу припомнить (видимо из-за непрерывного, админского пьянства) прилагательное оканчивающиеся на "ний" разве что "ихний" и "синий" :-)) я вот как-то делал определитель пола в программе для учебного заведения... - если отчество оканчивалось на "а" - то это девочка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 14:43 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
AndreyTarasov"Алюминий" не подходит под прилагательное :-) не могу припомнить (видимо из-за непрерывного, админского пьянства) прилагательное оканчивающиеся на "ний" разве что "ихний" и "синий" :-)) В гугле поискать не пробовал? Слова с окончанием Ий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 14:51 |
|
||
|
Выборка уникальный значений
|
|||
|---|---|---|---|
|
#18+
Dima TВ гугле поискать не пробовал? Слова с окончанием Ий Не пробовал :-) ну и не "ий", а "ний".... хотя тоже есть результаты, но к животным их сложно отнести :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 15:07 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=25&tid=1340553]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 373ms |

| 0 / 0 |
