ý tưởng về các thuật toán học máy để phân loại sản phẩm


7

Tôi có một danh sách các sản phẩm, bao gồm các biến như tên sản phẩm (như xuất hiện trên biên lai) và thương gia nơi sản phẩm được mua.

Tôi có rất nhiều trong số họ được phân loại thủ công thành một nhóm cố định (ví dụ như đồ uống có cồn, rau, thịt, v.v.).

Các dữ liệu, như mọi khi, ồn ào. Trong trường hợp này, đặc biệt ồn ào vì xuất phát từ các biên lai được quét và OCR trên các bản quét không tốt nên thường rất ồn.

Tôi muốn chơi xung quanh với các thuật toán để phân loại dữ liệu mới, sử dụng hai biến ở trên.

Có một số nguồn biến thể chính ở đây:

  • OCR, có nghĩa là một sản phẩm (ví dụ gà) có thể được tìm thấy với nhiều cách viết khác nhau nhưng tương đối giống nhau (ví dụ: chiken, hicken, chicen, ...).
  • Cùng một sản phẩm có thể có tên khác nhau, theo các thương gia đã bán sản phẩm. Trong trường hợp này, các tên có thể giống nhau hoặc hoàn toàn khác nhau giữa các thương nhân, nhưng tương tự nhau trong mỗi thương gia.
  • Cùng một sản phẩm có thể có các tên rất khác nhau trong cùng một thương gia (ví dụ: các sản phẩm có thương hiệu có tên trên hóa đơn là tên thương hiệu, so với tên chung; nước ngọt so với coca cola).

Tôi đã thử một số trình phân loại (loại ngây thơ), ví dụ như sử dụng khoảng cách giữa các chuỗi (mà chủ yếu là nguồn biến thể chính đầu tiên được đề cập ở trên), nhưng tôi không hài lòng lắm với kết quả.

Vì vậy, tôi muốn tiếp cận ở đây để hỏi ý tưởng về cách giải quyết vấn đề này. Tôi đoán nhiều người đã "giải quyết" hoặc ít nhất là làm việc lâu hơn trong loại vấn đề này hơn tôi (một vài giờ) vì vậy tôi thực sự sẽ đánh giá cao bất kỳ hướng dẫn nào ở đây.

Nhân tiện, tôi sử dụng chủ yếu là R, vì vậy các giải pháp dựa trên R sẽ được đánh giá rất cao.


Điều này có thể không chính xác rộng rãi, nhưng cụm từ xuất hiện trong đầu tôi khi tôi đọc đây là "mô hình chủ đề có cấu trúc". Nếu phương thức này hoàn toàn phù hợp, có một gói R cho nó được gọi là stm.
LMO

Câu trả lời:


2

Giải quyết từng vấn đề của bạn:

1) OCR: Đây có lẽ là vấn đề dễ nhất của bạn vì có nhiều thuật toán hoạt động tốt trong nhiệm vụ này. Như một tài liệu tham khảo, trong bộ dữ liệu chữ số viết tay nổi tiếng nhất, MNIST , một số thuật toán đã đạt được độ chính xác hơn 99,5% (mạng tiên tiến nhất là Mạng nơ ron kết hợp). Bạn cũng có thể tìm thấy nhiều giải pháp vượt trội cho vấn đề của mình; nó sẽ giúp ích rất nhiều nếu dữ liệu của bạn bằng tiếng Anh, vì các công cụ tiên tiến hơn. Nếu bản quét của bạn ồn ào, bạn có thể thử khử nhiễu chúng trước.

2) Bạn cần thực hiện một số tiền xử lý cho vấn đề này. Đầu tiên tôi sẽ đề nghị, nếu có thể, tạo ra một túi các từ , tức là một danh sách tất cả các từ duy nhất trong "kho văn bản" của bạn. Xác minh rằng tất cả các từ này là chính xác và thực hiện so sánh khoảng cách chuỗi (ví dụ: khoảng cách hãm) để sửa lỗi chính tả 1-2 chữ cái. Một điều khác tôi sẽ làm là tính toán số lần xuất hiện của mỗi thuật ngữ trong túi của bạn và loại bỏ những từ ít xảy ra nhất (ví dụ: các thuật ngữ xảy ra ít hơn N lần trong kho văn bản của bạn có thể là lỗi chính tả hoặc loại bỏ M% ít nhất trong các thuật ngữ của bạn). Điều đó sẽ làm giảm đáng kể tiếng ồn trong tập dữ liệu của bạn.

3) Để giải quyết vấn đề này, bạn cần thực hiện một số loại ghi nhãn ngữ nghĩa. Nếu bạn quen thuộc với các bản thể luận, cấu trúc phân cấp của chúng có thể giúp ích rất nhiều ở đây. Bạn có thể tạo các quy tắc như "coca-cola" là "nước ngọt" là một loại đồ uống, v.v.

Tôi không có kinh nghiệm về R, nhưng tôi chắc rằng bạn có thể tìm thấy các công cụ để thực hiện tất cả các điều trên khá dễ dàng.


0

Có vẻ như bạn nên xác định sự tương đồng giữa các thực thể.

Bạn có nhiều nguồn cho sự tương tự. Bạn đã đề cập khoảng cách về tên (chỉnh sửa khoảng cách) và thành viên trong nhóm. Lưu ý rằng bạn có thể mở rộng sự giống nhau theo nhóm thành nhiều nhóm và nhiều loại tương tự. Các nhóm có thể thuộc cùng một công thức, được bán bởi cùng một thương gia, thuộc cùng loại, v.v ... Các loại tương tự có thể là mặt phẳng thuộc cùng một nhóm, trọng lượng với tỷ lệ nghịch với kích thước nhóm, v.v ... Trên tất cả các mục đích sử dụng có thể sử dụng tính siêu việt. Ví dụ: bạn có thể tìm thấy sản phẩm tương tự của một tên khác bằng cách sử dụng thực tế rằng chúng sẽ được sử dụng với cùng một sản phẩm (ví dụ: gia vị X` và gia vị X`` đều sẽ được sử dụng với thịt gà).

Rất nhanh bạn sẽ có nhiều mối quan hệ tương đồng và bạn sẽ tự hỏi làm thế nào để kết hợp chúng. Ở đây đến để giúp ghi nhãn bạn đã thực hiện. Hãy coi đây là những cặp tích cực của các sản phẩm liên quan. Tạo các bộ sản phẩm riêng biệt (không phải trong các cặp dương) dưới dạng cặp âm. Xây dựng một bộ dữ liệu trong đó tính tích cực là khái niệm và điểm tương đồng là các cặp. Bây giờ bạn có thể sử dụng thuật toán học có giám sát để có được một mô hình kết hợp các điểm tương đồng thành một dự đoán duy nhất. Bạn có thể sử dụng mô hình này để dự đoán sự liên kết giữa cặp mới. Là một phần thưởng, bạn sẽ có thể đánh giá hiệu suất của mô hình trên tập dữ liệu (ví dụ: độ chính xác, độ chính xác, ...) và có sự chắc chắn hơn trong đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.