KR20200128429A - 자동 로트 분류 - Google Patents

자동 로트 분류 Download PDF

Info

Publication number
KR20200128429A
KR20200128429A KR1020207028797A KR20207028797A KR20200128429A KR 20200128429 A KR20200128429 A KR 20200128429A KR 1020207028797 A KR1020207028797 A KR 1020207028797A KR 20207028797 A KR20207028797 A KR 20207028797A KR 20200128429 A KR20200128429 A KR 20200128429A
Authority
KR
South Korea
Prior art keywords
list
token
string
vector
training
Prior art date
Application number
KR1020207028797A
Other languages
English (en)
Other versions
KR102501362B1 (ko
Inventor
다니엘 리 후르비츠
아이도 가이
Original Assignee
이베이 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이베이 인크. filed Critical 이베이 인크.
Publication of KR20200128429A publication Critical patent/KR20200128429A/ko
Application granted granted Critical
Publication of KR102501362B1 publication Critical patent/KR102501362B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/358Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/163Handling of whitespace
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

로트 분류를 위한 방법, 시스템, 및 매체가 개시된다. 일 예에서, 로트 목록을 식별하기 위한 분류 시스템은 게시 시스템에서 목록에 대한 설명을 수신하고, 목록에서 문자열을 식별하고, 문자열에서 수량 단어 또는 숫자를 식별하고, 그리고 식별된 수량 단어를 숫자 형태로 변환한다. 정규화된 문자열은 토큰을 생성하도록 토큰화되고, 정규화된 문자열의 토큰화는 구분자들의 시퀀스를 사용하여 정규화된 문자열을 일련의 서브 문자열로 분할하는 것을 포함한다. 각 서브 문자열마다, 임의의 다른 인접 문자가 다른 숫자가 아닌 한 임의의 숫자를 임의의 다른 인접 문자로부터 분리하여 추가 분할을 수행하고, 각 분할된 서브 문자열의 내부 문자 순서를 유지하여 토큰화된 토큰들의 평탄화된 목록을 생성한다.

Description

자동 로트 분류
우선권 주장
본 출원은 2018년 3월 8일 출원된 미국 특허 출원 번호 제15/916,207호의 우선권을 주장하며, 이 미국 출원은 그 전체가 본원에 참고로 포함된다.
본 개시 내용의 실시예는 일반적으로 데이터 카테고리화(data categorization)에 관한 것이다. 본 개시 내용은 보다 구체적으로 자동 로트 분류(automatic lot classification)에 관한 것이다.
온라인 사용자가 인터넷 기반 검색 엔진과 같은 전자 검색 메커니즘을 사용하여 관심이 있는 특정 정보, 예컨대, 제품 또는 서비스를 검색하는 것이 점점 보편화되고 있다. 이러한 전자 검색 메커니즘에 의해, 다수의 판매자로부터 입수되는 제품 데이터를 처리하고 해당 제품 데이터를 검색 결과의 형태로 수백만의 고객에게 전달하는 데 사용되는 복잡한 시스템은 고객이 이용 가능한 최상의 정보를 수신받을 수 있도록 추구하고 있다. 이를 수행하기 위해서는 먼저 초기 기본 데이터를 얻어야 하며 이 데이터는 일반적으로 여러 소스에서 획득한 수백만 개의 제품 또는 서비스 제공과 관련된 정보를 포함할 것이다. 정보는 종종 형식과 내용이 무계획적이며 일부 영역에서는 일관성이 없을 수도 있다. 따라서, 대략적인 정보가 일단 획득되면, 특히 데이터 비교를 가능하게 하고 깨끗하고 검색 가능한 정보의 프리젠테이션을 가능하게 하도록 통상적으로 카테고리화된다.
제품을 카테고리화하기 위해 다양하고 많은 시도가 행해졌지만 로트를 분류하는 데는 거의 관심이 없었다. 제품 제공(product offerings)을 카테고리화하는 한 가지 접근 방식에는 수동 카테고리화 접근 방식이 포함된다. 수동 카테고리화 접근 방식에서, 작업자는 제품 제공을 제품 카테고리에 배정한다. 이러한 수동 방법은 경우에 따라 로트 분류(lot classification)에도 적용할 수 있다. 수동 분류 접근 방식의 문제점은 작업자가 전형적으로 각 제품 제공을 하나 이상의 특정 제품 카테고리에 배정하려고 하기 때문에 시간과 리소스가 소모된다는 것이다.
지도 트레이닝 사례(supervised training cases)로부터 규칙의 세트를 학습하려는 머신 학습 시스템조차 상당한 도전에 직면하고 있다. 예를 들어, 지도 기술(supervised techniques)에는 태깅된 트레이닝 사례(tagged training cases)가 대량으로 필요할 수 있다. 존재할 수 있는 기술적 문제의 또 다른 예는 이러한 트레이닝 사례를 상이한 타입의 제품에 일반화할 수 없다는 것이다. 결과적으로, 머신 트레이닝 기술은 확장성 측면에서도 문제에 직면하게 된다.
본 발명자는 이들 및 다른 기술적 문제를 해결하고자 하며, 아래에서 보다 상세히 기술되는 바와 같이, 이에 대한 기술적 솔루션으로서 자동 로트 분류 시스템, 방법 및 매체를 제공하고자 한다.
본 개시 내용의 일부 실시예는 첨부 도면의 도면에 대한 제한이 아닌 예로서 도시되며, 여기서 유사한 참조 번호는 유사한 요소를 나타낸다.
도 1은 예시적인 실시예에 따른 네트워크형 시스템을 도시한 블럭도이다.
도 2는 일부 예시적인 실시예에 따른 예시적인 로트 분류 시스템의 아키텍처 세부 사항을 나타내는 블럭도이다.
도 3은 본원에 기술된 다양한 하드웨어 아키텍처와 함께 사용될 수 있는 대표적인 소프트웨어 아키텍처를 도시한 블럭도이다.
도 4는 머신 판독 가능 매체(예컨대, 머신 판독 가능 저장 매체)로부터의 명령어를 판독할 수 있고, 본원에서 논의된 임의의 하나 이상의 방법을 수행할 수 있는 일부 예시적인 실시예에 따른 머신의 컴포넌트를 도시한 블럭도이다.
도 5는 예시적인 실시예에 따른 토큰화 방법에서의 동작들의 플로우 차트이다.
도 6은 예시적인 실시예에 따른 특징 벡터의 양태를 나타내는 표이다.
도 7은 다양한 실시예에 따른 트레이닝 예의 양태를 나타내는 표이다.
도 8은 예시적인 실시예에 따른 분류 방법에서의 동작들의 플로우 차트이다.
도 9는 예시적인 실시예에 따른 로트 분류 알고리즘에서의 동작들의 플로우 차트이다.
이하의 설명은 예시적인 실시예를 구현하는 예시적인 시스템, 방법, 기술, 명령어 시퀀스, 및 컴퓨팅 머신 프로그램 제품을 포함한다. 설명을 목적으로 하는 이하의 설명에서는, 본 발명의 요지의 다양한 실시예의 이해를 제공하기 위해 다수의 특정 세부 사항이 설명되고 있다. 그러나, 본 발명의 요지의 실시예가 이들 특정 세부 사항 없이도 실시될 수 있음이 본 기술 분야의 기술자에게는 명백할 것이다. 일반적으로, 잘 알려진 명령어 인스턴스, 프로토콜, 구조, 및 기술은 상세하게 나타나지 않았다. 본 개시 내용은 로트 분류를 최적화하고 개선하기 위한 기술적 솔루션을 제공한다. 구축 최적화를 위한 시스템, 방법 및 아키텍처가 본원에 개시된다.
본 문맥에서 "캐리어 신호"는 머신에 의한 실행을 위한 명령어를 저장, 인코딩, 또는 운반할 수 있는 임의의 무형적인 매체를 지칭하며, 그러한 명령어의 통신을 가능하게 하는 디지털 또는 아날로그 통신 신호 또는 다른 무형적인 매체를 포함한다. 명령어는 네트워크 인터페이스 디바이스를 통한 전송 매체를 사용하여 그리고 다수의 잘 알려진 전송 프로토콜 중 임의의 것을 사용하여 네트워크 상에서 전송되거나 수신될 수 있다.
본 문맥에서 "클라이언트 디바이스"는 하나 이상의 서버 시스템 또는 다른 클라이언트 디바이스로부터 리소스를 획득하기 위해 통신 네트워크와 인터페이싱하는 임의의 머신을 지칭한다. 클라이언트 디바이스는 모바일폰, 데스크탑 컴퓨터, 랩탑, PDA (portable digital assistant), 스마트폰, 태블릿, 울트라북, 넷북, 랩탑, 다중 프로세서 시스템, 마이크로프로세서 기반 또는 프로그래머블 가전 시스템, 게임 콘솔, 셋탑 박스, 또는 사용자가 네트워크에 액세스하는 데 사용할 수 있는 임의의 다른 통신 디바이스일 수 있지만, 이에 제한되지는 않는다.
본 문맥에서 "통신 네트워크"는 애드혹(ad hoc) 네트워크일 수 있는 네트워크, 인트라넷, 엑스트라넷, 가상 사설망(virtual private network)(VPN), 근거리 통신망(local area network)(LAN), 무선 LAN (WLAN), 광역 통신망(wide area network)(WAN), 무선 WAN (WWAN), 메트로폴리탄 통신망(metropolitan area network)(MAN), 인터넷, 인터넷의 일부, 공중 교환 전화망(Public Switched Telephone Network)(PSTN)의 일부, POTS (plain old telephone service) 네트워크, 셀룰러 전화 네트워크, 무선 네트워크, Wi-Fi® 네트워크, 다른 타입의 네트워크, 또는 2 개 이상의 이러한 네트워크의 조합 중 하나 이상의 부분을 지칭한다. 예를 들어, 네트워크 또는 네트워크의 일부는 무선 또는 셀룰러 네트워크를 포함할 수 있으며, 네트워크에 대한 클라이언트 디바이스의 연결(coupling)은 코드 분할 다중 접속(Code Division Multiple Access)(CDMA) 접속, 글로벌 모바일 통신 시스템(Global System for Mobile communications)(GSM) 접속, 또는 다른 타입의 셀룰러 또는 무선 연결일 수 있다. 이 예에서, 연결(coupling)은 단일 캐리어 무선 전송 기술(1xRTT), 진화 데이터 최적화(Evolution-Data Optimized)(EVDO) 기술, 범용 패킷 무선 서비스(General Packet Radio Service)(GPRS) 기술, GSM 진화를 위한 향상된 데이터 속도(Enhanced Data rates for GSM Evolution)(EDGE) 기술, 3G를 포함한 3 세대 파트너쉽 프로젝트(third Generation Partnership Project)(3GPP), 4 세대 무선 (4G) 네트워크, UMTS (Universal Mobile Telecommunications System), HSPA (High Speed Packet Access), WiMAX (Worldwide Interoperability for Microwave Access), LTE (Long Term Evolution) 표준, 다양한 표준 설정 조직에 의해 정의된 다른 표준, 다른 장거리 프로토콜(long-range protocols), 또는 다른 데이터 전송 기술과 같은 다양한 타입의 데이터 전송 기술 중 임의의 기술을 구현할 수 있다.
본 문맥에서 "컴포넌트"는 기능(function), 메쏘드(method), 속성, 객체, 또는 서브 루틴 호출, 분기 포인트, 애플리케이션 프로그램 인터페이스(application program interfaces)(APIs), 또는 특정 처리 또는 제어 기능의 분할(partitioning) 또는 모듈화(modularization를 제공하는 다른 기술에 의해 정의된 경계를 갖는 디바이스, 물리적 엔티티, 또는 로직을 지칭한다. 컴포넌트는 인터페이스를 통해 다른 컴포넌트와 결합되어 머신 프로세스(machine process)를 수행할 수 있다. 컴포넌트는 다른 컴포넌트와 함께 사용하도록 디자인된 패키징된 기능 하드웨어 유닛(packaged functional hardware unit), 및 일반적으로 관련 기능들 중의 특정 기능을 수행하는 프로그램의 일부일 수 있다. 컴포넌트는 소프트웨어 컴포넌트(예컨대, 머신 판독 가능 매체 상에 구현된 코드) 또는 하드웨어 컴포넌트를 구성할 수 있다.
"하드웨어 컴포넌트"는 특정 동작을 수행할 수 있는 유형적인 유닛(tangible unit)이며, 특정 물리적 방식으로 구성 또는 배열될 수 있다. 다양한 예시적인 실시예에서, 하나 이상의 컴퓨터 시스템(예컨대, 독립형 컴퓨터 시스템, 클라이언트 컴퓨터 시스템, 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 이상의 하드웨어 컴포넌트(예컨대, 하나의 프로세서 또는 프로세서들의 그룹)는 소프트웨어(예컨대, 하나의 애플리케이션 또는 애플리케이션의 일부)에 의해 본원에서 기술되는 특정 동작을 수행하도록 동작하는 하드웨어 컴포넌트로서 구성될 수 있다. 하드웨어 컴포넌트는 또한 기계적으로, 전자적으로, 또는 이들의 임의의 적합한 조합으로 구현될 수 있다. 예를 들어, 하드웨어 컴포넌트는 특정 동작을 수행하도록 영구적으로 구성된 전용 회로부 또는 로직을 포함할 수 있다. 하드웨어 컴포넌트는 특수 목적 프로세서, 예컨대, 필드 프로그래머블 게이트 어레이(field-programmable gate array)(FPGA) 또는 주문형 집적 회로(application specific integrated circuit)(ASIC)일 수 있다. 하드웨어 컴포넌트는 또한 특정 동작을 수행하기 위해 소프트웨어에 의해 일시적으로 구성된 프로그래머블 로직 또는 회로부를 포함할 수 있다. 예를 들어, 하드웨어 컴포넌트는 범용 프로세서 또는 다른 프로그래머블 프로세서에 의해 실행되는 소프트웨어를 포함할 수 있다. 이러한 소프트웨어에 의해 일단 구성되면, 하드웨어 컴포넌트는 구성된 기능을 수행하도록 고유하게 맞춤화된 특정 머신(또는 머신의 특정 컴포넌트)이 되며 더 이상 범용 프로세서가 아니다.
하드웨어 컴포넌트를 기계적으로, 전용으로, 및 영구적으로 구성된 회로부로 구현하거나, 또는 일시적으로 구성된 회로부(예컨대, 소프트웨어에 의해 구성됨)로 구현하기 위한 결정은 비용 및 시간 고려 사항에 의해 수행될 수 있음이 이해될 것이다. 따라서, "하드웨어 컴포넌트"(또는 "하드웨어로 구현된 컴포넌트")라는 문구는 본원에 기술된 특정 동작을 특정 방식으로 동작시키거나 수행하도록 물리적으로 구성되거나, 영구적으로 구성되거나(예컨대, 하드와이어로), 또는 일시적으로 구성되는(예컨대, 프로그래밍되는) 엔티티가 되는 유형적인 엔티티를 포함하는 것으로 이해되어야 한다. 하드웨어 컴포넌트가 일시적으로 구성되는(예컨대, 프로그래밍되는) 실시예를 고려하면, 각각의 하드웨어 컴포넌트는 어느 한 시점에 구성되거나 인스턴스화될 필요는 없다. 예를 들어, 하드웨어 컴포넌트가 소프트웨어에 의해 특수 목적 프로세서가 되도록 구성되는 범용 프로세서를 포함하는 경우, 그 범용 프로세서는 상이한 시간에 (예컨대, 상이한 하드웨어 컴포넌트들을 포함하는) 제각기의 상이한 특수 목적 프로세서로서 구성될 수 있다. 따라서, 소프트웨어는, 예를 들어, 한 시점에 특정의 하드웨어 컴포넌트를 구성하고 다른 시점에 상이한 하드웨어 컴포넌트를 구성하기 위해, 하나의 특정의 프로세서 또는 프로세서들을 구성한다. 하드웨어 컴포넌트는 다른 하드웨어 컴포넌트에 정보를 제공할 수 있고 다른 하드웨어 컴포넌트로부터 정보를 수신할 수 있다. 따라서, 기술된 하드웨어 컴포넌트들은 통신가능하게 연결되는 것으로 간주될 수 있다. 다수의 하드웨어 컴포넌트들이 동시에 존재하는 경우, 두 개 이상의 하드웨어 컴포넌트 간의 (예컨대, 적절한 회로 및 버스를 통한) 신호 전송을 통해 통신이 달성될 수 있다. 다수의 하드웨어 컴포넌트들이 상이한 시간에 구성되거나 인스턴스화되는 실시예에서, 그러한 하드웨어 컴포넌트를 간의 통신은, 예를 들어, 다수의 하드웨어 컴포넌트가 액세스하는 메모리 구조에서 정보의 저장 및 검색을 통해 달성될 수 있다. 예를 들어, 하나의 하드웨어 컴포넌트는 동작을 수행할 수 있고 그 동작의 출력을 그 하드웨어 컴포넌트가 통신가능하게 연결된 메모리 디바이스에 저장할 수 있다. 그 후, 다른 하드웨어 컴포넌트가 나중에 메모리 디바이스에 액세스하여 저장된 출력을 검색하고 처리할 수 있다. 하드웨어 컴포넌트는 또한 입력 또는 출력 디바이스와의 통신을 개시할 수 있고, 리소스(예컨대, 정보 집합체) 상에서 동작할 수 있다.
본원에 기술된 예시적인 방법의 다양한 동작은 관련 동작을 수행하도록 (예컨대, 소프트웨어에 의해) 일시적으로 구성되거나 영구적으로 구성된 하나 이상의 프로세서에 의해 적어도 부분적으로 수행될 수 있다. 일시적으로 구성되든 영구적으로 구성되든 간에, 이러한 프로세서는 본원에 기술된 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서 구현 컴포넌트를 구성할 수 있다. 본원에 사용되는 "프로세서로 구현되는 컴포넌트"는 하나 이상의 프로세서를 사용하여 구현되는 하드웨어 컴포넌트를 지칭한다. 유사하게, 본원에 기술된 방법은 적어도 부분적으로는 프로세서로 구현될 수 있고, 하나의 특정 프로세서 또는 프로세서들은 하드웨어의 일 예가 된다. 예를 들어, 방법의 동작들 중 적어도 일부는 하나 이상의 프로세서에 의해 또는 프로세서로 구현된 컴포넌트에 의해 수행될 수 있다. 게다가, 하나 이상의 프로세서는 또한 "클라우드 컴퓨팅" 환경에서 또는 "서비스형 소프트웨어(software as a service)(SaaS)"로서 관련 동작의 실행을 지원하도록 동작할 수 있다. 예를 들어, 적어도 일부의 동작은 (프로세서를 포함하는 머신의 예로서) 컴퓨터들의 그룹에 의해 수행될 수 있으며, 이러한 동작은 네트워크(예컨대, 인터넷) 및 하나 이상의 적절한 인터페이스(예컨대, API)를 통해 액세스가능하다. 특정 동작들의 실행은 단일 머신 내에 상주할 뿐만 아니라 다수의 머신에 걸쳐 구축된 프로세서들 간에 분산될 수 있다. 일부 예시적인 실시예에서, 프로세서 또는 프로세서로 구현되는 컴포넌트는 단일 지리적 위치(예컨대, 가정 환경, 사무실 환경 또는 서버 팜 내)에 위치할 수 있다. 다른 예시적인 실시예에서, 프로세서 또는 프로세서로 구현되는 컴포넌트는 다수의 지리적 위치에 걸쳐 분산될 수 있다.
본 문맥에서 "머신 판독 가능 매체"는 명령어 및 데이터를 일시적으로 또는 영구적으로 저장할 수 있는 컴포넌트, 디바이스, 또는 다른 유형적인 매체를 지칭하며, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 버퍼 메모리, 플래시 메모리, 광학 매체, 자기 매체, 캐시 메모리, 다른 타입의 스토리지(예컨대, 소거 가능 프로그래머블 판독 전용 메모리(EEPROM)), 및/또는 이들의 임의의 적합한 조합을 포함할 수 있지만 이에 제한되지는 않는다. "머신 판독 가능 매체"라는 용어는 명령어를 저장할 수 있는 단일 매체 또는 다수의 매체(예컨대, 중앙 집중식 또는 분산형 데이터베이스, 또는 연관된 캐시 및 서버)를 포함하는 것으로 간주되어야 한다. "머신 판독 가능 매체"라는 용어는 또한 머신에 의한 실행을 위한 명령어(예컨대, 코드))를 저장할 수 있는 임의의 매체, 또는 다수의 매체들의 조합을 포함하는 것으로 간주될 것이며, 그에 따라, 명령어는 머신의 하나 이상의 프로세서에 의해 실행될 때, 머신으로 하여금 본원에 기술된 임의의 하나 이상의 방법을 수행할 수 있게 한다. 따라서, "머신 판독 가능 매체"는 단일 저장 장치 또는 디바이스뿐만 아니라, 다수의 저장 장치 또는 디바이스를 포함하는 "클라우드 기반" 저장 시스템 또는 저장 네트워크를 지칭한다. "머신 판독 가능 매체"라는 용어는 신호 자체는 제외한다.
본 문맥에서 "프로세서"는, 제어 신호(예컨대, "커맨드", "op 코드", "머신 코드" 등)에 따라 데이터 값을 조작하며 그리고 머신을 작동하도록 적용되는 대응하는 출력 신호를 생성하는 임의의 회로 또는 가상 회로(실제 프로세서에서 실행되는 로직에 의해 에뮬레이션되는 물리적 회로)를 지칭한다. 프로세서는, 예를 들어, 중앙 처리 유닛(CPU), 축소 명령어 세트 컴퓨팅(RISC) 프로세서, 복합 명령어 세트 컴퓨팅(CISC) 프로세서, 그래픽 처리 유닛(GPU), 디지털 신호 프로세서(DSP), ASIC, 무선 주파수 집적 회로(radio-frequency integrated circuit)(RFIC), 또는 이들의 임의의 조합일 수 있다. 프로세서는 추가로 명령어들을 동시적으로 실행할 수 있는 2 개 이상의 독립 프로세서("코어"라고 때때로 지칭됨)를 갖는 멀티-코어 프로세서(multi-core processor)일 수 있다.
본 특허 문서의 개시 내용의 일부는 저작권 보호를 받는 자료를 포함한다. 저작권 소유자는 특허 및 상표 청의 특허 파일 또는 기록에 나타나는 바와 같은 특허 문서 또는 특허 공개물 중 어느 하나에 의한 팩스 복제에 대해 이의를 제기하지 않지만, 무엇이든간에 모든 저작권은 보호되어야 한다. 이하의 고지는 본 문서, 즉 “Copyright 2018, eBay Inc., All Rights Reserved”의 일부를 형성하는 이하의 설명 및 도면에 기술되는 소프트웨어 및 데이터에 적용된다.
"로트" 목록은, 예를 들어, 카메라 및 카메라 가방과 같은 "결합" 또는 "번들" 목록과는 대조적으로, 배터리들과 같은 동일한 항목들의 그룹과 관련된다. 한 가지 일반적인 접근 방식은 머신 학습 분류기를 사용하여 다양한 특징에 기반하여 목록을 "로트" 또는 "비 로트"로 분류하는 것일 수 있다. 여기서, 일 측면에서, 문제는 목록 타이틀에서 수량 단어의 분류로 단순화되고 축소된다. 즉, 수량 단어를 갖지 않는 타이틀은 "비 로트"로 분류된다. 하나 이상의 수량 단어를 포함하는 타이틀을 갖는 목록은 일단은 로트와 관련될 수 있고, 따라서 그에 기반하여 분류될 수 있다. 이는 심각한 오류를 발생시킬 수 있는데, 그 이유는 번들 목록조차 하나 초과의 특정 항목을 포함할 수 있기 때문이다. 본 개시 내용에서 타이틀은 본원에 기술된 방법에 따라 처리되고, 수량 단어들 중 적어도 하나가 실제로 로트와 관련되는 것으로 예측되거나 평가되는 경우 "로트"로 분류될 것이고; 그렇지 않으면 목록은 "비 로트"로 분류될 것이다.
일부 예에서, 본 개시 내용은 목록 타이틀에 나타나는 수량 단어의 일단의 존재에 기반한 자동 로트 분류를 위한 시스템, 방법, 및 컴퓨터 매체에 관한 것이다. 목록에 대한 설명이 게시 시스템(publication system)에 수신된다. 다양한 시스템 컴포넌트는 목록에서 문자열을 식별하고, 문자열에서 수량 단어 또는 숫자를 식별하고, 식별된 수량 단어를 숫자 형태로 변환한다. 문자열은 정규화되며, 소문자 또는 숫자만을 포함한다. 또한, 정규화된 문자열(normalized string)은 토큰을 생성하도록 토큰화된다. 정규화된 문자열의 토큰화는 구분자들의 시퀀스(a sequence of delimiters)를 사용하여 정규화된 문자열을 일련의 서브 문자열(a series of substrings)로 분할하는 것을 포함한다. 서브 문자열의 추가 분할이 수행된다. 또한, 본 개시 내용은 적어도 하나의 토큰에 로트 수량을 나타내는 확률을 배정하는 것과 배정된 확률에 기반하여 목록을 로트 목록으로 분류하는 것을 기술한다. 이 분류에 기반하여, 시스템의 컴포넌트는 목록을 로트 목록으로 표시하게 한다.
도 1을 참조하면, 하이-레벨 SaaS 네트워크 아키텍처(100)의 예시적인 실시예가 도시된다. 네트워크형 시스템(networked system)(116)은 네트워크(110)(예컨대, 인터넷 또는 WAN)를 통해 클라이언트 디바이스(108)에 서버 측 기능성을 제공한다. 웹 클라이언트(102) 및 애플리케이션(104)의 예시적인 형태인 프로그램적 클라이언트(programmatic client)는 클라이언트 디바이스(108) 상에서 호스팅되고 실행된다. 네트워크형 시스템(116)은 애플리케이션 서버(122)를 포함하고, 애플리케이션 서버(122)는 다시 게시 시스템(106)을 호스팅하며, 게시 시스템(106)은 네트워크 시스템(116)에 액세스하는 애플리케이션(104)에 다수의 기능 및 서비스를 제공한다. 애플리케이션(104)은 또한 본원에 기술된 다수의 인터페이스를 제공하며, 이들 인터페이스는 클라이언트 디바이스(108)의 사용자에게 추적 및 분석 동작의 출력을 제공한다.
클라이언트 디바이스(108)는 사용자가 네트워크형 시스템(116)에 액세스하고 상호 작용할 수 있게 한다. 예를 들어, 사용자는 클라이언트 디바이스(108)에 입력(예컨대, 터치스크린 입력 또는 영숫자 입력)을 제공하고, 이 입력은 네트워크(110)를 통해 네트워크형 시스템(116)에 전달된다. 이 예에서, 네트워크형 시스템(116)은 사용자로부터 입력을 수신하는 것에 응답하여, 네트워크(110)를 통해 클라이언트 디바이스(108)에 정보를 되전달하여 사용자에게 제공한다.
애플리케이션 프로그램 인터페이스(API) 서버(118) 및 웹 서버(120)는 각각 애플리케이션 서버(122)에 연결되어 프로그램적 인터페이스 및 웹 인터페이스를 각각 제공한다. 애플리케이션 서버(122)는 다시 데이터베이스 서버(124)에 연결되도록 도시되어 있으며, 이 데이터베이스 서버(124)는 정보 저장 레포지토리(예컨대, 데이터베이스(126))로의 액세스를 가능하게 한다. 예시적인 실시예에서, 데이터베이스(126)는 게시 시스템(106)에 의해 액세스되고 생성된 정보를 저장하는 저장 디바이스를 포함한다. 데이터베이스(126)는 또한 클라이언트 디바이스(108) 상에서 실행되는 애플리케이션(104)에 의해, 또는 제3자 서버(들)(112) 상에서 실행되는 제3자 애플리케이션(114)에 의해 액세스되거나 사용되는 클라우드 기반 또는 다른 데이터를 저장할 수 있다. 데이터베이스(126)는, 예를 들어, 여러 개의 원격 또는 온사이트 데이터베이스(remote or onsite databases)로 구성될 수 있다. 다른 구성(configurations)도 가능하다.
제3자 서버(들)(112) 상에서 실행되는 제3자 애플리케이션(114)은 API 서버(118)에 의해 제공되는 프로그램적 인터페이스를 통해 네트워크형 시스템(116)에 프로그램적으로 액세스하는 것으로 도시된다. 예를 들어, 네트워크형 시스템(116)으로부터 검색된 정보를 사용하는 제3자 애플리케이션(114)은 제3자가 호스팅하는 웹사이트 상에 하나 이상의 특징 또는 기능을 지원할 수 있다.
이제 구체적으로 클라이언트 디바이스(108)에 의해 호스팅되는 애플리케이션(104)으로 돌아가면, 웹 클라이언트(102)는 웹 서버(120)에 의해 지원되는 웹 인터페이스를 통해 다양한 시스템(예컨대, 게시 시스템(106))에 액세스할 수 있다. 유사하게, 애플리케이션(104)(예컨대, “app”)은 API 서버(118)에 의해 제공되는 프로그램적 인터페이스를 통해 네트워크형 시스템(106)에 의해 제공되는 다양한 서비스 및 기능에 액세스한다. 애플리케이션(104)은, 예를 들어, 사용자가 오프라인 방식으로 네트워크형 시스템(116) 상의 데이터에 액세스하고 이 시스템(116) 상에 데이터를 입력할 수 있도록 하고 그리고 애플리케이션(104)과 네트워크형 시스템(116) 사이에서 뱃치 모드 통신(batch-mode communications)을 수행하도록 하는 IOS™ 또는 ANDROID™ OS 애플리케이션과 같은 클라이언트 디바이스(108) 상에서 실행되는 "app"일 수 있다.
도 1에 도시된 SaaS 네트워크 아키텍처(100)는 클라이언트-서버 아키텍처를 이용하지만, 본 개시 내용은 그러한 아키텍처에 제한되지 않으며, 예를 들어, 분산형 또는 피어-투-피어 아키텍처 시스템에서 애플리케이션을 동일하게 쉽게 찾을 수 있다. 게시 시스템(106)은 또한 네트워킹 기능을 반드시 가질 필요는 없는 독립형 소프트웨어 프로그램으로 구현될 수 있다.
도 2는 일부 예시적인 실시예에 따른 게시 시스템(106)의 아키텍처 세부 사항을 나타내는 블럭도이다. 이것은 보기에는 비 추상적 시스템이고, 전원 버튼이 204로 도시되어 있으며, 게시 시스템(106)은 컴퓨터 프로세서 및 컴포넌트를 포함하며, 아래에서 더 기술된다. 예를 들어, 하드와이어 접속 핀은 205로 보여질 수 있다. 게시 시스템(106)은 본원에 기술된 방법을 구현하기 위해 특별히 구성되고 기술적으로 개선된다.
보다 구체적으로, 게시 시스템(106)은 인터페이스 컴포넌트(201)를 포함하는 것으로 도시되며, 이 인터페이스 컴포넌트(201)에 의해 게시 시스템(106)은 SaaS 네트워크 아키텍처(100) 내의 다른 시스템과 (예컨대, 네트워크(203)를 통해) 통신한다. 인터페이스 컴포넌트(201)는 첨부된 도면을 참조하여 아래에서 추가로 기술되는 방법에 따라, 예시된 컴포넌트들(208-216)과 함께 자동 로트 분류를 수행하도록 동작하는 로트 분류 컴포넌트(206)에 집합적으로 연결된다. 컴포넌트들(208-216)은 전처리 컴포넌트(208), 정규화 컴포넌트(210), 토큰화 컴포넌트(212), 특징 벡터 컴포넌트(214), 및 트레이닝 컴포넌트(216)를 포함한다. 이러한 컴포넌트들의 동작은 아래에 자세히 기술되어 있다.
도 3은 본원에 기술된 다양한 하드웨어 아키텍처와 함께 사용될 수 있는 일 예의 소프트웨어 아키텍처(306)를 도시한 블럭도이다. 도 3은 소프트웨어 아키텍처의 비 제한적인 예이며, 본원에 기술된 기능을 가능하게 하도록 많은 다른 아키텍처가 구현될 수 있다는 것이 이해될 것이다.
소프트웨어 아키텍처(306)는 무엇보다도, 프로세서들(404), 메모리/스토리지(406), 및/또는 I/O 컴포넌트(418)를 포함하는 도 4의 머신(400)과 같은 하드웨어 상에서 실행될 수 있다. 대표적인 하드웨어 계층(352)이 예시되며, 예를 들어, 도 4의 머신(400)을 나타낼 수 있다. 대표적인 하드웨어 계층(352)은 연관된 실행가능 명령어(304)를 갖는 프로세싱 유닛(354)을 포함한다. 실행가능 명령어(304)는 본원에 기술된 방법, 컴포넌트 등의 구현을 포함하여, 소프트웨어 아키텍처(306)의 실행가능 명령어를 나타낸다. 하드웨어 계층(352)은 또한 실행가능 명령어(304)를 갖는 메모리/스토리지(356)로서 메모리 및/또는 저장 모듈을 포함한다. 하드웨어 계층(352)은 또한 다른 하드웨어(358)를 포함할 수 있다.
도 3의 예시적인 아키텍처에서, 소프트웨어 아키텍처(306)는 각 계층이 특정 기능성을 제공하는 계층들의 스택으로서 개념화될 수 있다. 예를 들어, 소프트웨어 아키텍처(306)는 운영 체제(302), 라이브러리(320), 프레임워크/미들웨어(318), 애플리케이션(316), 및 프리젠테이션 계층(314)과 같은 계층들을 포함할 수 있다. 동작상, 애플리케이션(316) 및/또는 계층 내의 다른 컴포넌트는 소프트웨어 스택을 통해 애플리케이션 프로그래밍 인터페이스(API) API 호출(308)을 호출하고, API 호출(308)에 응답하여 메시지(312)를 수신할 수 있다. 예시된 계층들은 특성상 대표적인 것이며, 모든 소프트웨어 아키텍처가 모든 계층을 갖는 것은 아니다. 예를 들어, 일부 모바일 또는 특수 목적 운영 체제는 프레임워크/미들웨어(318)을 제공하지 못할 수도 있지만, 다른 것은 그러한 계층을 제공할 수도 있다. 다른 소프트웨어 아키텍처는 추가적인 또는 상이한 계층들을 포함할 수 있다.
운영 체제(302)는 하드웨어 리소스를 관리하고 공통 서비스를 제공할 수 있다. 운영 체제(302)는, 예를 들어, 커널(322), 서비스(324), 및 드라이버(326)를 포함할 수 있다. 커널(322)은 하드웨어와 다른 소프트웨어 계층들 사이의 추상화 계층(abstraction layer)으로서 기능할 수 있다. 예를 들어, 커널(322)은 메모리 관리, 프로세서 관리(예컨대, 스케줄링), 컴포넌트 관리, 네트워킹, 보안 설정 등을 담당할 수 있다. 서비스(324)는 다른 소프트웨어 계층을 위한 다른 공통 서비스를 제공할 수 있다. 드라이버(326)는 기본 하드웨어의 제어 또는 기본 하드웨어와의 인터페이싱을 담당한다. 예를 들어, 드라이버(326)는 하드웨어 구성에 따라, 디스플레이 드라이버, 카메라 드라이버, 블루투스® 드라이버, 플래시 메모리 드라이버, 직렬 통신 드라이버(예컨대, USB 드라이버), Wi-Fi® 드라이버, 오디오 드라이버, 전원 관리 드라이버 등을 포함한다.
라이브러리(320)는 애플리케이션(316) 및/또는 다른 컴포넌트 및/또는 계층에 의해 이용되는 공통 기반 구조를 제공한다. 라이브러리(320)는 다른 소프트웨어 컴포넌트로 하여금 기본 운영 체제(302) 기능성(예컨대, 커널(322), 서비스(324), 및/또는 드라이버(326))과 직접 인터페이싱하는 것보다 쉬운 방식으로 태스크를 수행할 수 있게 하는 기능성을 제공한다. 라이브러리(320)는 메모리 할당 기능, 문자열 조작 기능, 산술 기능 등과 같은 기능을 제공할 수 있는 시스템 라이브러리(344)(예컨대, C 표준 라이브러리)를 포함할 수 있다. 또한, 라이브러리(320)는 미디어 라이브러리(예컨대, MPEG4, H.264, MP3, AAC, AMR, JPG, PNG와 같은 다양한 미디어 포맷의 프리젠테이션 및 조작을 지원하는 라이브러리), 그래픽 라이브러리(예컨대, 디스플레이 상에 그래픽 컨텐츠의 2D 및 3D를 렌더링하는 데 사용될 수 있는 OpenGL 프레임워크), 데이터베이스 라이브러리(예컨대, 다양한 관계형 데이터베이스 기능을 제공할 수 있는 SQLite), 웹 라이브러리(예컨대, 웹 브라우징 기능성을 제공할 수 있는 WebKit) 등과 같은 API 라이브러리(346)를 포함할 수 있다. 라이브러리(320)는 또한 애플리케이션(316) 및 다른 소프트웨어 컴포넌트 또는 모듈에 많은 다른 API를 제공하기 위한 광범위한 다른 라이브러리(348)를 포함할 수 있다.
프레임워크/미들웨어(318)(때로는 미들웨어라고 지칭되기도 함)는 애플리케이션(316) 및/또는 다른 소프트웨어 컴포넌트/모듈에 의해 사용될 수 있는 보다 하이-레벨의 공통 기반 구조를 제공한다. 예를 들어, 프레임워크/미들웨어(318)는 다양한 그래픽 사용자 인터페이스(GUI) 기능(342), 하이-레벨 리소스 관리, 하이-레벨 위치 확인 서비스 등을 제공할 수 있다. 프레임워크/미들웨어(318)는 애플리케이션(316) 및/또는 다른 소프트웨어 컴포넌트/모듈에 의해 이용될 수 있는 광범위한 스펙트럼의 다른 API를 제공할 수 있으며, 이중 일부는 특정 운영 체제(302) 또는 플랫폼에 특정될 수 있다.
애플리케이션(316)은 빌트인(built-in) 애플리케이션(338) 및/또는 제3자 애플리케이션(340)을 포함한다. 대표적인 빌트인 애플리케이션(338)의 예는 컨택트 애플리케이션, 브라우저 애플리케이션, 북 리더 애플리케이션, 위치 확인 애플리케이션, 미디어 애플리케이션, 메시징 애플리케이션, 및/또는 게임 애플리케이션을 포함할 수 있지만, 이에 제한되지는 않는다. 제3자 애플리케이션(340)은 특정 플랫폼의 벤더가 아닌 엔티티에 의해 Android™ 또는 iOS™ 소프트웨어 개발 킷(software development kit)(SDK)을 사용하여 개발된 임의의 애플리케이션을 포함할 수 있고, 모바일 운영 체제, 예컨대, IOS™, ANDROID™, WINDOWS® Phone, 또는 다른 모바일 운영 체제 상에서 실행되는 모바일 소프트웨어일 수 있다. 제3자 애플리케이션(340)은 본원에 기술된 기능성을 가능하게 하기 위해 모바일 운영 체제(예컨대, 운영 체제(302))에 의해 제공되는 API 호출(308)을 호출할 수 있다.
애플리케이션(316)은 빌트인 운영 체제 기능(예컨대, 커널(322), 서비스(324), 및/또는 드라이버(326)), 라이브러리(320), 및 프레임워크/미들웨어(318)를 사용하여, 시스템의 사용자와 상호 작용하는 사용자 인터페이스를 생성할 수 있다. 대안적으로, 또는 부가적으로, 일부 시스템에서, 사용자와의 상호 작용은 프리젠테이션 계층, 예컨대, 프리젠테이션 계층(314)을 통해 발생할 수 있다. 이러한 시스템에서, 애플리케이션/컴포넌트 "로직"은 사용자와 상호 작용하는 애플리케이션/모듈의 양태와는 분리될 수 있다.
일부 소프트웨어 아키텍처는 가상 머신을 사용한다. 도 3의 예에서, 이것은 가상 머신(310)에 의해 예시된다. 가상 머신(310)은 애플리케이션/컴포넌트가 마치 하드웨어 머신(예컨대, 도 4의 머신(400)) 상에서 실행되는 것처럼 실행될 수 있는 소프트웨어 환경을 생성한다. 가상 머신(310)은 호스트 운영 체제(도 3의 운영 체제(302))에 의해 호스팅되며, 통상적으로는 항상은 아니지만, 가상 머신(310)의 동작 및 호스트 운영 체제(즉, 운영 체제(302))와의 인터페이스를 관리하는 가상 머신 모니터(360)를 갖는다. 소프트웨어 아키텍처는 운영 체제(OS)(336), 라이브러리(334), 프레임워크/미들웨어(332), 애플리케이션(330), 및/또는 프리젠테이션 계층(328)과 같은 가상 머신(310) 내에서 실행된다. 가상 머신(310) 내에서 실행되는 이러한 소프트웨어 아키텍처의 계층은 이전에 기술된 대응하는 계층과 동일할 수 있거나 상이할 수 있다.
도 4는 머신 판독 가능 매체(예컨대, 머신 판독 가능 저장 매체)로부터 명령어(304)를 판독할 수 있고, 본원에서 논의된 임의의 하나 이상의 방법을 수행할 수 있는 일부 예시적인 실시예에 따른 머신(400)의 컴포넌트를 나타내는 블럭도이다. 구체적으로, 도 4는 예시적인 컴퓨터 시스템의 형태인 머신(400)을 개략적으로 도시한 도면이며, 이 머신 내에서, 본원에서 논의되는 임의의 하나 이상의 방법을 머신(400)이 수행할 수 있게 하기 위한 명령어(410)(예컨대, 소프트웨어, 프로그램, 애플리케이션(316), 애플릿, app, 또는 다른 실행 코드)가 실행될 수 있다. 따라서, 명령어(410)는 본원에 기술된 모듈 또는 컴포넌트를 구현하는 데 사용될 수 있다. 명령어(410)는 일반적인 비 프로그래밍된 머신을 기술되고 예시된 기능을 기술된 방식으로 수행하도록 프로그래밍된 특정 머신(400)으로 변환한다. 대안적인 실시예에서, 머신(400)은 독립형 디바이스로서 동작하거나, 또는 다른 머신에 연결(예컨대, 네트워크화)될 수 있다. 네트워크형 구축에서, 머신(400)은 서버-클라이언트 네트워크 환경에서 서버 머신 또는 클라이언트 머신으로서 동작할 수도 있거나, 또는 피어-투-피어(또는 분산형) 네트워크 환경에서 피어 머신(peer machine)으로서 동작할 수 있다. 머신(400)은 서버 컴퓨터, 클라이언트 컴퓨터, 퍼스널 컴퓨터(PC), 태블릿 컴퓨터, 랩탑 컴퓨터, 넷북, 셋탑 박스(STB), PDA, 오락 미디어 시스템, 셀룰러 텔레폰, 스마트폰, 모바일 디바이스, 웨어러블 디바이스(예컨대, 스마트 워치), 스마트 홈 디바이스(예컨대, 스마트 어플라이언스), 다른 스마트 디바이스, 웹 어플라이언스, 네트워크 라우터, 네트워크 스위치, 네트워크 브릿지, 또는 머신(400)에 의해 취해질 동작을 특정하는 명령어(410)를 순차적으로 또는 다른 방식으로 실행할 수 있는 임의의 머신을 포함할 수 있지만, 이에 제한되지는 않는다. 또한, 단일 머신(400)만이 도시되어 있지만, "머신"이라는 용어는 본원에서 논의된 임의의 하나 이상의 방법을 수행하는 명령어(410)를 개별적으로 또는 공동으로 실행하는 머신들의 집합체를 포함하는 것으로 또한 간주될 것이다.
머신(400)은 프로세서들(404), 메모리/스토리지(406), 및 I/O 컴포넌트(418)를 포함할 수 있으며, 이들은, 예컨대, 버스(402)를 통해 서로 통신하도록 구성될 수 있다. 메모리/스토리지(406)는 메모리(414), 예컨대, 메인 메모리 또는 다른 메모리 스토리지, 및 저장 유닛(416)을 포함할 수 있으며, 이들 모두는, 예컨대, 버스(402)를 통해 프로세서들(404)에 액세스가능하다. 저장 유닛(416) 및 메모리(414)는 본원에 기술된 임의의 하나 이상의 방법 또는 기능을 구현하는 명령어(410)를 저장한다. 명령어(410)는 또한 머신(400)에 의한 실행 동안, 메모리(414) 내에, 저장 유닛(416) 내에, 프로세서들(404) 중 적어도 하나 내에(예컨대, 프로세서의 캐시 메모리 내에), 또는 이들의 임의의 적합한 조합 내에, 완전히 또는 부분적으로 상주할 수 있다. 따라서, 메모리(414), 저장 유닛(416), 및 프로세서들(404)의 메모리는 머신 판독 가능 매체의 예이다.
I/O 컴포넌트(418)는, 입력을 수신하고, 출력을 제공하고, 출력을 생성하고, 정보를 송신하고, 정보를 교환하고, 측정치를 캡처하는 등을 위한 다양한 컴포넌트를 포함할 수 있다. 특정 머신(400)에 포함되는 특정의 I/O 컴포넌트(418)는 머신의 타입에 의존할 것이다. 예를 들어, 모바일폰과 같은 휴대용 머신은 아마도 터치 입력 디바이스 또는 다른 그러한 입력 메커니즘을 포함할 것이지만, 헤드리스 서버 머신(headless server machine)은 아마도 그러한 터치 입력 디바이스를 포함하지는 않을 것이다. I/O 컴포넌트(418)는 도 4에 도시되지 않은 많은 다른 컴포넌트를 포함할 수 있다는 것이 이해될 것이다. I/O 컴포넌트(418)는 단지 다음의 설명을 단순화하기 위해 기능성에 따라 그룹화되며, 이 그룹화는 결코 제한적이지 않다. 다양한 예시적인 실시예에서, I/O 컴포넌트(418)는 출력 컴포넌트(426) 및 입력 컴포넌트(428)를 포함할 수 있다. 출력 컴포넌트(426)는 시각(visual) 컴포넌트(예컨대, 플라즈마 디스플레이 패널(PDP), 발광 다이오드(LED) 디스플레이, 액정 디스플레이(LCD), 프로젝터, 또는 음극선관(CRT)과 같은 디스플레이), 음향(acoustic) 컴포넌트(예컨대, 스피커), 햅틱(haptic) 컴포넌트(예컨대, 진동 모터, 저항성 메커니즘), 다른 신호 생성기 등을 포함할 수 있다. 입력 컴포넌트(428)는 영숫자 입력 컴포넌트(예컨대, 키보드, 영숫자 입력을 수신하도록 구성된 터치 스크린, 포토-광학 키보드, 또는 다른 영숫자 입력 컴포넌트), 포인트 기반 입력 컴포넌트(예컨대, 마우스, 터치패드, 트랙볼, 조이스틱, 모션 센서, 또는 다른 포인팅 도구), 촉각 입력 컴포넌트(예컨대, 물리적 버튼, 터치의 위치 및/또는 힘 또는 터치 제스처를 제공하는 터치 스크린, 또는 다른 촉각 입력 컴포넌트), 오디오 입력 컴포넌트(예컨대, 마이크로폰) 등을 포함할 수 있다.
추가의 예시적인 실시예에서, I/O 컴포넌트(418)는 다양한 어레이의 다른 컴포넌트들 중에서도, 바이오메트릭 컴포넌트(430), 모션 컴포넌트(434), 환경 컴포넌트(436), 또는 포지션 컴포넌트(438)를 포함할 수 있다. 예를 들어, 바이오메트릭 컴포넌트(430)는 표현(예컨대, 손의 표현, 안면 표현, 음성 표현, 몸짓(body gestures), 또는 눈 추적(eye tracking))을 검출하는 컴포넌트, 바이오 신호(예컨대, 혈압, 심박수, 체온, 땀, 또는 뇌파)를 측정하는 컴포넌트, 사람을 식별(예컨대, 음성 식별, 망막 식별, 안면 식별, 지문 식별, 또는 뇌파계(electroencephalogram based) 식별)하는 컴포넌트 등을 포함할 수 있다. 모션 컴포넌트(434)는 가속도 센서 컴포넌트(예컨대, 가속도계), 중력 센서 컴포넌트, 회전 센서 컴포넌트(예컨대, 자이로스코프) 등을 포함할 수 있다. 환경 컴포넌트(436)는, 예를 들어, 조명 센서 컴포넌트(예컨대, 광도계), 온도 센서 컴포넌트(예컨대, 주변 온도를 검출하는 하나 이상의 온도계), 습도 센서 컴포넌트, 압력 센서 컴포넌트(예컨대, 기압계), 음향 센서 컴포넌트(예컨대, 배경 잡음을 검출하는 하나 이상의 마이크로폰), 근접 센서 컴포넌트(예컨대, 주변의 물체를 검출하는 적외선 센서), 가스 센서(예컨대, 안전을 위해 위험 가스의 농도를 검출하거나 또는 대기 내의 오염 물질을 측정하는 가스 검출 센서), 또는 주변 물리적 환경에 대응하는 표시, 측정치, 또는 신호를 제공할 수 있는 다른 컴포넌트를 포함할 수 있다. 포지션 컴포넌트(438)는 로케이션 센서 컴포넌트(예컨대, 글로벌 포지션 시스템(GPS) 수신기 컴포넌트), 고도 센서 컴포넌트(예컨대, 고도가 유도될 수 있는 기압을 검출하는 고도계 또는 기압계), 방향 센서 컴포넌트(예컨대, 자력계) 등을 포함할 수 있다.
통신은 다양한 기술을 사용하여 구현될 수 있다. I/O 컴포넌트(418)는 머신(400)을 제각기의 연결(424) 및 연결(422)을 통해 네트워크(432) 또는 디바이스(420)에 연결하도록 동작가능한 통신 컴포넌트(440)를 포함할 수 있다. 예를 들어, 통신 컴포넌트(440)는 네트워크(432)와 인터페이싱하기 위한 네트워크 인터페이스 컴포넌트 또는 다른 적합한 디바이스를 포함할 수 있다. 다른 예에서, 통신 컴포넌트(440)는 유선 통신 컴포넌트, 무선 통신 컴포넌트, 셀룰러 통신 컴포넌트, 근접장 통신(NFC) 컴포넌트, 블루투스® 컴포넌트(예컨대, 블루투스® 저 에너지), Wi-Fi® 컴포넌트, 및 다른 방식을 통해 통신을 제공하는 다른 통신 컴포넌트를 포함할 수 있다. 디바이스(420)는 다른 머신일 수 있거나, 또는 다양한 주변 디바이스 중의 임의의 디바이스(예컨대, USB를 통해 연결된 주변 디바이스)일 수 있다.
또한, 통신 컴포넌트(440)는 식별자를 검출할 수 있거나 또는 식별자를 검출하도록 동작가능한 컴포넌트를 포함할 수 있다. 예를 들어, 통신 컴포넌트(440)는 무선 주파수 식별(RFID) 태그 리더 컴포넌트, NFC 스마트 태그 검출 컴포넌트, 광학 리더 컴포넌트(예컨대, 통합 제품 코드(Universal Product Code)(UPC) 바코드와 같은 1 차원 바코드, 퀵 응답(Quick Response)(QR) 코드, 아즈텍 코드(Aztec code), 데이터 매트릭스(Data Matrix), 데이터글리프(Dataglyph), 맥시코드(MaxiCode), PDF417, 울트라 코드(Ultra Code), UCC RSS-2D 바코드, 및 다른 광학 코드와 같은 다차원 바코드를 검출하는 광학 센서), 또는 음향 검출 컴포넌트(예컨대, 태깅된 오디오 신호를 식별하는 마이크로폰)를 포함할 수 있다. 또한, 통신 컴포넌트(440)를 통해 다양한 정보, 예컨대, 인터넷 프로토콜(IP) 지오로케이션을 통한 위치 정보, Wi-Fi®신호 삼각측량을 통한 위치 정보, 특정 위치를 표시할 수 있는 NFC 비컨 신호를 검출하는 것을 통한 위치 정보 등이 도출될 수 있다.
다시 도 2를 참조하면, 일부 예에서 게시 시스템(106)은 특히 컴포넌트들(208-216)을 포함한다는 것이 상기될 것이다. 이제 각각의 동작이 기술된다. 전처리 컴포넌트(208)는 주어진 목록에서 원시 항목 타이틀(raw item title)을 입력(207)으로서 수신한다. 입력 항목 타이틀은 먼저 정규화된 다음 토큰화된다. 목록은 로트 목록일 수 있거나, 또는 그렇지 않을 수 있다. 목표는 위에서 논의된 바와 같은 수동 또는 기존 머신 학습에 내재된 타입의 분류 오류없이 정확하게 목록을 분류하거나 적어도 그것을 최소화하는 것이다. 전처리 컴포넌트(208) 및 정규화 컴포넌트(210)는 원시 항목 타이틀을 정규화하기 위해 단독으로 또는 서로 함께 동작한다. 타이틀은 소문자로 변환된 다음 악센트 표시가 있는 임의의 문자는 악센트가 없는 형태로 대체된다. 수량 (또는 숫자) 단어인 토큰은 숫자 형태로 변환된다. 정규화 컴포넌트(210)로부터의 출력(209)은 정규화된 타이틀 문자열을 포함한다. 예시적인 정규화 동작은, 예시적인 입력으로서 "Vier Stuck Apple iPhone 5s", 및 예시적인 출력으로서 "4 stuck apple iphone 5s"를 포함할 수 있다.
정규화된 출력(209)은 토큰화 컴포넌트(212)에 입력으로서 수신되며, 토큰화 컴포넌트(212)는 입력 정규화된 타이틀 문자열을 토큰화된 문자열("토큰")의 목록으로 변환하도록 동작한다. 도 5를 참조하면, 예시적인 토큰화 방법(500)은 다음 동작들 중 하나 이상을 포함할 수 있다: 동작(502)에서, 임의의 공백 문자 시퀀스를 구분자(즉, 공백 또는 탭 문자)로서 사용하여 정규화된 타이틀 문자열을 서브 문자열의 목록으로 분할하는 단계; 동작(504)에서, 각각의 결과적인 서브 문자열마다, 임의의 다른 인접 문자가 다른 숫자가 아닌 한 임의의 숫자 문자를 임의의 다른 인접 문자로부터 분리함으로써 그 서브 문자열에 대해 추가 분할을 수행하는 단계; 동작(506)에서, 분할된 문자열의 서브 문자열의 내부 순서를 유지하는 단계; 및 동작(508)에서, 출력(211)에서 토큰화된 토큰의 평탄화된 목록을 반환하는 단계.
토큰화 방법의 예는 토큰화 컴포넌트(212) 내로의 예시적인 입력(209)으로서 "4 stuck apple iphone 5s" 및 토큰화 컴포넌트(212)로부터의 예시적인 출력으로서 [“4”, “stuck”, “apple”, “iphone”, “5s”], or [“4”, “stuck”, “apple”, “iphone”, [“5”, “s”]], or [“4”, “stuck”, “apple”, “iphone”, “5”, “s”]를 포함할 수 있다.
이제 특징 벡터 컴포넌트(214)를 참조하면, 이 컴포넌트는 다른 컴포넌트들(206-212 및 216)과 함께 작동하거나 그로부터 독립적으로 작동하여 하나 이상의 특징 벡터를 출력(213)으로 계산하는 것을 지원할 수 있다. 로트 목록의 라벨링된 예로 모델을 트레이닝하거나 트레이닝된 모델로 새로운 로트 목록 예를 분류하기 위해 해당 예에 대해 수치 벡터(numerical vector)가 계산된다. 이 벡터는 모델 자체에 대한 실제 입력 역할을 하며, 각 요소는 특정 방법을 사용하여 계산되는 고유한 특징을 나타낸다. 일부 예에서, 벡터는 로트 단어와 비 로트 단어를 구별할 수 있는 각 수량 단어를 나타내는 특징을 포함한다. 예를 들어, "토큰 애프터(token after)"는 수량 단어 뒤의 단어이며, 두 클래스를 구별하는 역할을 할 수 있다(예컨대, "패키지"인 경우 수량 단어는 로트일 가능성이 높을 수 있다).
일부 예에서, 특징 벡터(트레이닝용이든 추론용이든)는 각 후보 수량 단어마다 계산된다. 이것은 모델이 수량 단어들에 대해서만 계산되는 것이 아니라는 것을 의미하는데, 그 이유는 단어들이 사전에 수량이라는 것을 알 수 없기 때문이다. 즉, 모든 숫자 토큰이 수량을 나타내는 것은 아니기 때문이다. 각 숫자 토큰은 목록의 소위 "수량 단어"(로트 사이즈)가 될 가능성이 있다. 따라서, 각 특징(예컨대, "토큰 애프터") 및 그 값(예컨대, "패키지")은 숫자 토큰을 기술하고 맥락화하는 것을 목표로 하며(예컨대, "패키지"는 "10" 이후의 토큰이며), 따라서 해당 후보가 수량 단어일 가능성을 추정하기 위한 모델에 대한 정보를 제공하게 된다.
예시적인 특징 방법은 도 6에 도시된 표에 열거되고 있다. 이 표는 각 특징 방법마다의 입력 및 출력을 포함하며, 일부 특징 요소에 대한 설명적인 코멘트를 포함한다.
트레이닝 컴포넌트(216)는 특징 벡터 컴포넌트 (214)에 의해 계산된 특징 벡터 출력(213)을 입력으로서 수신한다. 일부 예에서, 메타 카테고리 별 모델은 해당 카테고리 하에서 나열된 항목들에 대해 목록 타이틀의 트레이닝 세트를 사용하여 트레이닝된다. 이러한 항목은 이력 또는 라이브 항목(historical or live items)일 수 있다.
트레이닝 항목들은 1보다 큰 로트_사이즈 필드 내의 값을 갖는 항목을 필터링하여 수집된다. 일부 예에서, 이것은 나열시 항목의 판매자에 의해 선택적으로 표시되는 필드이다. 판매자가 로트_사이즈 값을 표시하지 않으면, 그것은 디폴트 값 1을 갖게 되며, 따라서 그러한 항목들은 무시되고 트레이닝 세트에서 배제된다. 모델을 트레이닝시키기 위해, 목록 타이틀로부터 원시 타이틀 문자열 및 로트_사이즈 값만이 추출되어 트레이닝 세트의 엔트리를 구성한다.
지도 머신 학습 모델을 트레이닝시키기 전에 트레이닝 세트를 포함하는 트레이닝 예들에 대해 라벨들이 배정된다. 로트 분류 문제를 다루는 하나의 일반적인 예에서, 포지티브 라벨은 항목(즉, 목록 타이틀)이 "로트" 항목과 관련된다는 것을 나타내는 반면 네거티브 라벨은 항목이 "로트"가 아님을 나타낸다. 보다 구체적으로, 하나의 구현예에서, 항목 목록 타이틀의 숫자 토큰은 그 토큰이 해당 타이틀에 의해 기술되는 해당 항목의 로트 사이즈 또는 수량을 나타내는지 여부를 증명하는 라벨을 배정받는다.
일단 항목 목록 타이틀("트레이닝 예"라고도 함) 및 해당 로트_사이즈 값의 트레이닝 세트가 어셈블링되면, 트레이닝 데이터를 라벨링하는 프로세스가 시작된다. 항목 목록 타이틀을 라벨링하는 대신, 주어진 항목 목록 타이틀의 숫자 (양의 자연수) 토큰에 대해서만 라벨이 제공된다. 따라서, 일 실시예에서, 위에서 기술된 전처리 단계는 원시 트레이닝 항목 타이틀 상에서 실행된다. 결과적으로, 표면화된 숫자 토큰은 모델 트레이닝 프로세스에 제공되는 실제 트레이닝 예의 역할을 한다. 동일한 항목으로부터 다수의 트레이닝 예가 나올 수 있다. 단일 트레이닝 예(숫자 토큰)는 일부 예에서 포지티브 또는 네거티브 라벨을 가질 수 있다. 트레이닝 예로부터 나온 항목이 해당 예에 의해 표현된 토큰과 동일한 로트_사이즈 값을 가지고 있다면, 포지티브 라벨(positive label)("POS")이 트레이닝 예에 배정될 수 있다. 그렇지 않으면, 네거티브 라벨("NEG")이 예에 배정된다. 트레이닝 예의 예시적인 실시예의 양태가 도 7에 도시되어 있다.
일부 예에서 트레이닝 모델은 로지스틱 회귀 이진 분류기를 포함한다. 모델은 "수량" 숫자 토큰 중의 어떠한 특성(특징)이 (토큰이 유래된) 항목 목록 타이틀이 라벨을 식별자로 사용하여 "로트" 목록으로 분류될 수 있는지 여부에 기여하는지를 학습한다. 이 학습 방법은 트레이닝된 모델에 의해 계산되고 출력된 답변(또는 예측)의 계산의 토대로서 역할을 하는 각 특징마다의 가중치를 학습한다.
따라서, 일 예에서, 분류 시스템은 적어도 하나의 프로세서 및 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 분류 시스템으로 하여금 다음의 동작들을 수행하게 하는 명령어를 저장한 메모리를 포함하며, 상기 동작들은 적어도: 게시 시스템에서 목록에 대한 설명을 수신하는 동작; 상기 목록에서 문자열을 식별하고, 상기 문자열에서 수량 단어 또는 숫자를 식별하고, 식별된 수량 단어를 숫자 형태로 변환하고, 상기 문자열을 정규화하여, 소문자 또는 숫자만을 포함하는 정규화된 문자열을 생성하는 동작; 상기 정규화된 문자열을 토큰화하여 토큰들을 생성하는 동작 ― 상기 정규화된 문자열의 토큰화는 구분자들의 시퀀스를 사용하여 상기 정규화된 문자열을 일련의 서브 문자열로 분할하는 것을 포함하고, 상기 서브 문자열의 적어도 하나는 소문자 또는 숫자를 포함함 ―; 각 서브 문자열마다, 임의의 다른 인접 문자가 다른 숫자가 아닌 한, 임의의 숫자를 임의의 다른 인접 문자와 분리함으로써 상기 서브 문자열에 대해 추가 분할을 수행하고, 각 분할된 서브 문자열의 내부 문자 순서를 유지하여 토큰화된 토큰들의 평탄화된 목록을 생성하는 동작; 트레이닝된 모델에 기반하여, 적어도 하나의 토큰에 대해 로트 수량을 나타내는 확률을 배정하는 동작; 상기 배정된 확률에 기반하여 상기 목록을 로트 목록으로 분류하는 동작; 및 상기 분류에 기반하여, 상기 목록을 로트 목록으로서 표시하게 하는 동작을 포함한다.
일부 예에서, 상기 목록에서 문자열을 식별하는 것은 상기 목록의 타이틀에서 문자열을 식별하는 것을 포함하고, 상기 구분자들의 시퀀스는 공백 구분자를 포함한다. 분류 시스템은 트레이닝된 모델을 트레이닝시키기 위한 특징 벡터를 생성하는 특징 벡터 컴포넌트를 더 포함할 수 있고, 상기 특징 벡터 컴포넌트는 토큰화된 목록 타이틀에서 숫자 토큰의 포지션을 포함하는 토큰화된 목록 타이틀을 입력으로서 수신하며, 숫자 토큰의 포지션과 관련하여, 상기 특징 벡터는: 토큰 애프터 벡터, 바이그램 애프터 백터, 토큰 비포 벡터, 바이그램 비포 벡터, 측정 단위 벡터, 토큰 포지션 비율, 및 k 벡터로 분할 가능한 토큰 중 하나 이상을 포함한다.
일부 예에서, 분류 시스템은 상기 특징 벡터 컴포넌트에 의해 계산된 특징 벡터를 입력으로서 수신하는 트레이닝 컴포넌트를 더 포함하고, 여기서 메타 카테고리 별 트레이닝 모델은 해당 메타 카테고리 하에 나열되는 항목들에 대해 목록 타이틀들의 트레이닝 세트를 사용하는 상기 트레이닝 컴포넌트에 의해 트레이닝된다. 일부 예에서, 원시 목록 타이틀 문자열 및 배정된 로트 사이즈 값만이 목록 타이틀로부터 추출되고 트레이닝된 모델에 대한 트레이닝 세트에 엔트리로서 포함된다.
본 개시 내용은 또한 예시적인 방법을 포함한다. 일 예에서, 그리고 도 8을 참조하면, 분류 방법(800)은 동작들, 예컨대, 동작(802)에서, 게시 시스템에서 목록에 대한 설명을 수신하는 동작; 동작(804)에서, 상기 목록에서 문자열을 식별하고, 상기 문자열에서 수량 단어 또는 숫자를 식별하고, 식별된 수량 단어를 숫자 형태로 변환하고, 상기 문자열을 정규화하여, 소문자 또는 숫자만을 포함하는 정규화된 문자열을 생성하는 동작; 동작(806)에서, 상기 정규화된 문자열을 토큰화하여 토큰들을 생성하는 동작 ― 상기 정규화된 문자열의 토큰화는 구분자들의 시퀀스를 사용하여 상기 정규화된 문자열을 일련의 서브 문자열로 분할하는 것을 포함하고, 상기 서브 문자열의 적어도 하나는 소문자 또는 숫자를 포함함 ―; 동작(808)에서, 각 서브 문자열마다, 임의의 다른 인접 문자가 다른 숫자가 아닌 한, 임의의 숫자를 임의의 다른 인접 문자와 분리함으로써 상기 서브 문자열에 대해 추가 분할을 수행하고, 각 분할된 서브 문자열의 내부 문자 순서를 유지하여 토큰화된 토큰들의 평탄화된 목록을 생성하는 동작; 동작(810)에서, 트레이닝된 모델에 기반하여, 적어도 하나의 토큰에 대해 로트 수량을 나타내는 확률을 배정하는 동작; 동작(812)에서, 상기 배정된 확률에 기반하여 상기 목록을 로트 목록으로 분류하는 동작; 및 동작(814)에서, 상기 분류에 기반하여, 상기 목록을 로트 목록으로서 표시하게 하는 동작을 포함한다.
상기 목록에서 문자열을 식별하는 것은 상기 목록의 타이틀에서 문자열을 식별하는 것을 포함할 수 있고, 상기 구분자들의 시퀀스는 공백 구분자를 포함할 수 있다.
분류 방법은 토큰화된 목록 타이틀에서 숫자 토큰의 포지션을 포함하는 토큰화된 목록 타이틀을 수신함으로써 트레이닝된 모델을 트레이닝시키기 위한 특징 벡터를 생성하는 단계를 더 포함할 수 있고, 숫자 토큰의 포지션과 관련하여, 상기 특징 벡터는: 토큰 애프터 벡터, 바이그램 애프터 백터, 토큰 비포 벡터, 바이그램 비포 벡터, 측정 단위 벡터, 토큰 포지션 비율, 및 k 벡터로 분할 가능한 토큰 중 하나 이상을 포함한다.
일부 예에서, 분류 방법은 상기 특징 벡터를 트레이닝 컴포넌트 내로의 입력으로서 수신하는 동작, 및 상기 트레이닝 컴포넌트 및 메타 카테고리 하에 나열되는 항목들에 대해 목록 타이틀들의 트레이닝 세트를 사용하여 메타 카테고리에 대한 트레이닝 모델을 트레이닝시키는 동작을 더 포함한다.
일부 예에서, 분류 방법은 원시 목록 타이틀 문자열 및 배정된 로트 사이즈 값만을 목록 타이틀로부터 추출하고 그것을 트레이닝된 모델에 대한 트레이닝 세트에 엔트리로서 포함시키는 동작을 더 포함한다.
다른 실시예에서, 도 9를 참조하면, 로트 분류 알고리즘(900)은 동작들, 예컨대, 동작 (902)에서, 전술한 하나 이상의 전처리 방법을 사용하여 목록 타이틀을 전처리하는 동작; 동작(904)에서, 상기 목록 타이틀에서 1보다 큰 양의 자연 숫자 토큰을 식별하는 동작; 동작(906)에서, 숫자 토큰이 없으면, IS_LOT=“NOT_LOT”인 동작; 동작(908)에서, 각 숫자 토큰마다의 항목 타이틀 내의 동작; 동작(910)에서, 상기 토큰에 대한 특징 벡터를 계산하는 동작; 동작(912)에서, 특징 벡터 입력에 대해 메타 카테고리 모델을 실행하는 동작; 동작(914)에서, 상기 모델의 예측 답변이 0이면, 계속해서 다음 숫자 토큰(IS_LOT=”NOT_LOT”)으로 진행하는 동작; 그렇지 않으면(1인 경우), 동작(916)에서, 상기 토큰을 트레이닝 모델에 대한 최종 선택 프로세스의 후보로 예약하는 동작(후보의 IS_LOT=”LOT”, 로트_사이즈=토큰, 스코어=모델의 신뢰도)을 포함한다. 동작들(910-916)은 동작(908)의 서브 동작일 수 있다. 동작(918)에서, 숫자 토큰이 후보로 예약되지 않은 경우, IS_LOT=”NOT_LOT”이고; 그렇지 않으면, 동작(920)에서, 스코어가 가장 높은 후보 토큰을 선택한다. 마지막으로, 동작(922)에서 IS_LOT=”LOT”, 로트_사이즈=토큰이 된다.
일부 예에서, 비 일시적 머신 판독 가능 매체는 머신(400)에 의해 판독될 때 머신(400)으로 하여금 적어도 위에 요약된 비 제한적인 예시적인 동작들을 포함하는 동작을 수행하게 하는 명령어(410)를 포함한다.
본 발명의 요지가 일부 특정 예시적인 실시예를 참조하여 설명되었지만, 개시된 발명의 요지의 보다 넓은 범위를 벗어나지 않으면서 이러한 실시예에 대한 다양한 수정 및 변경이 행해질 수 있다는 것이 명백할 것이다. 따라서, 명세서 및 도면은 제한적인 의미라기보다는 예시적인 것으로 간주되어야 한다. 본 명세서의 일부를 형성하는 첨부된 도면은 요지가 실시될 수 있는 특정 실시예에 대한 제한이 아닌 예시로서 도시된다. 기술된 실시예는 본 기술 분야의 기술자가 본원에 개시된 교시를 실시할 수 있도록 충분히 상세하게 기술되고 있다. 본 개시 내용의 범위를 벗어나지 않고 구조적 및 논리적 대체 및 변경이 행해질 수 있도록 기술된 실시예로부터 다른 실시예가 이용되고 도출될 수 있다. 따라서, 상세한 설명은 제한적인 의미로 간주되어서는 안되며, 다양한 실시예의 범위는 첨부된 청구범위와 그러한 청구범위가 부여받은 균등물의 전체 범위에 의해서만 정의된다.
본 발명의 요지의 실시예는 단지 편의상 개별적으로 및/또는 집합적으로 용어 "발명"으로 지칭될 수 있으며, 본 출원의 범위를, 하나 초과가 실제로 개시되는 경우, 임의의 단일 발명 또는 발명의 개념으로 자발적으로 제한하려는 의도는 없다. 따라서, 특정 실시예가 본원에 예시되고 기술되었지만, 동일한 목적을 달성하기 위해 계산된 임의의 배열이 도시된 특정 실시예를 대체할 수 있음을 이해해야 한다. 본 개시 내용은 다양한 실시예의 임의의 그리고 모든 적응 또는 변형을 포함하도록 의도된다. 위의 실시예의 조합 및 본원에 구체적으로 기술되지 않은 다른 실시예는 상기 설명을 검토할 때 본 기술 분야의 기술자에게는 명백할 것이다.

Claims (18)

  1. 분류 시스템으로서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 분류 시스템으로 하여금 다음의 동작들을 수행하게 하는 명령어를 저장한 메모리를 포함하며,
    상기 동작들은 적어도:
    게시 시스템에서 목록에 대한 설명을 수신하는 동작;
    상기 목록에서 문자열을 식별하고, 상기 문자열에서 수량 단어 또는 숫자를 식별하고, 식별된 수량 단어를 숫자 형태로 변환하고, 상기 문자열을 정규화하여, 소문자 또는 숫자만을 포함하는 정규화된 문자열을 생성하는 동작;
    상기 정규화된 문자열을 토큰화하여 토큰들을 생성하는 동작 ― 상기 정규화된 문자열의 토큰화는 구분자들의 시퀀스를 사용하여 상기 정규화된 문자열을 일련의 서브 문자열로 분할하는 것을 포함하고, 상기 서브 문자열의 적어도 하나는 소문자 또는 숫자를 포함함 ―;
    각 서브 문자열마다, 임의의 다른 인접 문자가 다른 숫자가 아닌 한, 임의의 숫자를 임의의 다른 인접 문자와 분리함으로써 상기 서브 문자열에 대해 추가 분할을 수행하고, 각 분할된 서브 문자열의 내부 문자 순서를 유지하여 토큰화된 토큰들의 평탄화된 목록(a flattened list)을 생성하는 동작;
    트레이닝된 모델에 기반하여, 적어도 하나의 토큰에 대해 로트 수량을 나타내는 확률을 배정하는 동작;
    상기 배정된 확률에 기반하여 상기 목록을 로트 목록으로 분류하는 동작; 및
    상기 분류에 기반하여, 상기 목록을 로트 목록으로서 표시하게 하는 동작을 포함하는
    분류 시스템.
  2. 제1항에 있어서,
    상기 목록에서 문자열을 식별하는 것은 상기 목록의 타이틀에서 상기 문자열을 식별하는 것을 포함하는
    분류 시스템.
  3. 제1항에 있어서,
    상기 구분자들의 시퀀스는 공백 구분자를 포함하는
    분류 시스템.
  4. 제1항에 있어서,
    상기 트레이닝된 모델을 트레이닝시키기 위한 특징 벡터를 생성하는 특징 벡터 컴포넌트를 더 포함하고, 상기 특징 벡터 컴포넌트는 토큰화된 목록 타이틀에서 숫자 토큰의 포지션을 포함하는 토큰화된 목록 타이틀을 입력으로서 수신하며, 상기 숫자 토큰의 포지션과 관련하여, 상기 특징 벡터는 토큰 애프터 벡터(a token after vector), 바이그램 애프터 백터(a bigram after vector), 토큰 비포 벡터(a token before vector), 바이그램 비포 벡터(a bigram before vector), 측정 단위 벡터, 토큰 포지션 비율, 및 k 벡터로 분할 가능한 토큰 중 하나 이상을 포함하는
    분류 시스템.
  5. 제4항에 있어서,
    상기 분류 시스템은 상기 특징 벡터 컴포넌트에 의해 계산된 특징 벡터를 입력으로서 수신하는 트레이닝 컴포넌트를 더 포함하고, 메타 카테고리 별 트레이닝 모델은 해당 메타 카테고리 하에 나열되는 항목들에 대해 목록 타이틀들의 트레이닝 세트를 사용하는 상기 트레이닝 컴포넌트에 의해 트레이닝되는
    분류 시스템.
  6. 제2항에 있어서,
    원시 목록 타이틀 문자열 및 배정된 로트 사이즈 값만이 상기 목록 타이틀로부터 추출되고, 상기 트레이닝된 모델에 대한 트레이닝 세트에 엔트리로서 포함되는
    분류 시스템.
  7. 분류 방법으로서,
    게시 시스템에서 목록에 대한 설명을 수신하는 단계;
    상기 목록에서 문자열을 식별하고, 상기 문자열에서 수량 단어 또는 숫자를 식별하고, 식별된 수량 단어를 숫자 형태로 변환하고, 상기 문자열을 정규화하여, 소문자 또는 숫자만을 포함하는 정규화된 문자열을 생성하는 단계;
    상기 정규화된 문자열을 토큰화하여 토큰들을 생성하는 단계 ― 상기 정규화된 문자열의 토큰화는 구분자들의 시퀀스를 사용하여 상기 정규화된 문자열을 일련의 서브 문자열로 분할하는 것을 포함하고, 상기 서브 문자열의 적어도 하나는 소문자 또는 숫자를 포함함 ―;
    각 서브 문자열마다, 임의의 다른 인접 문자가 다른 숫자가 아닌 한, 임의의 숫자를 임의의 다른 인접 문자와 분리함으로써 상기 서브 문자열에 대해 추가 분할을 수행하고, 각 분할된 서브 문자열의 내부 문자 순서를 유지하여 토큰화된 토큰들의 평탄화된 목록을 생성하는 단계;
    트레이닝된 모델에 기반하여, 적어도 하나의 토큰에 대해 로트 수량을 나타내는 확률을 배정하는 단계;
    상기 배정된 확률에 기반하여 상기 목록을 로트 목록으로 분류하는 단계; 및
    상기 분류에 기반하여, 상기 목록을 로트 목록으로서 표시하게 하는 단계를 포함하는
    분류 방법.
  8. 제7항에 있어서,
    상기 목록에서 문자열을 식별하는 것은 상기 목록의 타이틀에서 상기 문자열을 식별하는 것을 포함하는
    분류 방법.
  9. 제7항에 있어서,
    상기 구분자들의 시퀀스는 공백 구분자를 포함하는
    분류 방법.
  10. 제7항에 있어서,
    토큰화된 목록 타이틀에서 숫자 토큰의 포지션을 포함하는 토큰화된 목록 타이틀을 수신함으로써 상기 트레이닝된 모델을 트레이닝시키기 위한 특징 벡터를 생성하는 단계를 더 포함하고, 상기 숫자 토큰의 포지션과 관련하여, 상기 특징 벡터는 토큰 애프터 벡터, 바이그램 애프터 백터, 토큰 비포 벡터, 바이그램 비포 벡터, 측정 단위 벡터, 토큰 포지션 비율, 및 k 벡터로 분할 가능한 토큰 중 하나 이상을 포함하는
    분류 방법.
  11. 제10항에 있어서,
    상기 특징 벡터를 트레이닝 컴포넌트 내로의 입력으로서 수신하는 단계, 및 상기 트레이닝 컴포넌트 및 메타 카테고리 하에 나열되는 항목들에 대해 목록 타이틀들의 트레이닝 세트를 사용하여 상기 메타 카테고리에 대한 트레이닝 모델을 트레이닝시키는 단계를 더 포함하는
    분류 방법.
  12. 제8항에 있어서,
    원시 목록 타이틀 문자열 및 배정된 로트 사이즈 값만을 상기 목록 타이틀로부터 추출하고, 그것을 상기 트레이닝된 모델에 대한 트레이닝 세트에 엔트리로서 포함시키는 단계를 더 포함하는
    분류 방법.
  13. 머신에 의해 판독될 때, 상기 머신으로 하여금 다음의 동작들을 수행하게 하는 명령어를 포함하는 머신 판독 가능 매체로서,
    상기 동작들은 적어도:
    게시 시스템에서 목록에 대한 설명을 수신하는 동작;
    상기 목록에서 문자열을 식별하고, 상기 문자열에서 수량 단어 또는 숫자를 식별하고, 식별된 수량 단어를 숫자 형태로 변환하고, 상기 문자열을 정규화하여, 소문자 또는 숫자만을 포함하는 정규화된 문자열을 생성하는 동작;
    상기 정규화된 문자열을 토큰화하여 토큰들을 생성하는 동작 ― 상기 정규화된 문자열의 토큰화는 구분자들의 시퀀스를 사용하여 상기 정규화된 문자열을 일련의 서브 문자열로 분할하는 것을 포함하고, 상기 서브 문자열의 적어도 하나는 소문자 또는 숫자를 포함함 ―;
    각 서브 문자열마다, 임의의 다른 인접 문자가 다른 숫자가 아닌 한, 임의의 숫자를 임의의 다른 인접 문자와 분리함으로써 상기 서브 문자열에 대해 추가 분할을 수행하고, 각 분할된 서브 문자열의 내부 문자 순서를 유지하여 토큰화된 토큰들의 평탄화된 목록을 생성하는 동작;
    트레이닝된 모델에 기반하여, 적어도 하나의 토큰에 대해 로트 수량을 나타내는 확률을 배정하는 동작;
    상기 배정된 확률에 기반하여 상기 목록을 로트 목록으로 분류하는 동작; 및
    상기 분류에 기반하여, 상기 목록을 로트 목록으로서 표시하게 하는 동작을 포함하는
    머신 판독 가능 매체.
  14. 제13항에 있어서,
    상기 목록에서 문자열을 식별하는 것은 상기 목록의 타이틀에서 상기 문자열을 식별하는 것을 포함하는
    머신 판독 가능 매체.
  15. 제13항에 있어서,
    상기 구분자들의 시퀀스는 공백 구분자를 포함하는
    머신 판독 가능 매체.
  16. 제13항에 있어서,
    상기 동작들은 토큰화된 목록 타이틀에서 숫자 토큰의 포지션을 포함하는 토큰화된 목록 타이틀을 수신함으로써 상기 트레이닝된 모델을 트레이닝시키기 위한 특징 벡터를 생성하는 동작을 더 포함하고, 상기 숫자 토큰의 포지션과 관련하여, 상기 특징 벡터는 토큰 애프터 벡터, 바이그램 애프터 백터, 토큰 비포 벡터, 바이그램 비포 벡터, 측정 단위 벡터, 토큰 포지션 비율, 및 k 벡터로 분할 가능한 토큰 중 하나 이상을 포함하는
    머신 판독 가능 매체.
  17. 제16항에 있어서,
    상기 동작들은 상기 특징 벡터를 트레이닝 컴포넌트 내로의 입력으로서 수신하는 동작, 및 상기 트레이닝 컴포넌트 및 메타 카테고리 하에 나열되는 항목들에 대해 목록 타이틀들의 트레이닝 세트를 사용하여 상기 메타 카테고리에 대한 트레이닝 모델을 트레이닝시키는 동작을 더 포함하는
    머신 판독 가능 매체.
  18. 제14항에 있어서,
    상기 동작들은 원시 목록 타이틀 문자열 및 배정된 로트 사이즈 값만을 상기 목록 타이틀로부터 추출하고, 그것을 상기 트레이닝된 모델에 대한 트레이닝 세트에 엔트리로서 포함시키는 동작을 더 포함하는
    머신 판독 가능 매체.
KR1020207028797A 2018-03-08 2019-02-14 자동 로트 분류 KR102501362B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/916,207 2018-03-08
US15/916,207 US11036780B2 (en) 2018-03-08 2018-03-08 Automatic lot classification
PCT/US2019/017922 WO2019173032A1 (en) 2018-03-08 2019-02-14 Automatic lot classification

Publications (2)

Publication Number Publication Date
KR20200128429A true KR20200128429A (ko) 2020-11-12
KR102501362B1 KR102501362B1 (ko) 2023-02-21

Family

ID=65576731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207028797A KR102501362B1 (ko) 2018-03-08 2019-02-14 자동 로트 분류

Country Status (4)

Country Link
US (2) US11036780B2 (ko)
KR (1) KR102501362B1 (ko)
CN (1) CN111868709A (ko)
WO (1) WO2019173032A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230048686A (ko) * 2021-10-05 2023-04-12 에스케이 주식회사 한글로 표현된 숫자 표현 추출 방법 및 시스템
US12001471B2 (en) 2018-03-08 2024-06-04 Ebay Inc. Automatic lot classification

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11461829B1 (en) * 2019-06-27 2022-10-04 Amazon Technologies, Inc. Machine learned system for predicting item package quantity relationship between item descriptions
US11645318B2 (en) 2020-08-20 2023-05-09 Walmart Apollo, Llc Systems and methods for unified extraction of attributes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150052143A1 (en) * 2013-08-13 2015-02-19 Ming Liu Item listing categorization system

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751600B1 (en) 2000-05-30 2004-06-15 Commerce One Operations, Inc. Method for automatic categorization of items
US8428996B2 (en) 2001-06-11 2013-04-23 Ebay Inc. Method and system automatically to support multiple transaction types, and to display seller-specific transactions of various transaction types in an integrated, commingled listing
US7870039B1 (en) 2004-02-27 2011-01-11 Yahoo! Inc. Automatic product categorization
WO2007124182A2 (en) 2006-04-24 2007-11-01 Andrew Altschuler System and method for selling a product multiple times during the life of the product
US7827125B1 (en) * 2006-06-01 2010-11-02 Trovix, Inc. Learning based on feedback for contextual personalized information retrieval
US8631005B2 (en) 2006-12-28 2014-01-14 Ebay Inc. Header-token driven automatic text segmentation
US8036945B2 (en) 2008-09-26 2011-10-11 The Go Daddy Group, Inc. Method of generating product cagetories from a text string
CN101727454A (zh) 2008-10-30 2010-06-09 日电(中国)有限公司 用于对象自动分类的方法和系统
US8533208B2 (en) * 2009-09-28 2013-09-10 Ebay Inc. System and method for topic extraction and opinion mining
US8489603B1 (en) 2009-10-23 2013-07-16 Amazon Europe Holdings Technologies Scs Automatic item categorizer
US20180107940A1 (en) * 2010-04-27 2018-04-19 Jeremy Lieberman Artificial intelligence method and apparatus
US9384278B2 (en) * 2011-04-07 2016-07-05 Ebay Inc. Methods and systems for assessing excessive accessory listings in search results
US9111289B2 (en) 2011-08-25 2015-08-18 Ebay Inc. System and method for providing automatic high-value listing feeds for online computer users
US9727607B2 (en) * 2014-11-19 2017-08-08 Ebay Inc. Systems and methods for representing search query rewrites
US10091188B2 (en) * 2015-03-30 2018-10-02 Qualcomm Incorporated Accelerated passphrase verification
US20170124484A1 (en) * 2015-11-02 2017-05-04 Wal-Mart Stores, Inc. Machine Learning System
US9973521B2 (en) * 2015-12-28 2018-05-15 International Business Machines Corporation System and method for field extraction of data contained within a log stream
US20170213130A1 (en) * 2016-01-21 2017-07-27 Ebay Inc. Snippet extractor: recurrent neural networks for text summarization at industry scale
US20170300563A1 (en) * 2016-04-14 2017-10-19 Linkedin Corporation Generating text snippets using supervised machine learning algorithm
US10565498B1 (en) * 2017-02-28 2020-02-18 Amazon Technologies, Inc. Deep neural network-based relationship analysis with multi-feature token model
US11036780B2 (en) 2018-03-08 2021-06-15 Ebay Inc. Automatic lot classification

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150052143A1 (en) * 2013-08-13 2015-02-19 Ming Liu Item listing categorization system
US20160224658A1 (en) * 2013-08-13 2016-08-04 Ebay Inc. Item listing categorization system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Ha el al. "Large-scale item categorization in e-commerce using multiple recurrent neural networks." Proc. 22nd ACM SIGKDD Int. Conf. on Knowledge Discovery and Data Mining. (2016): 107-115.* *
Roy et al. "Reasoning about quantities in natural language." Transactions of the Association for Computational Linguistics. (2015) 3: 1-13.* *
김진삼. 딥러닝을 이용한 형태소 분석 기반의 상품 카테고리 분류 기법. Ph.D. Thesis. 한양대학교. (2017). *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12001471B2 (en) 2018-03-08 2024-06-04 Ebay Inc. Automatic lot classification
KR20230048686A (ko) * 2021-10-05 2023-04-12 에스케이 주식회사 한글로 표현된 숫자 표현 추출 방법 및 시스템

Also Published As

Publication number Publication date
US12001471B2 (en) 2024-06-04
CN111868709A (zh) 2020-10-30
WO2019173032A1 (en) 2019-09-12
KR102501362B1 (ko) 2023-02-21
US20210248172A1 (en) 2021-08-12
US11036780B2 (en) 2021-06-15
US20190278865A1 (en) 2019-09-12

Similar Documents

Publication Publication Date Title
US20200320370A1 (en) Snippet extractor: recurrent neural networks for text summarization at industry scale
US10474725B2 (en) Determining similarities among industries to enhance job searching
KR102241923B1 (ko) 이미지 분석 및 예측 기반 시각 검색
US20210255745A1 (en) User interface based variable machine modeling
CN110622153B (zh) 用于查询分割的方法和系统
US20170177712A1 (en) Single step cross-linguistic search using semantic meaning vectors
KR102501362B1 (ko) 자동 로트 분류
KR102170012B1 (ko) 데이터베이스 검색 최적화기 및 주제 필터
US20170293695A1 (en) Optimizing similar item recommendations in a semi-structured environment
US11392836B2 (en) Structuring data in a knowledge graph
JP2017538195A (ja) 階層深層畳み込みニューラルネットワーク
CN110168591B (zh) 确定行业相似性以增强职位搜索
US10230806B2 (en) Tracking of user interactions
KR20180098659A (ko) 상위 속성을 식별하기 위한 사용자 인터페이스
WO2018071770A1 (en) Parallel prediction of multiple image aspects
KR102224731B1 (ko) 선택적 인덱싱을 통한 검색 엔진 최적화
US20180276302A1 (en) Search provider selection using statistical characterizations
US11386174B2 (en) User electronic message system
KR20180121632A (ko) 카탈로그 관리
US20170344902A1 (en) Parent Company Industry Classifier
US11861295B2 (en) Encoding a job posting as an embedding using a graph neural network

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant