Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как распознать названия в базе товаров и добавить к каждому тип ?

Саня Семенов Оракул (60569), на голосовании 3 дня назад
Просто в номенклатуре из ляма строчек помимо нормальных "колбаса" и "молоко" попадаются такие вот экземпляры
 WH.Корм ВК.П.Н.П.АП.ОБ.ГОВ.350г 
Есть идеи как пробежаться по всем товарам и расставить нормальные названия ? Откуда взять распарсеную строку чтобы первым словом шло существительное описывающее товар а дальше его характеристики ? В и без сокращений
Голосование за лучший ответ
Магомед Алиев Ученик (210) 1 месяц назад
Работа с большими объемами данных, такими как номенклатура товаров, требует системного подхода. Вот несколько шагов и идей, которые могут помочь вам распознать названия товаров и добавить корректные типы:
1. Определите паттерны для распознавания

Сначала нужно сформулировать несколько правил, по которым вы сможете распознавать названия:

• Существительные: Для распознавания товаров, как «колбаса» или «молоко», определите список ключевых существительных, которые представляют основные категории продуктов (например, "мясо", "молоко", "хлеб", "корм" и т. д.).
• Сокращения: Создайте список распространенных сокращений и их расшифровок (например, "ГОВ." → "говядина", "КР." → "кролик", и т. д.). Это поможет в нормализации названий.
2. Использование алгоритмов и библиотек

Для обработки строк и работы с текстом можно использовать языки программирования (например, Python) и библиотеки, такие как:

• NLTK: Для обработки естественного языка.
• pandas: Для обработки и анализа данных.
• re (регулярные выражения): Для распознавания шаблонов.
3. Обработка данных

1. Примените регулярные выражения: Используйте регулярные выражения для поиска существительных в строках. Например, регулярное выражение может помочь отделить название от характеристик.

2. Нормализация названий:
• Для строк с сокращениями попробуйте создать небольшой скрипт, который будет заменять сокращения на полные названия.
• Можно также использовать стемминг или лемматизацию для приведения слов к корневой форме (например, "колбаса" и "колбаски").

3. Идентификация и классификация:
• Создайте функцию, которая будет анализировать каждую строку, определять основное название товара и его характеристики, и добавлять это в новую колонку в DataFrame (если используете pandas).
4. Ручная проверка и доработка

После применения алгоритмов необходимо провести ручную проверку, чтобы убедиться, что названия корректны. Это особенно важно, если ваши данные могут иметь множество уникальных случаев.
5. Итеративное улучшение

На основе ручной проверки определите, какие правила работают, а какие необходимо доработать. Это поможет улучшить код и алгоритм работы с последующими данными.
Пример кода на Python

import pandas as pd
import re

# Пример данных
data = {'title': ["WH.Корм ВК.П.Н.П.АП.ОБ.ГОВ.350г", "Сыр голландский 200г", "Кофе растворимый 100г"]}

df = pd.DataFrame(data)

# Список сокращений
abbrev_dict = {
"ГОВ.": "говядина",
"КР.": "кролик",
# добавьте другие сокращения по мере необходимости
}

# Функция для нормализации названий
def normalize_title(title):
# Заменяем сокращения
for abbr, full in abbrev_dict.items():
title = title.replace(abbr, full)

# Регулярное выражение для извлечения основного товара
match = re.match(r'([\w\s]+)', title)

if match:
product_name = match.group (0).strip()
else:
product_name = title

return product_name

# Применим нормализацию
df['normalized_title'] = df['title'].apply(normalize_title)

print(df)

Заключение

Этот процесс требует тщательной проверки и может занять довольно много времени, но в конечном итоге вы сможете создать более структурированную и понятную номенклатуру товаров.
Саня СеменовОракул (60569) 1 месяц назад
Сам писал или нс сгенерировала ?
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (272565) 1 месяц назад
Никак. Это мусор, информационный шум..
Саня СеменовОракул (60569) 1 месяц назад
Ну например гугл сразу распознал что это «Корм сухой полнорационный WHISKAS® для взрослых кошек. «Вкусные подушечки с нежным паштетом. Аппетитный обед с говядиной», 350 г»
Но за миллион запросов к гуглу меня так заюлочат что распознавание капчи даже не поможет .
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (272565) Саня Семенов, И это тоже информационный шум. Поисковик тебе даст немного разные расшифровки одного и того же продукта и ты не будешь знать как их индексировать, как один продукт или как разные. Но если тебе не нужна именно реляционная модель, а произвольный список, то да — можно брать кусками и подсовывать в нейросеть. На выходе сразу просить оформить в csv/json, чтобы потом импортировать в базу
Похожие вопросы