KR20220149617A - 온라인 게이밍을 위한 사용자 입력 텍스트의 언어 감지 - Google Patents

온라인 게이밍을 위한 사용자 입력 텍스트의 언어 감지 Download PDF

Info

Publication number
KR20220149617A
KR20220149617A KR1020227036670A KR20227036670A KR20220149617A KR 20220149617 A KR20220149617 A KR 20220149617A KR 1020227036670 A KR1020227036670 A KR 1020227036670A KR 20227036670 A KR20227036670 A KR 20227036670A KR 20220149617 A KR20220149617 A KR 20220149617A
Authority
KR
South Korea
Prior art keywords
language
game
user
machine learning
learning model
Prior art date
Application number
KR1020227036670A
Other languages
English (en)
Other versions
KR102569760B1 (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 KR20220149617A publication Critical patent/KR20220149617A/ko
Application granted granted Critical
Publication of KR102569760B1 publication Critical patent/KR102569760B1/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/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • 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/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • 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/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/263Language identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation
    • 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)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

온라인 게임 시스템에 의해 처리된 사용자 쿼리와 같은 사용자 쿼리는 트레이닝된 머신 러닝 모델에 입력으로 제공된다. 머신 러닝 모델은 사용자 쿼리의 후보 언어를 예측하고, 후보 언어에 대한 언어 신뢰 점수를 출력한다. 사용자 쿼리는 또한 각각의 후보 언어에 대한 개별 언어 데이터베이스의 게임 정보와 연관된 저장된 쿼리 데이터와 일치한다. 일치 점수는 각각의 응답 일치의 확실성에 기초하여 결정될 수 있다. 일치 점수 및 언어 신뢰 점수는 가중 점수를 결정하기 위해 가중될 수 있다. 응답 일치의 가중 점수는 식별된 데이터베이스에서 검색된 어떤 게임 정보가 사용자에 대한 검색 결과의 응답을 형성하는 데 사용되는지 결정하는 데 적용된다.

Description

온라인 게이밍을 위한 사용자 입력 텍스트의 언어 감지
본 출원은 2020년 4월 24일에 출원된 "온라인 게이밍을 위한 사용자 입력 텍스트의 언어 감지(Language Detection of User Input Text For Online Gaming)"이라는 제목의 미국 출원 번호 16/858,467의 이익을 주장하며, 이는 모든 목적을 위해 그 전체가 참조로 여기에서 포함된다.
온라인 게이밍은 지리적 및 언어적 경계에 관계없이, 전 세계에 위치한 플레이어가 함께 참여하는 기회를 제공한다. 게이밍 플랫폼은 종종 사용자가 게임과 상호작용하는 데 도움이 되는, 검색 쿼리(search query)와 같은 텍스트를 사용자가 입력할 수 있도록 한다. 온라인 게임에 입력되는 텍스트는 전형적으로 독특한 특성을 갖는다. 텍스트의 가능한 언어를 인식하는 것은 텍스트에 효과적으로 응답하는 데 도움이 될 수 있다.
머신 러닝은 온라인 게이밍 플랫폼의 사용자에 의해 입력된 텍스트를 해석하기 위해 자연어 처리(natural language processing: NLP)에 활용될 수 있다. 알고리즘, 예컨대, 예측 모델은 트레이닝(training)을 통해 경험적 데이터로부터 학습하고, 사용자 입력 텍스트의 분석을 수행하도록 생성될 수 있다. 이러한 인공 지능은 온라인 게이밍 컨텍스트에서 머신 러닝 모델의 적절한 트레이닝을 위해 깨끗하고 관련성 있는 데이터를 요구한다.
본 출원의 구현은 트레이닝된 머신 러닝 모델을 사용하여, 온라인 게임의 사용자에 의해 입력된 사용자 쿼리의 언어를 감지하는 것에 관한 것이다. 머신 러닝 모델은 온라인 게이밍과 관련된 처리된 텍스트 데이터로 트레이닝된다.
일부 구현에서, 방법은 사용자 쿼리를 수신하는 단계 및 사용자 쿼리를 복수의 n-그램(n-gram)으로 분리하는 단계를 포함한다. 적어도 하나의 후보 언어는 사용자 쿼리의 복수의 n-그램에 머신 러닝 모델을 적용함으로써 식별된다. 머신 러닝 모델은 적어도 하나의 다국어 텍스트 코퍼스(multilingual text corpus) 및 게임 관련 데이터로 트레이닝된다. 적어도 하나의 후보 언어 각각에 대한 각각의 언어 신뢰 점수는 머신 러닝 모델을 적용함으로써 결정된다. 적어도 하나의 후보 언어는 검색하기 위한 적어도 하나의 언어 특정 데이터베이스를 선택하는 데 사용된다. 응답 일치(response match)는 적어도 하나의 언어 특정 데이터베이스에서 식별되고, 각각의 일치 점수는 응답 일치 각각에 대해 결정된다. 가중 점수는 적어도 각각의 언어 신뢰 점수 및 각각의 일치 점수에 의해 결정된다. 가중 점수는 사용자 쿼리에 대한 적어도 하나의 쿼리 언어를 결정하는 기준으로 사용된다.
방법의 다양한 구현 및 예시가 설명된다. 예컨대, 일부 구현에서, 방법은 또한 적어도 하나의 언어 특정 게임 데이터베이스에서 응답 일치와 연관된 게임 정보를 결정하는 단계를 포함한다. 사용자 쿼리에 대한 검색 결과는 게임 정보에 기초하여 생성된다. 게임 정보는 온라인 게임을 위한 웹페이지 정보를 포함할 수 있다. 검색 결과는 사용자에 의해 활성화될 때, 온라인 게임 각각의 하나와 연관된 웹페이지를 링크하는 하나 이상의 사용자 인터페이스 요소를 포함할 수 있다.
일부 구현에서, 사용자 쿼리와 연관된 사용자 프로필 정보가 제공되고 적어도 하나의 쿼리 언어는 사용자 프로필 정보에 더 기초한다. 각각의 신뢰 점수는 적어도 하나의 후보 언어와 관련되는 복수의 n-그램의 하나 이상의 세그먼트를 식별함으로써 추가로 결정될 수 있다. 적어도 하나의 후보 언어는 또한 미식별된 언어를 포함할 수 있고, 언어 특정 게임 데이터베이스는 미지의 언어와 연관된 데이터베이스를 포함할 수 있다.
일부 구현에서, 온라인 게임을 위한 사용자 쿼리의 언어를 감지하기 위한 하나 이상의 프로세서를 갖는 컴퓨팅 장치를 포함하는 시스템이 제공된다. 컴퓨팅 장치는 또한 하나 이상의 프로세서에 의한 실행을 위해 그리고 실행될 때 동작을 수행하도록 동작 가능한 하나 이상의 유형 매체(tangible media)에 인코딩된 로직을 포함한다. 동작은 사용자 쿼리를 수신하고, 사용자 쿼리를 복수의 n-그램으로 분리하는 것을 포함한다. 적어도 하나의 후보 언어는 사용자 쿼리의 복수의 n-그램에 머신 러닝 모델을 적용함으로써 식별된다. 머신 러닝 모델은 적어도 하나의 다국어 텍스트 코퍼스 및 게임 관련 데이터로 트레이닝된다. 적어도 하나의 후보 언어 각각에 대한 각각의 신뢰 점수는 머신 러닝 모델을 적용함으로써 결정된다. 적어도 하나의 후보 언어는 검색하기 위한 적어도 하나의 언어 특정 데이터베이스를 선택하는 동작에서 사용된다. 응답 일치는 적어도 하나의 언어 특정 데이터베이스에서 식별되고, 각각의 일치 점수는 응답 일치 각각에 대해 결정된다. 가중 점수는 적어도 각각의 언어 신뢰 점수 및 각각의 일치 점수에 의해 결정된다. 가중 점수는 사용자 쿼리에 대한 적어도 하나의 쿼리 언어를 결정하기 위한 동작에서 기준으로 사용된다.
동작에 의해 수행된 동작의 다양한 구현 및 예시가 설명된다. 예컨대, 일부 구현에서, 동작은 또한 적어도 하나의 언어 특정 게임 데이터베이스에서 응답 일치와 연관된 게임 정보를 결정하는 것을 포함한다. 사용자 쿼리에 대한 검색 결과는 게임 정보에 기초하여 생성된다. 게임 정보는 온라인 게임을 위한 웹페이지 정보를 포함할 수 있다. 검색 결과는 사용자에 의해 활성화될 때, 온라인 게임 각각의 하나와 연관된 웹페이지를 링크하는 하나 이상의 사용자 인터페이스 요소를 포함할 수 있다.
일부 구현에서, 사용자 쿼리와 연관된 사용자 프로필 정보가 제공되고, 적어도 하나의 쿼리 언어는 사용자 프로필 정보에 더 기초한 동작에 의해 결정된다. 각각의 신뢰 점수는 적어도 하나의 후보 언어와 관련되는 복수의 n-그램의 하나 이상의 세그먼트를 식별하는 동작에 의해 추가로 결정될 수 있다. 적어도 하나의 후보 언어는 또한 미식별된 언어를 포함할 수 있고, 언어 특정 게임 데이터베이스는 미지의 언어와 연관된 데이터베이스를 포함할 수 있다.
온라인 게임을 위한 사용자 쿼리의 언어를 식별하도록 머신 러닝 모델을 트레이닝하는 방법의 다양한 구현 및 예시가 설명된다. 적어도 제1 텍스트 데이터, 제1 텍스트 데이터에 대한 연관된 언어 레이블(associated language label) 및 언어에 대해 레이블이 없는 제2 텍스트 데이터를 포함하는 텍스트 데이터가 수신된다. 연관된 언어 레이블은 적어도 하나의 언어를 식별하는 복수의 비특정 언어 감지기의 임계 수에 기초하여 제2 텍스트 데이터에 대해 결정된다. 트레이닝 텍스트 데이터는 텍스트 데이터를 n-그램으로 분리함으로써 생성된다. 머신 러닝 모델은 사용자 쿼리의 적어도 하나의 후보 언어 식별자와 각각의 언어 신뢰 점수를 생성하도록 트레이닝된다. 트레이닝 텍스트 데이터는 연관된 언어 레이블 없이 트레이닝을 위해 머신 러닝 모델에 공급된다. 머신 러닝 모델은 예측된 언어 레이블을 출력한다. 머신 러닝 모델의 재트레이닝은 현재 예측된 언어 레이블을 업데이트하기 위해, 현재 예측된 언어 레이블과 연관된 언어 레이블 간의 불일치 정보로 수행될 수 있다. 재트레이닝은 불일치 정보가 정확도 임계값을 충족할 때까지 반복적으로 반복될 수 있다.
일부 구현에서, 트레이닝 텍스트 데이터를 생성하는 단계는 상한 임계 길이보다 긴 길이를 갖는 텍스트 데이터의 단어 스트링을 미리 결정된 길이의 랜덤 단어 길이로 분할하는 단계를 더 포함한다. 일부 구현에서, 트레이닝 텍스트 데이터를 생성하는 단계는 단어의 확장된 스트링을 생성하도록, 하한 임계 길이보다 짧은 길이를 갖는 텍스트 데이터의 작업 스트링을 관련 텍스트와 종합하는 단계를 더 포함한다. 트레이닝 데이터 세트는 또한 언어 전반에 걸쳐 그리고 언어 내에서 공통성 임계값을 충족하는 n-그램을 결정함으로써 생성될 수 있다. 일부 구현에서, n-그램은 하나의 문자, 두 개의 문자, 또는 세 개의 문자 중 적어도 하나를 포함할 수 있다.
일부 구현에서, 텍스트 데이터는 게임 제목, 채팅 텍스트, 게임 소스 데이터, 또는 속어 중 적어도 하나를 포함하는 게임 관련 데이터의 적어도 하나의 컬렉션을 포함할 수 있다. 일부 구현에서, 다중 언어에 대한 각각의 신뢰 점수를 포함하는 벡터가 생성되고, 각각의 신뢰 점수에 대응하는 적어도 하나의 언어 특정 게임 데이터베이스의 다중 언어 특정 데이터베이스가 사용자 쿼리에 기초하여 검색된다.
본 개시는 유사한 참조 번호가 유사한 요소를 지칭하기 위해 사용되는 도면에서 제한의 방식이 아닌 예시의 방식으로 예시된다.
도 1은 일부 구현에 따른, 사용자 쿼리를 평가하는 다양한 양태가 온라인 게임 시스템에서 구현될 수 있는 예시적인 환경을 예시하는 개념도이다.
도 2는 일부 구현에 따른, 텍스트 데이터를 전-처리하고, 언어 분석 시스템을 위한 트레이닝 텍스트 데이터를 생성하기 위한 예시적인 데이터 처리 컴퓨팅 장치의 요소를 예시하는 블록도이다.
도 3은 일부 구현에 따른, 언어 분석 시스템을 위한 머신 러닝 모델을 트레이닝하기 위한 예시적인 방법을 예시하는 흐름도이다.
도 4는 일부 구현에 따른, 머신 러닝 모델을 적용함으로써, 사용자 쿼리를 평가하기 위한 예시적인 방법을 예시하는 흐름도이다.
도 5는 일부 구현에 따른, 사용자 쿼리를 분석하고, 검색 결과 응답을 제공하기 위한 예시적인 컴퓨팅 장치를 예시하는 블록도이다.
도 6은 일부 구현에 따른, 클라이언트 장치에서 컴퓨팅 장치로 통신될 사용자 쿼리, 분석될 사용자 쿼리 및 클라이언트 장치로 전송될 검색 결과 응답을 위한 예시적인 온라인 게임 시스템 아키텍처의 블록도이다.
온라인 게임 시스템은 사용자(예컨대, 게임의 플레이어, 게임 개발자 등)가 온라인 게이밍 플랫폼, 예컨대, 클라이언트 컴퓨팅 장치를 통해, 게임에 액세스할 수 있게 한다. 일부 구현에서, 사용자는 온라인 게이밍 시스템 내에서 텍스트 메시지, 예컨대, 쿼리, 명령, 채팅 등을 전송함으로써, 온라인 게임 시스템 또는 온라인 게임 시스템의 다른 사용자와 통신할 수 있다. 예컨대, 게임 제목, 키워드, 게임 설명, 장르, 플레이어, 개발자, 게임 품질 등과 같이, 정보를 요청하고 게임을 찾아내기 위해 사용자에 의해 사용자 쿼리가 입력될 수 있다. 사용자 쿼리는 또한 특정 플레이어 또는 플레이어 그룹 찾기와 같은 게임의 특정 양태, 게임에서의 사용을 위한 가상 아이템, 예컨대, 아바타 부품, 의복 및 액세서리, 및 게임 개발자 도구, 예컨대, 패키지, 데칼(decal), 오디오 및 플러그인을 찾기 위해 입력될 수 있다.
다양한 구현에서, 본 온라인 게임 시스템은 사용자 쿼리를 평가하고, 쿼리에 대한 검색 결과를 포함하는 응답을 공식화한다. 온라인 게임 시스템은 사용자 쿼리의 잠재적 언어를 감지하고, 응답을 공식화하기 위해 결과를 위한 효율적이고 신뢰 가능한 검색을 지원하기 위한 언어 분석 시스템을 이용한다.
종종, 사용자에 의해 온라인 게이밍 플랫폼에 입력되는 사용자 쿼리는 전형적인 쉬운 언어 분석을 위한 이상적인 길이보다 길이가 짧은 텍스트 스트링이다. 예컨대, 사용자 쿼리는 열 단어의 스트링, 소수의 단어 또는 두 단어의 스트링, 또는 단일 단어일 수 있다. 사용자 쿼리는 하나 이상의 키워드, 구, 짧은 문장, 게임 제목 등의 형태일 수 있다. 온라인 게임의 사용자 쿼리는 또한 독특한 패턴과 규칙을 가진 특유의 특수 용어(jargon)를 포함할 수 있다. 사용자 쿼리는 하나 이상의 다양한 언어, 예컨대, 국가 또는 지리적 지역에 특정한 언어, 사용자 그룹이 알고 있는 언어 또는 코드로 될 수 있다. 온라인 게이밍 플랫폼에서 사용된 독특한 텍스트로 인해, NLP와 같은 표준 언어 분석 기법은 온라인 게이밍 플랫폼에 입력된 사용자 쿼리에 적용될 때, 잘못된 언어 예측을 초래할 수 있다. 본 언어 분석 시스템은 전부 제시된 설명에 따라, 특별히 트레이닝된 머신 러닝 모델을 적용하고, 사용자 쿼리를 처리하고, 그리고 점수를 결정하고 가중하는 것과 같이, 잠재적인 사용자 쿼리 언어의 결정을 허용한다. 온라인 게임 시스템은 예컨대, 특정 언어 전용의 게임 관련 데이터베이스를 제공하고, 사용자 쿼리 언어와 일치하는 잠재성이 가장 높은 특정 언어 데이터베이스로 게임 정보에 대한 검색을 제한함으로써, 사용자 쿼리에 응답하는 게임 정보의 효율적이고 리소스 절약하는 검색을 가능하게 한다. 검색하기 위한 특정 언어 데이터베이스를 식별하는 것은 관련 없는 데이터베이스를 포함하는 모든 언어의 데이터베이스를 검색하여 응답 일치를 찾을 필요가 감소함에 따라, 처리 시간과 컴퓨팅 리소스가 감소한다.
후보 언어의 언어 특정 데이터베이스로 검색을 좁히는 것은 더 나은 결과를 제공하기 위해 더 의미 있는 검색 용어를 사용할 수 있게 한다. 다양한 언어는 검색 용어를 해석하기 위해 상이한 규칙을 적용할 수 있다. 예컨대, 모든 언어가 단어 사이에 공백을 동일하게 사용하는 것은 아니다. 또한, 관사 "the" 또는 "a"와 같은 공통 단어는 특정 언어에서 검색하는 것으로 고려되지 않을 수 있지만, 다른 언어에서는 중요할 수 있다.
머신 러닝 모델의 재트레이닝뿐만 아니라 언어 분석 시스템에 의해 이용된 가중 값을 점수화하고 할당하는 기법은 검색 결과의 더 큰 정확도 및 신뢰성을 가능하게 한다. 더욱이, 온라인 게이밍에 특정한 텍스트를 위해 트레이닝된 본 머신 러닝 모델 없이는, 표준 NLP가 쿼리 언어를 추론할 수 있는 간결한 사용자 쿼리에 정보가 불충분할 수 있다.
온라인 게임 시스템에 의해 처리된 사용자 쿼리와 같은 사용자 쿼리는 특별히 트레이닝된 머신 러닝 모델에 입력으로 제공된다. 머신 러닝 모델은 사용자 쿼리의 후보 언어를 예측하고, 후보 언어에 대한 언어 신뢰 점수를 출력한다. 예컨대, 신뢰 임계값을 충족하는 신뢰 점수와 연관된 후보 언어는 검색하기 위한 언어 특정 데이터베이스를 결정하는 데 사용될 수 있다. 사용자 쿼리는 각각의 후보 언어 중 적어도 일부에 대한 개별 스토리지 버킷(예컨대, 데이터베이스)의 게임 정보와 연관된 저장된 쿼리 데이터와 일치된다. 각각의 응답 일치에 대한 일치 점수는 각 응답 일치의 확실성에 기초하여 결정될 수 있다. 일치 점수 및 언어 신뢰 점수는 가중 점수를 결정하기 위해 가중될 수 있다. 가중 점수는 응답으로부터의 어떤 검색 결과가 사용자에게 응답으로 제공하기 위해 일치하는지를 결정하는 데 사용될 수 있다. 예컨대, 검색 결과는 가중 점수에 기초하여 랭킹될 수 있고, 검색 결과의 상위 임계 수가 사용자 쿼리에 대한 응답으로 사용될 수 있다.
언어 분석 시스템의 머신 러닝 모델은 온라인 게이밍 컨텍스트를 위해 전-처리된 관련 텍스트 데이터로 트레이닝된다. 온라인 게이밍 플랫폼과 관련된 텍스트는 일반적으로 특유하다. 머신 러닝 모델은 사용자 쿼리를 평가할 때 정확하게 수행할 수 있도록 실제 온라인 게이밍 데이터에 대해 트레이닝되는 이점이 있다. 예측된 언어 레이블은 트레이닝 동안 머신 러닝 모델에 의해 생성된다. 언어 레이블은 머신 러닝 모델을 업데이트하고, 목표 수준의 정확도를 달성하기 위한 피드백 입력으로 사용될 수 있다.
일 구현에 따른 언어 분석 시스템을 이용하는 온라인 게임 시스템의 사용 예시의 설명에서, 온라인 게이밍 시스템의 플레이어는 그녀가 자신의 가상 피자 사업을 운영할 수 있는 온라인 게임을 찾아내려 시도한다. 사용 예시를 더 설명하기 위해, 도 1은 게임 서버(130)와 통신하는 클라이언트 컴퓨팅 장치(102)를 포함하는 이러한 온라인 게임 시스템(100)의 사례를 도시한다.
사용 예시에서, 플레이어는 게임이 단어 "tycoon"과 관련되어 있음을 알고 있다. 플레이어는 클라이언트 컴퓨팅 장치(102)의 디스플레이 스크린(106) 상의 사용자 인터페이스(104)에 의해 클라이언트 컴퓨팅 장치(102) 상의 게임에 대한 검색을 수행한다. 사용자는 키보드(108)를 사용하여 텍스트 상자(110)에 사용자 쿼리(114)를 타이핑한다. 이 예시에서 사용자 쿼리(114)는 키워드 "pizza"와 영어로 "tycoon"에 대한 스페인어 단어인 "el magnate"를 포함한다. 그녀는 입력된 키워드와 관련된 게임에 대한 검색을 시작하기 위해 사용자 인터페이스(104) 상의 디스플레이 요소(112)를 활성화한다.
사용자 쿼리(114)는 네트워크(122)를 통해 게임 서버(130)로 전송된다. 게임 서버(130)는 메모리(132)에 저장된 언어 분석 시스템(134)에 액세스하고, 사용자 쿼리(114)에 응답하여 검색 결과를 형성하도록 설명된 단계 중 하나 이상을 수행할 수 있는 프로세서(140)를 포함한다.
사용자 쿼리(114)는 처리되고, 언어 분석 시스템(134)의 머신 러닝 모델(136)에 입력되어 사용자 쿼리의 적어도 하나의 후보 언어 및 각각의 후보 언어에 대한 신뢰 점수를 결정할 수 있다. 머신 러닝 모델(136)은 텍스트 데이터를 온라인 게이밍의 전형적인 사용자 쿼리의 독특한 형식에 적응시키도록 전-처리된 텍스트 데이터로 트레이닝되었다. 전-처리는 머신 러닝 모델(136)이 사용자 쿼리의 적은 수의 입력 단어로부터 언어를 인식할 수 있게 한다. 머신 러닝 모델(136)은 목표 수준의 정확도에 도달하기 위해 텍스트 데이터로 업데이트될 수 있다.
사용 예시에서, 검색 엔진(138)은 단어 "el magnate"에 대한 후보 언어가 스페인어일 수 있다고 결정한다. 단어 "pizza"에 대한 후보 언어는 스페인어일 수 있으며, 영어 및/또는 이탈리아어일 수도 있다. 언어 분석 시스템은 세 후보 언어 모두가 미리 정의된 임계값을 충족하는 신뢰 점수를 갖는다고 결정한다. 언어 분석 시스템(134)은 용어 "tycoon" 및 "pizza"와 관련된 일치하는 게임 관련 정보를 찾기 위해 스페인어, 영어 및 이탈리아어 각각과 연관된 개별 데이터베이스에서 검색한다. 일치 점수는 각 언어 특정 데이터베이스의 각각의 응답 일치에 대해 결정된다. 응답 점수는 데이터베이스 일치의 확실성에 기초한다. 응답에 포함될 검색 결과는 개별 응답 일치에 대한 결합된 신뢰 점수 및 응답 점수의 가중 점수에 적어도 부분적으로 기초하여 결정된다. 또한, 플레이어는 스페인어를 그녀에 대해 선호 언어로 리스트화한 온라인 게이밍 플랫폼과 연관된 사용자 프로필을 갖는다. 이러한 사용자 정보는 또한 플레이어에게 제공된 응답에서 스페인어 데이터베이스의 검색 결과의 랭킹을 상승시키기 위해 고려될 수 있다.
게이밍 플랫폼 장치는 게임 제목에 단어 "tycoon" 또는 “magnate” 및 단어 “pizza”를 포함하거나, 그렇지 않으면 피자 사업 소유권과 관련된 여러 게임을 스페인어 데이터베이스에서 검색한다. 일치된 게임의 검색 결과는 네트워크(122)를 통해 클라이언트 컴퓨팅 장치(102)에 전송되고, 클라이언트 컴퓨팅 장치(102)의 디스플레이 스크린(106) 상에 선택 가능한 아이콘(116)으로 나타난다. 검색 결과는 가중 점수 및 사용자 쿼리와의 관계와 일치하는 순서로 디스플레이된다. 플레이어의 관점에서, 그녀의 검색 쿼리 결과는 즉시 수신된다. 사용자 인터페이스(104) 상에서, 플레이어는 그녀가 플레이하기로 선택한 게임에 대한 아이콘(116) 중 하나를 클릭하고, 링크는 게임을 플레이하도록 그녀를 웹페이지에 접속시킨다.
트레이닝 데이터 전-처리 예시
도 2는 데이터 처리 장치(200)의 하나 이상의 프로세서(242)에 의해 수행된 텍스트 데이터를 전-처리하기 위한, 도 1에 도시된 게임 서버(130)와 같은, 데이터 처리 장치(200)의 블록도를 도시한다. 텍스트 데이터는 온라인 게이밍 컨텍스트에서 머신 러닝 모델을 트레이닝하도록 적응된다.
일부 구현에서, 데이터 처리 장치(200)는 게임 서버(130)와 별도의 컴퓨터일 수 있다. 이 경우, 처리된 트레이닝 데이터는 머신 러닝 모델(136)을 트레이닝하기 위한 데이터 처리 장치(200)에 의해 사용되고, 이후 데이터 처리 장치(200)에 의해 게임 서버(130) 또는 머신 러닝 모델(136)을 트레이닝하기 위한 또 다른 중개 컴퓨팅 장치로 전송될 수 있다. 데이터 처리 장치(200)에 의해 이용된 기법은 사용자 쿼리의 언어를 결정하도록 머신 러닝 모델(136)을 트레이닝하기 위한 준비로 트레이닝 텍스트 데이터를 생성하는 데 사용된다.
일부 구현에서, 하나보다 많은 머신 러닝 모델(136)이 트레이닝 텍스트 데이터의 적어도 일부로 트레이닝될 수 있다. 일부 구현에서, 다양한 유형의 텍스트 데이터가 다중 머신 러닝 모델을 트레이닝하는 데 사용된다. 정확도 및 사용자 쿼리에 대한 관련성을 평가하는 것과 같이, 머신 러닝 모델은 평가될 수 있고, 머신 러닝 모델은 특정 사용자 쿼리에 대해 선택될 수 있다.
텍스트 데이터는 입력/출력 인터페이스(222)에서 데이터 처리 장치(200)에 의해 상이한 소스로부터 수신된 다양한 유형의 텍스트 데이터(202)의 컬렉션을 포함할 수 있다. 텍스트 컬렉션(202)은 상이한 언어로 되어 있거나, 언어의 혼합을 포함할 수 있는 단일 컬렉션일 수 있다.
텍스트 컬렉션(202)은 사전 레이블링된 확장 텍스트 데이터(208) 및 사전 레이블링된 게임 관련 텍스트 데이터(210)와 같은, 텍스트의 언어를 지정하는 이전의 기존 레이블을 갖는 텍스트 데이터를 포함할 수 있다. 사전 레이블링된 확장 텍스트 데이터(208)는 많은 언어와 방언, 예컨대, 수백 개의 언어로 번역될 수 있는 다국어 텍스트 코퍼스와 같이, 예컨대, 방대한 공개적으로 사용 가능한 코퍼스를 포함할 수 있다. 다국어 텍스트 코퍼스는 온라인 백과사전, 예컨대, 다양한 언어로 된 Wikipedia(www.wikipedia.org)를 포함할 수 있고, 이 데이터는 또한 Wikipedia API(application programming interface)를 통해 액세스될 수 있다. 다국어 텍스트 코퍼스는 또한 국제 역사 문서, 예컨대, 세계인권선언(https://www.ohchr.org/EN/UDHR/Pages/UDHRIndex.aspx)을 포함할 수 있다. 일부 사전 레이블링된 텍스트 데이터는 레이블 검증기(226)에 의해 검증된 이전 언어 레이블을 가질 수 있다.
레이블 검증기(226)는 사전 레이블링된 텍스트 데이터의 기존 언어 레이블이 올바른지 또는 잘못된지의 표시를 제공한다. 레이블 검증기는 예컨대, 주어진 텍스트 데이터에 대한 기존 언어 레이블에 대한 적절한 신뢰가 없는 경우, 레이블의 정확도를 강화하는 데 도움이 될 수 있다. 예컨대, 텍스트 컬렉션은 한 언어로 된 대부분의 텍스트를 포함할 수 있지만, 다른 언어로 된 단어(예컨대, 이름 등) 또한 포함할 수 있다. 레이블 검증기(226)는 비특정 언어 감지기에 의해 표시된 언어에서 최소 임계값 합의로 언어를 감지하기 위한, 다중 비특정 언어 감지기, 예컨대, 공개적으로 사용 가능한 라이브러리를 이용할 수 있다. 비특정 언어 감지기는 오픈 소스, 유료 서비스, 온라인 게임 시스템에 의해 생성된 모델의 이전 버전, 및 다른 언어 감지 모델 및 언어 라이브러리의 임의의 조합을 포함하여, 언어 감지 모델 및/또는 언어 라이브러리를 사용할 수 있다. 일부 구현에서, 최소 신뢰 임계값은 더 신뢰하는 언어 레이블에서 유래하는 사전 레이블링된 텍스트 데이터에 대해 더 낮게 조정될 수 있다. 기존 레이블과 비특정 언어 감지기의 임계 수에 의해 결정된 언어 간의 합의를 갖는 사전 레이블링된 텍스트 데이터 스트링 입력은, 트레이닝 데이터 세트에 추가될 수 있다. 비특정 언어 감지기가 주어진 기존 레이블에 대한 신뢰 임계값 수준으로 동일한 언어를 감지하지 못하는 경우, 사전 레이블링된 텍스트 데이터는 트레이닝 데이터에서 제외될 수 있다.
게임 관련 텍스트 데이터(210)는 게임 제목, 게임 명령어, 게임의 일부로 플레이어에게 디스플레이되는 텍스트, 게임 설명, 온라인 게이밍 플랫폼의 공통 사용자 검색 쿼리, 온라인 게이밍 플랫폼에서의 공통 채팅 메시지, 온라인 게임과 관련된 전형적인 속어 등과 같은, 온라인 게임과 연관된 다양한 텍스트를 포함할 수 있다. 일부 구현에서, 게임 관련 텍스트 데이터(210)는 인기 임계값 및/또는 랭킹을 충족하는 온라인 게임으로부터 선택된다. 게임 관련 데이터는 특정 언어, 예컨대, 영어가 주가 될 수 있고, 주된 언어에 수동으로 추가된 레이블을 포함할 수 있다. 게임 개발자는 게임과 관련된 텍스트에 언어 레이블을 연관시킬 수 있다. 그러나, 수동으로 레이블링된 텍스트 데이터는 신뢰성이 부족할 수 있고, 레이블은 레이블 검증기(226)에 의해 평가될 수 있다. 기계 번역은 또한 특히 모호한 언어의 텍스트 데이터에 대해, 게임 관련 데이터를 번역하고 언어 레이블을 연관시키기 위해 이러한 텍스트 데이터에 적용될 수 있다. 이는 트레이닝 데이터의 기존 코퍼스가 사용 가능한 데이터 샘플의 수로 제한될 수 있는 언어로 추가 트레이닝 데이터를 제공할 수 있다.
텍스트 컬렉션(202)은 또한 레이블이 없는 축약 텍스트 데이터(204) 및 레이블이 없는 확장 텍스트 데이터(206), 예컨대, 온라인 게임의 설명과 같은 기존의 언어 레이블이 없는 텍스트 데이터를 포함할 수 있다.
레이블이 없는 텍스트 데이터는 자동 레이블러(224)에 의해 텍스트 데이터와 연관되고 생성된 언어 레이블을 가질 수 있다. 텍스트 데이터의 컬렉션은 게임 제목, 채팅 텍스트, 게임 소스 데이터, 속어, 및 온라인 게이밍에 공통적인 다른 텍스트와 같은, 게임 관련 데이터를 포함할 수 있다. 자동 레이블러(224)는 대규모 세트의 트레이닝 데이터를 축적하기 위해 주어진 텍스트 데이터 스트링의 언어를 감지하도록 다중 언어 감지 모델 및 언어 라이브러리를 사용하는 복수의 비특정 언어 감지기를 이용할 수 있다. 이러한 모델과 라이브러리 코퍼스는 오픈 소스, 유료 서비스, 온라인 게임 시스템에서 생성된 이전 버전의 모델, 및 다른 언어 감지 모델 및 언어 라이브러리의 임의의 조합일 수 있다. 어느 비특정 언어 감지기에 의한 언어 결정은 자동 레이블링을 위해 고려되는 신뢰 임계값을 충족해야 할 수 있다. 자동 레이블러(224)에 입력된 각각의 레이블이 없는 텍스트 데이터 스트링에 대해, 비특정 언어 감지기의 임계 수가 최소 신뢰 임계값으로 동일한 언어를 식별하는 경우, 언어 레이블은 텍스트 데이터와 연관된다. 예컨대, 구성 가능한 높은 수준(예컨대, 임계값)의 신뢰를 가진 모든 언어 감지기의 언어 예측 합의가 있는 경우, 레이블 및 텍스트는 트레이닝 데이터에 포함될 수 있다. 비특정 언어 감지기가 주어진 레이블이 없는 텍스트 데이터 스트링에 대해 신뢰 임계값 수준으로 동일한 언어를 감지하지 못하는 경우, 레이블이 없는 텍스트 데이터는 트레이닝 데이터에서 제외될 수 있다.
텍스트 데이터는 또한 상한 임계 길이보다 긴 길이의 단어 스트링을 포함할 수 있다. 예컨대, 공개적으로 사용 가능한 코퍼스는 매우 긴 문장과 단락을 포함할 수 있다. 확장 텍스트 컬렉션은 예컨대, 사전 레이블링된 확장 텍스트 데이터(208) 및 레이블이 없는 확장 텍스트 데이터(206)를 포함할 수 있다. 대조적으로, 온라인 게이밍 플랫폼에 대한 사용자 쿼리는 짧은 단어 스트링일 수 있다. 이러한 짧은 사용자 쿼리와 관련된 확장 텍스트 컬렉션을 만들기 위해, 확장 텍스트 컬렉션의 스트링은 전형적인 사용자 쿼리 스트링의 길이와 유사하도록 감소된 길이로 랜덤화될 수 있다. 확장 텍스트 데이터는 텍스트 분할기(230)에 의해 1 내지 5 단어를 갖는 스트링과 같은, 랜덤 단어 길이 스트링으로 분할될 수 있다.
레이블이 없는 축약 텍스트 데이터(204)와 같은, 축약 텍스트 데이터(204)는 1 내지 5 단어와 같은, 하한 임계 길이보다 길이가 더 짧은 단어 스트링을 가질 수 있다. 축약 텍스트 데이터의 예시는 게임 플랫폼에서 이전에 활용되었던 저장된 채팅 텍스트 및 이전 검색 쿼리를 포함할 수 있다. 짧은 텍스트 스트링은 텍스트 데이터를 자동 레이블링하거나 사전 레이블을 검증하기 위해, 감지하기 어려울 수 있다. 축약 텍스트 데이터는 텍스트 병합기(228)에 의해 종합될 수 있다. 축약 텍스트 데이터 스트링은 보다 쉬운 자동 레이블링을 허용하는 더 긴 스트링을 생성하도록, 공통 사용자에 의해 저작된 텍스트 데이터 또는 기타 공통 요소와 같은, 텍스트 스트링의 공유 특성에 따라 종합될 수 있다.
텍스트 데이터는 처리된 트레이닝 데이터(236)를 생성하도록 n-그램 분리기(232)에 의해 n-그램 문자로 나누어질 수 있다. n-그램 문자는 1개의 문자(유니그램(unigram)), 2개의 문자(바이그램(bigram)), 세 개의 문자(트라이그램(trigram)) 등과 같은, 지정된 수의 문자를 포함할 수 있다. 예컨대, 텍스트 데이터 단어 스트링 "A tycoon"은 "A", "A t", "A ty", "Ty" 및 "Tyc” 등으로 나누어질 수 있다. n-그램 문자는 머신 러닝 모델을 트레이닝하기 위한 특징으로 사용된다.
트레이닝 데이터는 각각의 특징을 나타내는 값, 예컨대 숫자를 포함하는 특징 벡터의 형식일 수 있다. n-그램 특징에 더하여, 다른 특징이 텍스트 데이터에서 추출될 수 있고, 트레이닝 데이터로 포함될 수 있으며, 이는 상이한 유니코드 블록, 유니코드 스크립트, 이들의 특정 조합 등에서 문자의 존재 또는 카운트와 같은, 특징 벡터의 형식일 수 있다. 예컨대, n-그램 특징 벡터는 입력 텍스트에 특정 n-그램이 존재함을 나타내는 1 및 0 형식의 값, 입력 텍스트에 나타난 n-그램의 횟수 카운트 등을 포함할 수 있다.
n-그램 형태의 처리된 트레이닝 데이터(236)는 메모리(234)에 저장될 수 있고, 머신 러닝 모델을 트레이닝하기 위한 특징으로서 트레이닝 모듈(240)에 공급될 수 있다. 예컨대, 3-그램 문자 시퀀스 "ity"가 프래그먼트 패턴(fragment pattern)으로 머신 러닝 모델에 입력될 수 있다.
일부 구현에서, 머신 러닝 모델을 트레이닝하기 위한 특징으로 사용된 n-그램 문자는 ASCII 문자, 한국어 문자, 일본어 문자, 러시아어 문자, 라틴 문자, 키릴 문자, 또는 유니코드 블록을 포함할 수 있다.
자동 레이블러(224), 레이블 검증기(226)에 의한 언어 레이블 및 신뢰할 수 있는 사전 레이블(trusted pre-label)과 같은, 처리된 텍스트 데이터와 연관된 언어 레이블은 머신 러닝 모델을 트레이닝할 목적으로 그라운드 트루스 레이블(ground truth label)로 활용될 수 있다.
머신 러닝 모델 트레이닝 예시
언어 분석 시스템을 위한 머신 러닝 모델을 트레이닝하는 예시적인 방법이 도 3의 흐름도에 도시된다. 일부 구현에서, 머신 러닝 모델을 트레이닝하는 기법은 도 1과 관련하여 설명된 n-그램 특징 및 n-그램의 상이한 문자 유형의 카운트를 사용하는 로지스틱 회귀 알고리즘과 같은 지도 분류 알고리즘(supervised classification algorithm)을 이용할 수 있다. 언어 전반에 걸쳐 그리고 언어 내에서 가장 공통의 n-그램이 특징으로 사용될 수 있다. 처리된 트레이닝 데이터 및 도 1과 관련하여 설명된 그라운드 트루스 언어 레이블과 같은 연관된 언어 레이블은 블록(300)에서 트레이닝을 위해 수신된다. 일부 구현에서, 트레이닝 데이터 및 연관된 언어 레이블을 처리하는 컴퓨팅 장치는 머신 러닝 모델의 트레이닝에 활용되는 컴퓨팅 장치와 분리될 수 있다. 일부 구현에서, 동일한 컴퓨팅 장치는 머신 러닝 모델의 트레이닝뿐만 아니라 트레이닝 데이터 및 연관된 언어 레이블의 처리를 수행하는데 사용된다.
블록(302)에서, 처리된 트레이닝 데이터는 지도 트레이닝을 위한 연관된 언어 레이블 없이 비트레이닝된 머신 러닝 모델에 공급될 수 있다. 일부 구현에서, 처리된 트레이닝 데이터는 비지도 트레이닝을 위한 연관된 언어 레이블과 함께 비트레이닝된 머신 러닝 모델에 공급될 수 있다. 일부 구현에서, 트레이닝 데이터는 특징 벡터의 형태이다. 트레이닝 데이터가 특정한 미리 정의된 요소를 충족하는 경우, 처리된 트레이닝 데이터가 트레이닝을 위해 선택될 수 있다. 예컨대, 언어 전반에 걸쳐 그리고/또는 특정 언어 내에서 가장 공통의 n-그램이 트레이닝을 위한 특징으로 사용될 수 있다.
블록(304)에서, 머신 러닝 모델은 여기에서 설명된 바와 같이, 트레이닝 텍스트 데이터를 분석하고, 출력 데이터로서 예측된 언어를 생성한다.
블록(306)에서, 현재 예측된 언어 레이블은 트레이닝 데이터의 전-처리로부터의 언어 레이블과 같은, 트레이닝 이전의 트레이닝 데이터와 연관되는 언어 레이블과 비교된다. 예측된 레이블과 이전에 연관된 레이블 간의 차이를 나타내는 불일치 정보가 생성된다. 결정 블록(308)에서, 불일치 정보가 예측된 언어 레이블의 정확도에 대해 미리 정의된 임계값을 충족하는지 결정될 수 있다. 임계값 정확도가 충족되지 않으면, 블록(310)에서 불일치 정보가 머신 러닝 모델에 피드백되어 머신 러닝 모델을 재트레이닝하고 현재 예측된 언어 레이블을 업데이트한다. 프로세스는 머신 러닝 모델이 예측된 레이블을 재결정하고 출력하기 위해 블록(304)으로 돌아간다. 불일치가 정확도 임계값을 충족할 때까지, 추가 트레이닝 데이터 세트를 사용하여 재트레이닝을 반복적으로 반복할 수 있다. 임계값 정확도가 충족되면, 블록(312)에서 프로세스는 머신 러닝 모델을 사용자 쿼리를 평가할 준비가 된 것으로 수락한다.
일부 구현에서, 하나보다 많은 머신 러닝 모델이 상이한 트레이닝 데이터로 트레이닝될 수 있다. 연관 데이터 및/또는 메타데이터를 포함하여, 트레이닝된 머신 러닝 모델을 저장하고 검색하기 위해 머신 러닝 리포지토리가 제공될 수 있다. 트레이닝된 머신 러닝 모델 중 하나 이상은 들어오는 사용자 쿼리를 평가하도록 선택될 수 있다. 머신 러닝 리포지토리는 언제든지 모델의 임의의 버전을 사용하거나, 평가 중인 텍스트의 상이한 부분에 상이한 모델을 사용함에 유연성을 가능하게 할 수 있다.
단계, 동작 또는 계산이 특정 순서로 제시될 수 있지만, 순서는 특정 구현에서 변경될 수 있다. 특정 구현에 따라, 단계의 다른 순서가 가능하다. 일부 특정 구현에서, 본 명세서에서 순차적으로 도시된 다수의 단계가 동시에 수행될 수 있다. 또한, 일부 구현은 도시된 단계 모두를 갖지 않을 수 있고, 그리고/또는 여기에서 도시된 것 대신에 또는 이에 추가하여 다른 단계를 가질 수 있다.
사용자 쿼리 응답 예시
머신 러닝 모델을 적용함으로써, 사용자 쿼리를 평가하기 위한 예시적인 방법이 도 4의 흐름도에 도시된다. 기법은 사용자 쿼리의 언어를 결정하고 사용자 쿼리에 응답하는 것을 포함한다.
블록(400)에서, 사용자 쿼리는 시스템에 의해 수신된다. 사용자 쿼리는 키보드를 통한 텍스트 입력과 같은 다양한 입력 방법을 통해 사용자에 의해 입력될 수 있다. 일부 구현에서, 사용자 쿼리는 사용자에 의한 마이크를 통한 것과 같은 음성 입력으로서 시작될 수 있다. 오디오로 입력된 사용자 쿼리는 텍스트로 변환될 수 있다. 입력은 사용자가 터치, 음성, 클릭, 탭, 타이핑, 제스처, 움직임(예컨대, 눈, 팔, 몸을 움직이는 것) 및/또는 다른 행동을 적용하는 것을 포함할 수 있다.
블록(402)에서 사용자 쿼리는 평가를 위해 처리될 수 있다. 예컨대, 사용자 쿼리는 n-그램으로 분리될 수 있으며, 이는 도 2와 관련하여 설명된 n-그램 분리기에 의한 트레이닝 데이터의 처리와 유사한 방식으로 수행될 수 있다.
블록(404)에서, 트레이닝된 머신 러닝 모델은 사용자 쿼리에 대한 후보 언어를 식별하기 위해 활용된다. 처리된 사용자 쿼리의 특정 n-그램 세그먼트가 공통이고, 그리고/또는 후보 언어로 식별되는 특정 언어에서 의미를 갖는 것이 머신 러닝 모델을 사용하여 결정될 수 있다. 예컨대, 사용자 쿼리의 3-그램 세그먼트인 "ity"는 영어와 프랑스어 언어 모두에서 공통적으로 발견될 수 있다.
일부 구현에서, 후보 언어는 사용자 쿼리의 언어가 트레이닝된 머신 러닝 모델에 의해 미식별된 경우, 알려지지 않은 언어 카테고리를 포함할 수 있다.
블록(406)에서, 머신 러닝 모델은 후보 언어 각각에 대한 신뢰 점수를 결정하기 위해 적용된다. 일부 구현에서, 신뢰 점수는 후보 언어에 대한 n-그램의 세그먼트의 관련성 정도를 나타낸다. 각 후보 언어에 대한 최소 임계값 점수는 머신 러닝 모델에 의해 반환될 수 있다. 최소 임계값을 초과하는 점수를 반환하는 임의의 언어는 가능한 후보 언어로 반환된다.
블록(408)에서, 개별적으로 명명된 후보 언어에 특정한 언어 데이터베이스는 처리되지 않은 형태의 사용자 쿼리의 단어와 일치하는 것을 찾기 위해 검색된다. 언어 특정 데이터베이스는 응답 일치와 연관된 게임 정보를 포함한다. 미리 정의된 검색 기준을 충족하는 후보 언어의 언어 특정 데이터베이스가 검색될 수 있다. 일부 구현에서, 후보 언어는 각각의 후보 점수에 따라 랭킹될 수 있다. 랭킹된 언어의 상위 지정된 수에 대한 언어 특정 데이터베이스는 검색될 수 있다. 일부 구현에서, 임계 신뢰 점수를 충족하는 후보 언어의 언어 특정 데이터베이스가 검색에 사용된다.
일부 구현에서, 다중 언어에 대한 점수를 포함하는 벡터가 생성되고, 점수에 대응하는 다중 언어 특정 데이터베이스가 사용자 쿼리에 기초하여 검색된다. 언어에 대한 신뢰 점수와 언어 각각의 사용자 쿼리에 대한 점수에 기초하는 통합 점수가 생성된다. 예컨대, 주어진 검색 쿼리에 대해, 머신 러닝 모델은 각 언어에 대한 점수를 출력할 수 있다. 임계값에 대한 신뢰 점수와 연관된 언어가 검색에 사용될 수 있다. 각각의 언어에 대한 신뢰 점수는 또한 각각의 언어 데이터베이스의 검색 쿼리에서 반환된 응답(예컨대, 온라인 게임)의 전체 점수화 및/또는 정렬(sorting)의 요소로 사용될 수 있다.
일부 구현에서, 하나 이상의 언어와 관련된 사용자 특정 정보를 포함하여, 신뢰 점수를 상승시키거나 하락시키기 위해 추가 고려 요소가 사용될 수 있다. 사용자 특정 정보는 사용자 프로필 정보, 예컨대, 사용자에 의해 지정된 언어 선호도를 포함할 수 있고, 사용자 활동 통계, 예컨대, 사용자에 의해 사용된 이전 언어 및/또는 사용자에 의해 플레이된 이전 게임의 언어를 나타내는 데이터를 포함할 수 있다. 이러한 추가 요소는 검색하기 위한 언어 특정 데이터베이스를 결정할 때 고려될 수 있다. 예컨대, 추가 고려 요소, 예컨대, 사용자 특정 정보에 의해 표시되는 특정 언어는 신뢰 점수에 추가되는 상승 값(boost value) 또는 신뢰 점수에서 차감하는 하락 값(demote value)을 가질 수 있다. 특정 언어의 결과적인 상승된 점수는 상승 값이 없는 신뢰 점수가 임계값 또는 랭킹 기준을 충족하지 못하는 경우에도, 신뢰 임계값 또는 랭킹에 도달할 수 있다. 하락된 점수는 하락 값이 없는 신뢰 점수가 임계값 또는 랭킹 기준을 충족하는 경우에도, 특정 언어를 제거할 수 있다. 검색 기준을 충족하는 상승된 점수를 갖는 언어의 언어 특정 데이터베이스가 검색될 수 있다.
일부 구현에서, 추가 고려 요소, 예컨대, 사용자 특정 정보는 신뢰 점수와 별개의 기준으로 고려된다. 예컨대, 사용자 프로필에 리스트화된 언어는 머신 러닝 모델에 의해 발견된 후보 언어 외의 후보 언어일 수 있다. 추가 고려 요소에 의해 표시된 언어에 대한 언어 특정 데이터베이스, 예컨대, 사용자 특정 정보 또한 검색될 수 있다.
후보 언어가 머신 러닝 모델에 의해 미식별된 언어인 경우, 미지의 언어와 연관된 언어 특정 데이터베이스는 응답 일치에 대해 검색될 수 있다. 일부 구현에서, 미지의 언어 데이터베이스는 결정된 쿼리 언어와 관련된 언어 특정 데이터베이스와 함께 디폴트로 검색된다.
일부 구현에서, 식별된 언어 특정 데이터베이스에서 검색하기 전에, 사용자 쿼리는 특정 후보 언어 특정 데이터베이스의 검색 요건 및 관행에 적응하도록 처리될 수 있다. 예컨대, 언어가 검색을 위해 (단어 "the" 및 "a"와 같은) 특정 단어를 인식하거나 고려하지 않는 경우, 단어는 해당 언어 특정 데이터베이스에서 검색 용어로 빠질 수 있다. 다른 예시에서, 단어 또는 문장 사이의 공백의 사용은 언어의 관례에 충족하도록 수정될 수 있다.
일부 단어는 다중 언어에서 유효한 단어일 수 있다. 예컨대, "pizza place"라는 키워드를 포함하는 사용자 쿼리는 영어 및 이탈리아어 언어 결과로 될 수 있다. 다른 예시에서, 용어 "lava"를 포함하는 사용자 쿼리는 적어도 영어, 크로아티아어, 체코어, 덴마크어, 네덜란드어, 독일어, 노르웨이어 및 스페인어 언어의 발견이 될 수 있다.
블록(410)에서 일치 점수는 언어 특정 데이터베이스의 각각의 응답 일치에 대해 결정된다. 일치 점수는 언어 특정 데이터베이스의 특정 언어로 저장된 사용자 쿼리에 대한 사용자 쿼리의 일치의 근접도를 표시한다. 예컨대, 일치 점수는 언어 특정 데이터베이스에서 정확한 일치를 갖는 쿼리의 단어 수 또는 백분율에 기초할 수 있다. 일부 구현에서, 일치 점수는 언어 특정 데이터베이스의 단어와 사용자 쿼리의 단어의 문자 일치를 나타낼 수 있다. 일부 구현에서, TF-IDF(Terms Frequency-Inverse Document Frequency) 방법 및 BoW 검색 함수(Bag of Words retrieval functions) (Best Matching(BM) 25)와 같은, 다른 표준 관련성 점수화 기법이 이용될 수 있다.
블록(412)에서 가중 점수는 언어의 일치 점수 및 신뢰 점수로부터 결정된다. 각각의 결과는 머신 러닝 모델로부터의 신뢰 점수와 언어 데이터베이스로부터의 일치 점수라는 연관된 두 점수를 가질 수 있으며, 이는 다양한 언어 데이터베이스에서 일치하는 다수의 점수의 조합일 수 있다. 일치 점수 또는 신뢰 점수 중 하나는 가중치를 두 점수에 연관시킴으로써, 다른 점수를 상승시키거나 하락시키는 데 사용될 수 있으며, 결과적으로 가중 점수가 된다.
일부 구현에서, 점수는 일치를 보다 정확하게 비교하기 위해 데이터베이스 간에 정규화될 수 있다. 예컨대, 특정 언어 데이터베이스의 일치 점수는 더 많은 검색 적중(search hit)을 포함하는 다른 언어 데이터베이스와 비교하여 데이터베이스에 더 적은 검색 적중 또는 더 적은 엔트리가 있기 때문에 높을 수 있다. 데이터베이스 내의 데이터를 정규화하는 것은 더 정확한 일치 점수를 제공할 수 있다.
블록(414)에서, 응답 일치는 가중 점수에 따라 랭킹된다. 추가 고려 요소가 랭킹을 상승시키거나 하락시키기 위해 적용될 수 있다. 블록(416)에서, 응답에서 제공될 검색 결과는 이하에 예시된 바와 같이 응답 일치의 랭킹에 적어도 부분적으로 기초하여 결정된다.
일부 구현에서, 사용자 특정 정보는 특정 쿼리 언어에 유리한 결정을 상승시키거나 특정 쿼리 언어에 불리한 결정을 하락시키도록 고려될 수 있다. 사용자 특정 정보의 일부 예시는 사용자 프로필 정보, 특정 언어의 게임에 대한 플레이어 참여의 양 및 플레이어가 특정 언어를 사용하는 온라인 게임과 상호작용하는 양, 예컨대 이전 사용자 쿼리, 채팅, 텍스트 등을 포함한다.
설명하면, 예컨대, 특정 검색 쿼리에 대한 신뢰 점수는 머신 러닝 모델 출력에 기초하여 프랑스에 대해 90% 그리고 스페인어에 대해 60%일 수 있다. 프랑스어 데이터베이스의 상위 3개 일치는 각각 500(F1), 450(F2) 및 200(F3)의 일치 점수를 갖고, 스페인어 데이터베이스의 상위 3개 일치는 각각 750(S1), 400(S2) 및 250(S3)의 일치 점수를 갖는다. 이 예시에서, 프랑스어 일치에 대한 가중 점수는 각각 450(F1), 405(F2) 및 180(F3)일 수 있다. 스페인어 일치에 대한 가중 점수는 450(S1), 240(S2), 72(S3)일 수 있다. 가중 점수에 따른 랭킹 순서는 F1 및 S1, F2, S2, F3 및 S3일 수 있다. 이 예시에서, 상위 4개의 가중 점수를 갖는 일치와 같은, 상위 미리 정의된 수의 일치를 검색 결과로서 제공하거나, 200과 같은 미리 정의된 값에 대한 가중 점수를 갖는 일치를 제공하기 위해, 랭킹 임계값이 제공될 수 있다. 어느 경우에나, 사용자에 대한 응답은 랭킹의 순서: F1 및 S1, F2 및 S2로 제공될 수 있다. 또한, 가중 점수를 상승시키거나 하락시키기 위해, 특히 F1 및 S1의 동점 가중 점수를 깨기 위해 다른 고려 요소가 적용될 수 있다. 예컨대, 사용자 프로필 또는 이전 사용자 경험이 프랑스어로 되어 있으면, F1이 S1보다 응답에서 먼저 랭킹될 수 있다. 일부 구현에서. 고려 요소, 예컨대 사용자 프로필과 일치하는 가장 높은 랭킹의 검색 결과만 응답에 제공될 수 있다.
블록(418)에서, 사용자 쿼리에 대한 검색 결과를 포함하는 응답이 사용자를 위해 표면화된다. 응답은 잠재적인 쿼리 언어에 대한 언어 특정 데이터베이스의 응답 일치에 의해 식별된 게임 정보에 기초할 수 있다. 예컨대, 식별된 게임 정보는 검색 결과 응답에 포함되거나, 그렇지 않으면 응답을 생성하기 위해 참조될 수 있다.
검색 결과 응답을 제공하기 위해, 게임 정보가 종합되고, 랭킹될 수 있다. 일부 사례에서, 동일한 검색 결과, 예컨대, 온라인 게임은 다수의 언어 데이터베이스에 나타날 수 있다. 중복 검색 결과를 얻은 경우, 시스템은 로직을 사용하여 결과를 중복 제거할 수 있다. 예컨대, 동일하거나 실질적으로 유사한 결과는 중복을 제거하도록 필터링될 수 있다. 일부 구현에서, 동일한 검색 결과가 다수의 언어 데이터베이스에서 발견되면, 시스템은 검색 결과 응답에서 클라이언트 장치에 제시될 가장 높은 가중치 점수를 갖는 언어 특정 데이터베이스로부터 중복 검색 결과, 예컨대 게임을 선택할 수 있다.
언어 특정 데이터베이스에 리스트화된 일부 게임 정보는 특정 언어로 신뢰 가능하게 카테고리화되지 않을 수 있다. 게임 정보는, 예컨대, 게임 개발자에 의해 수동으로 언어로 카테고리화되고, 정확하지 않을 수 있다. 특정 언어에 대한 게임 정보의 리스트는 게임 정보와 연관된 게임에 액세스하는 사용자에 대한 사용자 프로필 언어 및 게임 통계와 같은, 추가 언어 정보를 참조하여 검증될 수 있다. 일부 구현에서, 게임 데이터베이스는 게임의 플레이어의 사용자 프로필 언어 정보에 의해 표시되는 것과 같은, 게임의 특정 언어로 된 플레이어 트래픽의 양과 같은, 추가 언어 정보에 기초하여 언어에 대해 시딩(seeding)될 수 있다.
일부 구현에서, 게임 정보는 웹페이지 정보, 예컨대, 온라인 게임에 대한 URL(uniform resource locator) 또는 게임 애플리케이션을 시작하기 위한 정보와 같은 접속 정보를 포함할 수 있다. 예컨대, 검색 결과 응답은 아이콘과 같은, 하나 이상의 사용자 인터페이스 요소를 포함할 수 있다. 인터페이스 요소, 예컨대, 링크는 온라인 게임의 각각의 하나를 플레이하는 것과 연관된 디지털 정보, 예컨대, 웹페이지, 애플리케이션 등으로 이동하기 위해 클릭, 탭핑, 키보드 동작, 음성 명령 등과 같은 사용자 동작에 의해 활성화될 수 있다. 이러한 방식으로, 사용자는 온라인 게임에 접속하고, 게임을 플레이하거나 특정 플레이어 또는 플레이어 그룹, 게임에서 사용하기 위한 가상 아이템, 예컨대, 아바타 부품, 의복 및 액세서리, 및 게임 개발자 도구, 예컨대, 패키지, 데칼, 오디오 및 플러그인과 같은, 게임에 대한 설명 정보를 수신할 수 있다. 예컨대, 디지털 정보는 특정 게임을 플레이하는 것을 시작하기 위한 시작 웹페이지일 수 있다.
단계, 동작 또는 계산이 특정 순서로 제시될 수 있지만, 순서는 특정 구현에서 변경될 수 있다. 특정 구현에 따라, 단계의 다른 순서가 가능하다. 일부 특정 구현에서, 본 명세서에서 순차적으로 도시된 다수의 단계가 동시에 수행될 수 있다. 또한, 일부 구현은 도시된 단계 모두를 갖지 않을 수 있고, 그리고/또는 여기에서 도시된 것 대신에 또는 이에 추가하여 다른 단계를 가질 수 있다.
게임 서버 예시
도 5는 도 1에 도시된 게임 서버(130)와 같은, 온라인 게임 시스템의 게임 서버(500)의 예시적인 요소를 도시하는 블록도이다. 게임 서버(500)는 예컨대, 도 4와 관련하여 설명된 방법을 사용하여, 사용자 쿼리를 분석하고 검색 결과 응답을 제공할 수 있다. 구체적으로, 게임 서버(500)는 전체 시스템 아키텍처(도 6과 관련하여 더 상세하게 도시되고 설명됨)의 서브시스템일 수 있다.
게임 서버(500)의 다양한 요소가 예시 및 설명 목적을 위해 별개/분리 요소로 도 5에 도시된다. 일부 실시예에 따르면, 이러한 요소 중 일부를 단일 요소 또는 장치로 결합하는 것이 가능하지만, 온라인 게임 시스템의 다른 구현에서 이러한 요소는 클라우드 컴퓨팅 네트워크와 같은 네트워크를 통해 분산될 수 있다. 예컨대, 다중 서버 구현에서, 언어 분석 시스템(504)과 연관된 요소는 하나의 서버에 위치되고 동작될 수 있는 반면, 쿼리 평가기(506)와 연관된 요소는 제1 서버에서 원격인 다른 서버에 위치될 수 있다.
게임 서버(500)는 메모리(502), 프로세서(520) 및 I/O 인터페이스(530)를 포함할 수 있다. 메모리(502)는 언어 분석 시스템(504)(도 1을 참조하여 설명된 언어 분석 시스템(134)과 같은), 검색 엔진(506)(도 1을 참조하여 설명된 검색 엔진(138)과 같은), 데이터 스토리지(508), 컴퓨터 프로그램(들)(510), 및/또는 운영 체제(512)를 포함할 수 있다.
I/O 인터페이스(530)는 도 1과 관련하여 설명된 네트워크(122)와 같은 무선 네트워크를 통해, 서버와 같은 다른 시스템 및 장치와 게임 서버(500)를 인터페이스하는 것을 가능하게 하는 기능을 제공할 수 있다. 인터페이스된 장치는 게임 서버(500)의 일부로 포함될 수 있거나, 분리되고 게임 서버(500)와 통신할 수 있다. 일부 구현에서, 네트워크 통신 장치, 스토리지 장치(예컨대, 메모리 및/또는 데이터베이스), 및 입력/출력 장치는 I/O 인터페이스(530)를 통해 통신할 수 있다.
I/O 인터페이스(530)는 다른 입력 및 출력 장치에 인터페이스할 수 있다. 일부 구현에서, I/O 인터페이스(530)는 입력 장치(키보드, 포인팅 장치, 터치스크린, 마이크, 카메라, 스캐너, 센서 등) 및/또는 출력 장치(디스플레이 장치, 스피커 장치, 프린터, 모터 등)와 같은 인터페이스 장치에 연결될 수 있다. 일부 구현은 사운드를 캡처하기 위한 마이크(예컨대, 캡처된 이미지, 음성 명령 등의 일부로), 사운드를 출력하기 위한 오디오 스피커 장치, 또는 다른 입력 및 출력 장치를 제공할 수 있다.
프로세서(520)(도 1과 관련하여 설명된 프로세서(140)와 같은)는 메모리(502) 또는 데이터 저장소(508)에 저장된 명령어를 포함하는 게임 서버(500) 내 실행을 위한 명령어를 처리할 수 있다. 프로세서(520)는 컴퓨팅 장치 컴포넌트, 예컨대 애플리케이션, 인터페이스를 통한 무선 또는 유선 통신 등을 조정할 수 있다. 일부 구현에서, 다중 프로세서 및 버스가 사용될 수 있다.
프로세서(520)는 분리 및 다중 아날로그 디지털 프로세서를 포함하는 칩의 칩셋으로 구현될 수 있다. 프로세서는 또한 다양한 아키텍처를 사용하여 구현될 수 있다. 예컨대, 프로세서(520)는 CISC(complex instruction set computer) 프로세서, RISC(reduced instruction set computer) 프로세서 또는 MISC(minimal instruction set computer) 프로세서일 수 있다.
"프로세서"는 데이터, 신호 또는 다른 정보를 처리하는 임의의 적절한 하드웨어 및/또는 소프트웨어 시스템, 메커니즘 또는 컴포넌트를 포함한다. 프로세서는 범용 중앙 처리 유닛, 다중 처리 유닛, 기능을 달성하기 위한 전용 회로 또는 다른 시스템이 있는 시스템을 포함할 수 있다. 처리는 지리적 위치에 제한되거나 시간적 제한이 있을 필요가 없다. 예컨대, 프로세서는 "실시간", "오프라인", "배치 모드" 등으로 기능을 수행할 수 있다. 처리의 일부는 서로 상이한(또는 동일한) 처리 시스템에 의해, 상이한 시간 및 상이한 위치에서 수행될 수 있다.
메모리(502)는 게임 서버(500) 내에 정보를 저장한다. 메모리(502)는 임의의 적절한 데이터 스토리지, 메모리 및/또는 RAM(random-access memory), ROM(read-only memory), 자기 저장 장치(하드 디스크 드라이브 등), 플래시, 광 저장 장치(CD, DVD 등), 자기 또는 광 디스크, 또는 프로세서에 의한 실행을 위한 명령어(예컨대, 프로그램 또는 소프트웨어 명령어)를 저장하기에 적합한 다른 유형 매체(tangible media)와 같은 전자 저장 장치를 포함하는 비일시적 컴퓨터 판독 가능 저장 매체일 수 있다. 예컨대, 하드웨어 저장 장치와 같은 유형 매체는 실행 가능한 명령어를 포함할 수 있는, 제어 로직을 저장하는 데 사용될 수 있다. 명령어는 또한 예컨대, 서버(예컨대, 분산 시스템 및/또는 클라우드 컴퓨팅 시스템)에서 전달되는 SaaS(software as a service)의 형태로 전자 신호에 포함되어 제공될 수 있다.
데이터 저장소(508)는 트레이닝 데이터, 전-처리된 텍스트 데이터, 애플리케이션, 및 다른 데이터를 유지할 수 있다. 데이터 저장소는 또한 원본 이미지뿐만 아니라 이미지의 다양한 편집 버전을 저장하는 데에도 이용될 수 있다. 적어도 정보의 일부는 또한 게임 서버(500) 내의 디스크 드라이브 또는 다른 컴퓨터 판독 가능한 저장 장치(도시되지 않음)에 저장될 수 있다. 이러한 저장 장치는 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 또는 테이프 장치, 디지털 카드, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 장치, 또는 장치의 어레이를 포함한다. 일부 구현에서, 데이터 스토리지(508)는 트레이닝된 머신 러닝 모델을 종합, 업데이트, 관리 및 검색하기 위한 머신 러닝 리포지토리(514)를 포함한다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드라고도 지칭되는 하나 이상의 컴퓨터 프로그램(510)은 또한 실행될 때 여기에 설명된 것과 같은 하나 이상의 방법을 수행하는 명령어를 포함할 수 있다. 컴퓨터 프로그램은 컴퓨터 또는 기계 판독 가능 매체, 예컨대, 메모리(502), 프로세서(520)의 메모리 또는 저장 장치와 같은 정보 캐리어에 유형적으로 구현될 수 있다. 기계 판독 가능 매체는 프로그래밍 가능한 프로세서에 기계 명령어 또는 데이터를 제공하는 데 사용되는 임의의 컴퓨터 프로그램 제품, 기구 또는 장치이다.
임의의 적절한 프로그래밍 언어 및 프로그래밍 기술이 특정 실시예의 루틴을 구현하는 데 사용될 수 있다. 절차적 또는 객체 지향과 같은 상이한 프로그래밍 기법이 이용될 수 있다. 루틴은 단일 처리 장치 또는 다중 프로세서에서 실행할 수 있다. 단계, 동작 또는 계산이 특정 순서로 제시될 수 있지만, 순서는 상이한 특정 실시예에서 변경될 수 있다. 일부 특정 실시예에서, 본 명세서에서 순차적으로 도시된 다수의 단계는 동시에 수행될 수 있다. 다수의 구현이 설명되었다. 조건부 언어로 설명된 기능은 선택적인 구현을 설명할 수 있다. 본 개시에서 설명된 기능 블록, 방법, 장치 및 시스템은 당업자에게 공지된 바와 같이 시스템, 장치 및 기능 블록의 상이한 조합으로 통합되거나 분할될 수 있다.
설명은 그 특정 구현과 관련하여 설명되었지만, 이러한 특정 구현은 단지 예시적이며, 제한적이지 않다. 예시에 설명된 개념은 다른 예시 및 구현에 적용될 수 있다. 따라서, 다양한 수정이 본 개시의 정신 및 범위를 벗어나지 않고 이루어질 수 있고, 다른 구현은 다음 청구범위의 범위 내에 있다.
여기에서 설명된 방법은 컴퓨터에서 실행될 수 있는 컴퓨터 프로그램 명령어 또는 코드에 의해 구현될 수 있다. 일부 구현에서, 코드는 하나 이상의 디지털 프로세서(예컨대, 마이크로프로세서 또는 다른 처리 회로)에 의해 구현될 수 있고, 반도체 또는 고체 상태 메모리, 자기 테이프, 이동식 컴퓨터 디스켓, RAM(random access memory), ROM(read-only memory), 플래시 메모리, 강자성 디스크, 광 디스크, 고체 상태 메모리 드라이브 등을 포함하는, 자기, 광학, 전자기 또는 반도체 저장 매체와 같은, 비일시적 컴퓨터 판독 가능 매체(예컨대, 저장 매체)를 포함하는 컴퓨터 프로그램 제품에 저장될 수 있다. 프로그램 명령어는 또한 예컨대 서버(예컨대, 분산 시스템 및/또는 클라우드 컴퓨팅 시스템)에서 전달되는 SaaS(software as a service)의 형태로, 전자 신호에 포함되어 제공될 수 있다. 예컨대, 서버(예컨대, 분산 시스템 및/또는 클라우드 컴퓨팅 시스템).
대안적으로, 하나 이상의 방법은 하드웨어(논리 게이트 등), 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 예시적인 하드웨어는 프로그래밍 가능 프로세서(예컨대, FPGA(field-programmable gate array), 복합 프로그래밍 가능 논리 장치), 범용 프로세서, GPU(graphics processing unit), ASIC(application specific integrated circuits) 등일 수 있다. 하나 이상의 방법은 시스템에서 실행되는 애플리케이션의 일부 또는 컴포넌트로서, 또는 다른 애플리케이션(510) 및 운영 체제(512)와 함께 실행되는 애플리케이션 또는 소프트웨어로서 수행될 수 있다.
시스템 아키텍처 예시
도 6에서, 예시적인 게임 시스템 아키텍처(600)(여기에서 "시스템"이라고도 지칭됨)는 게임 서버(602)(예컨대, 도 5와 관련하여 설명된 게임 서버(500)), 제1 클라이언트 컴퓨팅 장치 A(610), 및 적어도 하나의 다른 클라이언트 컴퓨팅 장치 N(616)(여기에서, "N"은 임의의 수의 하나 이상의 클라이언트 장치를 나타냄)를 포함한다.
게임 서버(602)는 언어 분석 시스템(604)(도 1과 관련하여 설명된 언어 분석 시스템(134)과 같은) 및 하나 이상의 온라인 게임(606)을 포함할 수 있다. 게임 서버(602)는 또한 검색 결과 응답을 클라이언트 장치(610, 616)에 제공하고, 온라인 게임(606)에 대한 클라이언트 액세스를 관리하기 위한 게임 관리 모듈(608)을 포함할 수 있다. 게임 서버(602)는 스토리지(624)에 동작적으로 결합되거나, 그 외에는 스토리지(624)와 통신할 수 있다. 시스템 아키텍처(600)는 하나의 가능한 구현의 예시를 위해 제공된다. 다른 구현에서, 게임 시스템 아키텍처(600)는 도 6에 도시된 것과 동일하거나 상이한 방식으로 구성된 동일하거나, 더 적거나, 더 많거나, 상이한 요소들을 포함할 수 있다.
통신 네트워크(622)(도 1과 관련하여 설명된 네트워크(122)와 같은)는 게임 서버(602)와 클라이언트 장치(610, 616) 간, 및/또는 게임 시스템 아키텍처(600)의 다른 요소들 간의 통신을 위해 사용될 수 있다. 네트워크(622)는 공용 네트워크(예컨대, 인터넷), 사설 네트워크(예컨대, LAN(local area network) 또는 WAN(wide area network)), 유선 네트워크(예컨대, 이더넷 네트워크), 무선 네트워크(예컨대, 802.11 네트워크, Wi-Fi 네트워크 또는 WLAN(wireless LAN)), 셀룰러 네트워크(예컨대, LTE(long term evolution) 네트워크), 라우터, 허브, 스위치, 서버 컴퓨터 또는 이들의 조합을 포함할 수 있다.
개인용 컴퓨터, 모바일 장치 또는 비디오 게임 콘솔과 같은 클라이언트 장치(610, 616)는 사용자로부터 사용자 쿼리를 입력하고 게임 서버(602)로부터 쿼리 결과를 수신하기 위한 하나 이상의 입력/출력 장치(614, 618)(예컨대, 오디오/비디오 입력 /출력 장치) 및 게임 애플리케이션(612, 620)을 포함할 수 있다. 입력/출력 장치(614, 618)는 다른 입력 및 출력 장치와 인터페이스할 수 있다. 일부 구현에서, 입력/출력 장치(614, 618)는 입력 장치(키보드, 포인팅 장치, 터치스크린, 마이크, 카메라, 스캐너, 센서 등) 및/또는 출력 장치(디스플레이 장치, 스피커 장치, 프린터, 헤드폰 등)와 같은 인터페이스 장치에 연결할 수 있다. 일부 구현은 소리를 캡처하기 위한 마이크(예컨대, 음성 명령), 소리를 출력하기 위한 오디오 스피커 장치(예컨대, 검색 결과 응답) 또는 다른 입력 및 출력 장치를 제공할 수 있다.
게임 시스템 아키텍처(600)는 하나 이상의 스토리지 장치(624)를 더 포함할 수 있다. 스토리지 장치(624)는 예컨대, 게임 서버(602) 내에 위치되거나 네트워크(622)를 통해 게임 서버(602)에 통신적으로 결합된 저장 장치일 수 있다. 스토리지 장치(624)는 예컨대, 트레이닝 텍스트 데이터, 미처리된 텍스트 데이터, 사용자 특정 정보, 예컨대, 사용자 프로필 정보, 머신 러닝 모델 리포지토리(예컨대, 도 5의 514) 내에서와 같은 트레이닝된 머신 러닝 모델, 언어 특정 데이터베이스를 저장할 수 있다.
일 구현에서, 스토리지 장치(624)는 비일시적 컴퓨터 판독 가능 메모리(예컨대, 랜덤 액세스 메모리), 캐시, 드라이브(예컨대, 하드 드라이브), 플래시 드라이브, 데이터베이스 시스템, 또는 데이터 및 기타 콘텐츠를 저장할 수 있는 다른 유형의 구성 요소 또는 장치일 수 있다. 스토리지 장치(624)는 또한 다중 컴퓨팅 장치(예컨대, 다중 서버 컴퓨터)에 걸쳐 있을 수 있는 다중 저장 컴포넌트(예컨대, 다중 드라이브 또는 다중 데이터베이스)를 포함할 수 있다.
일 구현에서, 스토리지 장치(624)는 비일시적 컴퓨터 판독 가능 메모리(예컨대, 랜덤 액세스 메모리), 캐시, 드라이브(예컨대, 하드 드라이브), 플래시 드라이브, 데이터베이스 시스템, 또는 데이터 및 기타 콘텐츠를 저장할 수 있는 다른 유형의 구성 요소 또는 장치일 수 있다. 스토리지 장치(624)는 또한 다중 컴퓨팅 장치(예컨대, 다중 서버 컴퓨터)에 걸쳐 있을 수 있는 다중 저장 컴포넌트(예컨대, 다중 드라이브 또는 다중 데이터베이스)를 포함할 수 있다.
일부 구현에서, 게임 서버(602)는 하나 이상의 컴퓨팅 장치(예컨대, 클라우드 컴퓨팅 시스템, 랙마운트 서버, 서버 컴퓨터, 물리적 서버의 클러스터 등)를 갖는 서버를 포함할 수 있다. 일부 구현에서, 게임 서버(602)는 온라인 게이밍 플랫폼(402)에 포함될 수 있고, 독립적인 시스템이거나, 다른 시스템 또는 플랫폼의 일부일 수 있다.
일부 구현에서, 게임 서버(602)는 게임 서버(602)에서 동작을 수행하고 게임 서버(602)에 대한 액세스를 사용자에게 제공하는 데 사용될 수 있는, 하나 이상의 컴퓨팅 장치(랙마운트 서버, 라우터 컴퓨터, 서버 컴퓨터, 개인용 컴퓨터, 메인프레임 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 데스크톱 컴퓨터 등), 데이터 저장소(예컨대, 하드 디스크, 메모리, 데이터베이스), 네트워크, 소프트웨어 컴포넌트 및/또는 하드웨어 컴포넌트를 포함할 수 있다. 게임 서버(602)는 또한 게임 서버(602)에 의해 제공되는 콘텐츠에 대한 액세스를 사용자에게 제공하는 데 사용될 수 있는 웹사이트(예컨대, 웹페이지) 또는 애플리케이션 백엔드 소프트웨어를 포함할 수 있다. 예컨대, 사용자는 클라이언트 장치 A(610) 상의 게임 애플리케이션(612) 및 클라이언트 장치 N(616) 상의 게임 애플리케이션(620)을 사용하는 게임 서버(602)를 액세스할 수 있다.
일부 구현에서, 게임 서버(602)는 사용자 간의 연결을 제공하는 소셜 네트워크의 유형 또는 사용자(예컨대, 최종 사용자 또는 소비자)가 온라인 게이밍 플랫폼(402) 상에서 다른 사용자와 통신할 수 있게 허용하는 사용자 생성 콘텐츠 시스템의 유형일 수 있고, 여기에서 통신은 음성 채팅(예컨대, 동기 및/또는 비동기 음성 통신), 비디오 채팅(예컨대, 동기 및/또는 비동기 비디오 통신), 또는 텍스트 채팅(예컨대, 동기 및/또는 비동기 텍스트-기반 통신)을 포함할 수 있다.
본 개시의 일부 구현에서, "사용자"는 단일 개인으로 표현될 수 있다. 그러나, 본 개시의 다른 구현은 "사용자"가 사용자 세트 또는 자동화된 소스에 의해 제어되는 엔티티인 것을 포함한다. 예컨대, 사용자 생성 콘텐츠 시스템에서 커뮤니티 또는 그룹으로 연합된 개별 사용자의 집합은 "사용자"로 간주될 수 있다.
일부 구현에서, 온라인 게이밍 플랫폼(602)은 가상 게이밍 플랫폼일 수 있다. 예컨대, 게이밍 플랫폼은 네트워크(622)를 통해 클라이언트 장치(610, 616)를 사용하여 게임에 액세스하거나 상호작용할 수 있는 사용자의 커뮤니티에 싱글 플레이어 또는 멀티플레이어 게임을 제공할 수 있다. 일부 구현에서, 게임(여기에서 "비디오 게임", "온라인 게임" 또는 "가상 게임" 등으로도 지칭됨)은 예컨대, 2차원(2D) 게임, 3차원(3D) 게임(예컨대, 3D 사용자 생성 게임), 가상 현실(VR) 게임, 또는 증강 현실(AR) 게임일 수 있다. 일부 구현에서, 사용자는 다른 사용자와 게임플레이에 참여할 수 있다. 일부 구현에서, 게임은 게임의 다른 사용자와 실시간으로 플레이될 수 있다.
일부 구현에서, 게임플레이는 게임(예컨대, 게임(606)) 내에서 클라이언트 장치(예컨대, 클라이언트 장치(610 및/또는 616))를 사용하는 한 명 이상의 플레이어의 상호작용 또는 클라이언트 장치(610, 616)의 디스플레이 또는 다른 사용자 인터페이스(예컨대, 사용자 인터페이스(614, 618)) 상의 상호작용의 표현을 지칭할 수 있다.
일부 구현에서, 게임(606)은 게임 콘텐츠(예컨대, 디지털 미디어 아이템)를 엔티티에 제시하도록 구성된 소프트웨어, 펌웨어 또는 하드웨어를 사용하여 실행되거나 로드될 수 있는 전자 파일을 포함할 수 있다. 일부 구현에서, 게임 애플리케이션(612, 620)은 실행될 수 있고, 게임(들)(606)은 게임 서버(602)와 관련하여 렌더링될 수 있다.
위에서 사용된 바와 같은, "일부 구현" 또는 "일부 사례"에 대한 참조는 구현 또는 사례와 관련하여 설명된 특정 특징, 구조 또는 특성이 설명의 적어도 하나의 구현에 포함될 수 있음을 의미한다. 상기 여러 곳에서 "일부 구현에서"라는 구절의 출현은 반드시 동일한 구현을 지칭하는 것은 아니다.
상기 상세한 설명에서, 그 일부를 형성하는 첨부 도면에 대한 참조가 이루어진다. 도면에서 유사한 기호는 문맥이 달리 지시하지 않는 한, 전형적으로 유사한 컴포넌트를 식별한다. 상세한 설명, 도면 및 청구범위에 설명된 예시적인 구현은 제한하도록 의도되지 않는다. 여기에서 제시된 대상의 정신 또는 범위를 벗어나지 않고, 다른 구현이 활용될 수 있고 다른 변경이 이루어질 수 있다. 여기에서 일반적으로 설명되고 도면에 예시된 본 개시의 양태는 매우 다양한 상이한 구성으로 배열, 대체, 결합, 분리 및 설계될 수 있으며, 이들 모두는 여기에서 고려된다.
상기 설명에서, 설명의 목적으로, 명세서의 완전한 이해를 제공하기 위해 다수의 특정 세부사항이 제시된다. 그러나, 이러한 특정 세부사항 없이 본 개시가 실시될 수 있다는 것이 당업자에게 명백할 것이다. 일부 사례에서, 설명을 모호하게 하는 것을 피하기 위해 구조와 장치가 블록도 형식으로 도시된다. 예컨대, 구현은 주로 특정 하드웨어와 관련하여 위에서 설명될 수 있다. 그러나, 구현은 데이터 및 명령을 수신할 수 있는 모든 유형의 컴퓨팅 장치 및 서비스를 제공하는 모든 주변 장치에 적용될 수 있다.

Claims (20)

  1. 온라인 게임을 위한 사용자 쿼리에 대한 언어 기반 검색 방법에 있어서,
    상기 사용자 쿼리를 수신하는 단계;
    상기 사용자 쿼리를 복수의 n-그램(n-gram)으로 분리하는 단계;
    머신 러닝 모델을 상기 사용자 쿼리의 상기 복수의 n-그램에 적용함으로써, 상기 사용자 쿼리의 적어도 하나의 후보 언어를 식별하는 단계 - 상기 머신 러닝 모델은 적어도 하나의 다국어 텍스트 코퍼스(multilingual text corpus) 및 게임 관련 데이터로 트레이닝됨 -;
    상기 머신 러닝 모델을 적용함으로써, 상기 적어도 하나의 후보 언어 각각에 대한 각각의 신뢰 점수를 결정하는 단계;
    신뢰 임계값을 충족하는 신뢰 점수를 갖는 상기 적어도 하나의 후보 언어 각각과 연관된 언어 특정 게임 데이터베이스에서 상기 사용자 쿼리에 대한 하나 이상의 응답 일치(response match)를 식별하는 단계;
    상기 하나 이상의 응답 일치 각각에 대한 각각의 일치 점수를 결정하는 단계; 및
    적어도 각각의 상기 신뢰 점수 및 각각의 상기 일치 점수의 각각의 가중 점수에 적어도 부분적으로 기초하여, 특정 응답 일치와 연관된 게임 정보를 포함하는 검색 결과의 응답을 제공하는 단계
    를 포함하는 언어 기반 검색 방법.
  2. 제1항에 있어서,
    상기 응답을 제공하는 단계는 각각의 상기 가중 점수에 따라 상기 응답 일치를 랭킹하는 단계를 포함하고, 상기 언어 기반 검색 방법은, 랭킹 임계값을 충족하는 상기 하나 이상의 응답 일치에 적어도 부분적으로 기초하여, 상기 검색 결과를 생성하는 단계를 더 포함하는 언어 기반 검색 방법.
  3. 제2항에 있어서,
    상기 검색 결과를 생성하는 단계는 상기 사용자 쿼리의 사용자와 연관된 사용자 프로필 정보에 더 기초하는 것인, 언어 기반 검색 방법.
  4. 제1항에 있어서,
    상기 게임 정보는 온라인 게임에 대한 접속 정보를 포함하고, 상기 응답은 사용자에 의해 활성화될 때, 상기 온라인 게임의 각각의 하나를 플레이하는 것과 연관된 디지털 정보로 이동하는 하나 이상의 사용자 인터페이스 요소를 포함하는 것인, 언어 기반 검색 방법.
  5. 제1항에 있어서,
    각각의 상기 신뢰 점수를 결정하는 단계는 상기 머신 러닝 모델에 의해, 상기 적어도 하나의 후보 언어와 관련되는 상기 복수의 n-그램의 하나 이상의 세그먼트를 결정하는 단계를 포함하는, 언어 기반 검색 방법.
  6. 제1항에 있어서,
    상기 적어도 하나의 후보 언어는 미식별된 언어를 포함하고, 상기 언어 특정 게임 데이터베이스는 미지의 언어와 연관된 데이터베이스를 포함하는 것인, 언어 기반 검색 방법.
  7. 온라인 게임을 위한 사용자 쿼리의 후보 언어를 식별하도록 머신 러닝 모델을 트레이닝하는 방법으로서,
    제1 텍스트 데이터, 상기 제1 텍스트 데이터에 대한 연관된 언어 레이블 및 언어에 대해 레이블이 없는 제2 텍스트 데이터를 포함하는 텍스트 데이터를 수신하는 단계;
    적어도 하나의 언어를 식별하는 복수의 비특정 언어 감지기의 임계 수에 기초하여, 상기 제2 텍스트 데이터에 대한 연관된 언어 레이블을 결정하는 단계;
    상기 텍스트 데이터를 n-그램으로 분리함으로써, 트레이닝 텍스트 데이터를 생성하는 단계; 및
    상기 사용자 쿼리의 적어도 하나의 후보 언어 식별자 및 각각의 언어 신뢰 점수를 생성하도록 상기 머신 러닝 모델을 트레이닝하는 단계
    를 포함하고,
    상기 트레이닝하는 단계는:
    상기 머신 러닝 모델에 의해 현재 예측된 언어 레이블을 획득하기 위해 상기 연관된 언어 레이블 없이 상기 트레이닝 텍스트 데이터로 트레이닝하는 단계; 및
    상기 현재 예측된 언어 레이블을 업데이트하기 위해, 상기 현재 예측된 언어 레이블과 상기 연관된 언어 레이블 간의 불일치 정보로 상기 머신 러닝 모델을 재트레이닝하는 단계를 포함하는, 트레이닝하는 방법.
  8. 제7항에 있어서,
    상기 트레이닝하는 단계는 상기 불일치 정보가 정확도의 임계값을 충족할 때까지, 상기 재트레이닝하는 단계를 반복적으로 반복하는 단계를 더 포함하는, 트레이닝하는 방법.
  9. 제7항에 있어서,
    상기 트레이닝 텍스트 데이터를 생성하는 단계는 상한 임계 길이보다 긴 길이를 갖는 상기 텍스트 데이터의 단어 스트링을 미리 결정된 길이의 랜덤 단어 길이로 분할하는 단계를 더 포함하는, 트레이닝하는 방법.
  10. 제7항에 있어서,
    상기 트레이닝 텍스트 데이터를 생성하는 단계는 단어의 확장된 스트링을 생성하도록, 하한 임계 길이보다 짧은 길이를 갖는 텍스트 데이터의 작업 스트링을 관련 텍스트와 종합하는 단계를 더 포함하는, 트레이닝하는 방법.
  11. 제7항에 있어서,
    상기 트레이닝 텍스트 데이터를 생성하는 단계는 언어 전반에 걸쳐 그리고 언어 내에서 공통성 임계값을 충족하는 상기 n-그램을 결정하는 것에 의하는, 트레이닝하는 방법.
  12. 제7항에 있어서,
    상기 n-그램은 하나의 문자, 두 개의 문자, 또는 세 개의 문자 중 적어도 하나를 포함하는 것인, 트레이닝하는 방법.
  13. 제7항에 있어서,
    상기 텍스트 데이터는 게임 제목, 채팅 텍스트, 게임 소스 데이터 또는 속어 중 적어도 하나를 포함하는 게임 관련 데이터의 적어도 하나의 컬렉션을 포함하는 것인, 트레이닝하는 방법.
  14. 온라인 게임을 위한 사용자 쿼리의 언어를 감지하기 위한 컴퓨팅 장치를 포함하는 시스템으로서, 상기 컴퓨팅 장치는:
    하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의한 실행을 위해 하나 이상의 유형 매체(tangible media)에 인코딩되고, 실행될 때 동작을 수행하도록 동작 가능한 로직을 포함하고, 상기 동작은:
    상기 사용자 쿼리를 수신하는 것;
    상기 사용자 쿼리를 복수의 n-그램으로 분리하는 것;
    머신 러닝 모델을 상기 복수의 n-그램에 적용함으로써, 상기 사용자 쿼리의 적어도 하나의 후보 언어를 식별하는 것 - 상기 머신 러닝 모델은 적어도 하나의 다국어 텍스트 코퍼스 및 게임 관련 데이터로 트레이닝됨 -;
    상기 머신 러닝 모델을 적용함으로써, 상기 적어도 하나의 후보 언어 각각에 대한 각각의 신뢰 점수를 결정하는 것;
    신뢰 임계값을 충족하는 신뢰 점수를 갖는 상기 적어도 하나의 후보 언어 각각과 연관된 언어 특정 게임 데이터베이스에서 상기 사용자 쿼리에 대한 하나 이상의 응답 일치를 찾는 것;
    상기 하나 이상의 응답 일치 각각에 대한 각각의 일치 점수를 결정하는 것; 및
    적어도 각각의 상기 신뢰 점수 및 각각의 상기 일치 점수의 각각의 가중 점수에 적어도 부분적으로 기초하여, 특정 응답 일치와 연관된 게임 정보를 포함하는 검색 결과를 제공하는 것을 포함하는, 시스템.
  15. 제14항에 있어서,
    상기 응답을 제공하는 것은 각각의 상기 가중 점수에 따라 상기 응답 일치를 랭킹하는 것을 포함하고, 상기 동작은: 랭킹 임계값을 충족하는 상기 하나 이상의 응답 일치에 적어도 부분적으로 기초하여, 상기 검색 결과를 생성하는 것을 더 포함하는, 시스템.
  16. 제15항에 있어서,
    상기 랭킹 임계값은 미리 정의된 값에 대한 가중 점수를 갖는 응답 일치 또는 응답 일치의 상위 미리 정의된 수 중 적어도 하나를 포함하는 것인, 시스템.
  17. 제15항에 있어서,
    상기 검색 결과를 생성하는 것은 상기 사용자 쿼리의 사용자와 연관된 사용자 프로필 정보에 더 기초하는 것인, 시스템.
  18. 제14항에 있어서,
    상기 게임 정보는 온라인 게임에 대한 접속 정보를 포함하고, 상기 응답은 상기 온라인 게임의 각각의 하나를 플레이하는 것과 연관된 디지털로 이동하기 위한 디스플레이 요소를 포함하는 것인, 시스템.
  19. 제14항에 있어서,
    각각의 상기 신뢰 점수를 결정하는 것은 상기 머신 러닝 모델에 의해, 상기 적어도 하나의 후보 언어와 관련되는 상기 복수의 n-그램의 하나 이상의 세그먼트를 결정하는 것을 포함하는, 시스템.
  20. 제14항에 있어서,
    상기 적어도 하나의 후보 언어는 미식별된 언어를 포함하고, 상기 언어 특정 게임 데이터베이스는 미지의 언어와 연관된 데이터베이스를 포함하는 것인, 시스템.
KR1020227036670A 2020-04-24 2021-04-14 온라인 게이밍을 위한 사용자 입력 텍스트의 언어 감지 KR102569760B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/858,467 2020-04-24
US16/858,467 US11475054B2 (en) 2020-04-24 2020-04-24 Language detection of user input text for online gaming
PCT/US2021/027285 WO2021216337A1 (en) 2020-04-24 2021-04-14 Language detection of user input text for online gaming

Publications (2)

Publication Number Publication Date
KR20220149617A true KR20220149617A (ko) 2022-11-08
KR102569760B1 KR102569760B1 (ko) 2023-08-23

Family

ID=78222442

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227036670A KR102569760B1 (ko) 2020-04-24 2021-04-14 온라인 게이밍을 위한 사용자 입력 텍스트의 언어 감지

Country Status (6)

Country Link
US (2) US11475054B2 (ko)
EP (1) EP4139768A4 (ko)
JP (1) JP2023523004A (ko)
KR (1) KR102569760B1 (ko)
CN (1) CN115380260A (ko)
WO (1) WO2021216337A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11475054B2 (en) * 2020-04-24 2022-10-18 Roblox Corporation Language detection of user input text for online gaming
US11816162B2 (en) * 2020-07-31 2023-11-14 Adobe Inc. Methods and systems for search query language identification
EP3979121A1 (en) * 2020-10-01 2022-04-06 Naver Corporation Method and system for controlling distributions of attributes in language models for text generation
US11853712B2 (en) * 2021-06-07 2023-12-26 International Business Machines Corporation Conversational AI with multi-lingual human chatlogs
WO2024075086A1 (en) * 2022-10-07 2024-04-11 Open Text Corporation System and method for hybrid multilingual search indexing
CN116303974B (zh) * 2023-05-04 2023-08-01 之江实验室 基于目标生成式回应语言模型的回应方法和装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980080220A (ko) * 1997-03-14 1998-11-25 다테이시 요시오 언어 식별 장치, 언어 식별 방법 및 언어 식별의 프로그램을 기록한 기록매체
JP2005063419A (ja) * 2003-07-31 2005-03-10 Ricoh Co Ltd 言語識別装置、プログラム及び記録媒体
KR20100039968A (ko) * 2008-10-09 2010-04-19 주식회사 아이네크 자동 언어 번역을 통한 다국어의 전거 표목에 대한 온톨로지 기반 의미 검색 시스템 및 방법
US20120095748A1 (en) * 2010-10-14 2012-04-19 Microsoft Corporation Language Identification in Multilingual Text
US20180189259A1 (en) 2016-12-30 2018-07-05 Facebook, Inc. Identifying multiple languages in a content item
KR20190125863A (ko) * 2018-04-30 2019-11-07 삼성전자주식회사 다중언어 번역 장치 및 다중언어 번역 방법
US20190349320A1 (en) 2018-05-08 2019-11-14 Mz Ip Holdings, Llc System and method for automatically responding to user requests
JP2020056972A (ja) * 2018-10-04 2020-04-09 富士通株式会社 言語識別プログラム、言語識別方法及び言語識別装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9220404D0 (en) 1992-08-20 1992-11-11 Nat Security Agency Method of identifying,retrieving and sorting documents
JP2000250905A (ja) 1999-02-25 2000-09-14 Fujitsu Ltd 言語処理装置及びそのプログラム記憶媒体
US9275129B2 (en) 2006-01-23 2016-03-01 Symantec Corporation Methods and systems to efficiently find similar and near-duplicate emails and files
US8442965B2 (en) * 2006-04-19 2013-05-14 Google Inc. Query language identification
US8250083B2 (en) * 2008-05-16 2012-08-21 Enpulz, Llc Support for international search terms—translate as you crawl
US8364462B2 (en) * 2008-06-25 2013-01-29 Microsoft Corporation Cross lingual location search
US8145636B1 (en) * 2009-03-13 2012-03-27 Google Inc. Classifying text into hierarchical categories
US20100306249A1 (en) * 2009-05-27 2010-12-02 James Hill Social network systems and methods
US20140179419A1 (en) * 2012-12-06 2014-06-26 Dennis Nadeau System and method for verification of identification and residence in an online gaming environment
US20140280084A1 (en) * 2013-03-15 2014-09-18 Google Inc. Using structured data for search result deduplication
US20150046152A1 (en) * 2013-08-08 2015-02-12 Quryon, Inc. Determining concept blocks based on context
US10235681B2 (en) * 2013-10-15 2019-03-19 Adobe Inc. Text extraction module for contextual analysis engine
US11354340B2 (en) * 2014-06-05 2022-06-07 International Business Machines Corporation Time-based optimization of answer generation in a question and answer system
US20160042413A1 (en) * 2014-08-10 2016-02-11 Stephen Joseph Flood Systems and Methods for the Recording and Selective Distribution and Selective Communal Analysis of Consumer Reviews
AU2014409115A1 (en) 2014-10-17 2017-04-27 Mz Ip Holdings, Llc System and method for language detection
US10380261B2 (en) 2017-12-22 2019-08-13 Disney Enterprises, Inc. Conversational language and informational response systems and methods
US10388272B1 (en) 2018-12-04 2019-08-20 Sorenson Ip Holdings, Llc Training speech recognition systems using word sequences
US11501067B1 (en) * 2020-04-23 2022-11-15 Wells Fargo Bank, N.A. Systems and methods for screening data instances based on a target text of a target corpus
US11475054B2 (en) * 2020-04-24 2022-10-18 Roblox Corporation Language detection of user input text for online gaming

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980080220A (ko) * 1997-03-14 1998-11-25 다테이시 요시오 언어 식별 장치, 언어 식별 방법 및 언어 식별의 프로그램을 기록한 기록매체
JP2005063419A (ja) * 2003-07-31 2005-03-10 Ricoh Co Ltd 言語識別装置、プログラム及び記録媒体
KR20100039968A (ko) * 2008-10-09 2010-04-19 주식회사 아이네크 자동 언어 번역을 통한 다국어의 전거 표목에 대한 온톨로지 기반 의미 검색 시스템 및 방법
US20120095748A1 (en) * 2010-10-14 2012-04-19 Microsoft Corporation Language Identification in Multilingual Text
US20180189259A1 (en) 2016-12-30 2018-07-05 Facebook, Inc. Identifying multiple languages in a content item
KR20190125863A (ko) * 2018-04-30 2019-11-07 삼성전자주식회사 다중언어 번역 장치 및 다중언어 번역 방법
US20190349320A1 (en) 2018-05-08 2019-11-14 Mz Ip Holdings, Llc System and method for automatically responding to user requests
JP2020056972A (ja) * 2018-10-04 2020-04-09 富士通株式会社 言語識別プログラム、言語識別方法及び言語識別装置

Also Published As

Publication number Publication date
JP2023523004A (ja) 2023-06-01
KR102569760B1 (ko) 2023-08-23
WO2021216337A1 (en) 2021-10-28
CN115380260A (zh) 2022-11-22
US11989215B2 (en) 2024-05-21
US11475054B2 (en) 2022-10-18
EP4139768A4 (en) 2024-05-01
US20230031901A1 (en) 2023-02-02
EP4139768A1 (en) 2023-03-01
US20210334299A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
KR102569760B1 (ko) 온라인 게이밍을 위한 사용자 입력 텍스트의 언어 감지
US11361243B2 (en) Recommending machine learning techniques, features, and feature relevance scores
US10963499B2 (en) Generating command-specific language model discourses for digital assistant interpretation
US10067913B2 (en) Cross-lingual automatic query annotation
TWI512502B (zh) 用於產生習慣語言模式之方法及系統及相關之電腦程式產品
US20170185581A1 (en) Systems and methods for suggesting emoji
US9336298B2 (en) Dialog-enhanced contextual search query analysis
US20220012296A1 (en) Systems and methods to automatically categorize social media posts and recommend social media posts
KR101754473B1 (ko) 문서를 이미지 기반 컨텐츠로 요약하여 제공하는 방법 및 시스템
US10929613B2 (en) Automated document cluster merging for topic-based digital assistant interpretation
JP5710581B2 (ja) 質問応答装置、方法、及びプログラム
WO2021096677A1 (en) Domain-agnostic structured search query exploration
WO2019133856A2 (en) Automated discourse phrase discovery for generating an improved language model of a digital assistant
CN107111607A (zh) 用于语言检测的系统和方法
CN110020032A (zh) 使用语法单元的文档搜索
JP4945015B2 (ja) 文書検索システム、文書検索プログラム、および文書検索方法
US9223833B2 (en) Method for in-loop human validation of disambiguated features
US9547701B2 (en) Method of discovering and exploring feature knowledge
US20240078393A1 (en) Search-engine-augmented dialogue response generation with cheaply supervised query production
JP6451151B2 (ja) 質問応答装置、質問応答方法、プログラム
KR20180089011A (ko) 고유 값 구조의 빅 데이터 기반의 언어 탐색 시스템
US20220318283A1 (en) Query correction based on reattempts learning
JP2021149138A (ja) 情報処理装置、学習提案プログラム、及び学習提案方法

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right