У меня есть набор данных, похожий на следующий, который выглядит как магазин типа Walmart.
+-----------------------------------------------------+------------------+------------------+------------------+-----+
| Description | Classification 1 | Classification 2 | Classification 3 | ... |
+-----------------------------------------------------+------------------+------------------+------------------+-----+
| iphone 7 order# :123595 | Electronic | Cell Phone | Apple | |
| purchase of samsung galaxy s10 reference 32-2345 | Electronic | Cell Phone | Samsung | |
| dell 13" 500gb ssd intel i7 | Electronic | Laptop | Dell | |
| tablet 15cm for chris t price $199.76 | Electronic | Tablet | NULL | |
| ... | ... | ... | ... | |
| 50x rolley chairs for office supplied by home depot | Supplies | Furniture | Chairs | |
| electrician cost for new building | Supplies | Electrical | Work | |
+-----------------------------------------------------+------------------+------------------+------------------+-----+
Эта форма набора данных довольно большая, с несколькими тысячами (может быть,> 100 000) строк и, может быть, 50+столбцы.
Я хочу, чтобы метод правильно классифицировал строку на основе ее описания.
Таким образом, модель, основанная на вышеуказанном наборе данных, должна принять описание, которого она раньше не видела, и правильноклассифицируйте этот элемент, например: iphone 11 $999.99 => Electronic, Cell Phone, Apple
.
В настоящее время я планирую использовать описание для классификации в качестве первого шага, чтобы упростить его, однако есть и другие столбцы, например, кто предоставил элемент, который мог бы помочьклассифицируйте, например, если элемент был предоставлен Apple
или AT&T
, его, скорее всего, классифицируют как Cell Phone
.
Я думаю реализовать нейронную сеть для этого. Я реализовал нейронную сеть раньше, но только на типичных примерах (например, система для определения чисел 0-9 [набор данных MINST] или для идентификации одежды), поэтому я понимаю теорию работы нейронных сетей (веса, смещения, градиентного спуска, обратное распространение и т. д.) Однако я борюсь за то, как реализовать эту идею, которая у меня есть сейчас.
Вот мои мысли на данный момент:
Я хочучтобы использовать Python, с tenorflow2.0 + keras.
Мне нужен способ конвертировать текст в числовой формат. Кажется, есть несколько вариантов, таких как word2vec, но я не уверен, что это лучший вариант.
Сколько нейронов должно быть в моем базовом слое? (При распознавании чисел каждое изображение имеет размер 28 * 28, поэтому базовый слой 28 * 28 имеет большой смысл, здесь я не уверен)
Сколько скрытых слоев?
Сколько выходных слоев? (Если у меня будет один для каждой отдельной комбинации классификаций, то есть один для
Electronic, Cell Phone, Samsung
, один для Electronic, Cell Phone, Apple
и т. Д. Это приведет к выходному слою из тысяч нейронов, я не уверен, возможно ли это /посоветовали?
Я не ищу полных ответов, на самом деле я знаю, что это на самом деле невозможно, учитывая предоставленную информацию. Вместо этого я ищу рекомендации / предложения покак поступить с этой проблемой от кого-то более опытного, возможно, на самом деле, скорее всего, есть вещи, которые я пока не рассматриваю.