KR20180137031A - 입력 및/또는 출력이 인터넷유행어를 포함하는 사용자 인터페이스 입력에 응답하여 제시할 출력을 생성 - Google Patents

입력 및/또는 출력이 인터넷유행어를 포함하는 사용자 인터페이스 입력에 응답하여 제시할 출력을 생성 Download PDF

Info

Publication number
KR20180137031A
KR20180137031A KR1020187036264A KR20187036264A KR20180137031A KR 20180137031 A KR20180137031 A KR 20180137031A KR 1020187036264 A KR1020187036264 A KR 1020187036264A KR 20187036264 A KR20187036264 A KR 20187036264A KR 20180137031 A KR20180137031 A KR 20180137031A
Authority
KR
South Korea
Prior art keywords
input
internet
natural language
user
term
Prior art date
Application number
KR1020187036264A
Other languages
English (en)
Other versions
KR102025828B1 (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 KR20180137031A publication Critical patent/KR20180137031A/ko
Application granted granted Critical
Publication of KR102025828B1 publication Critical patent/KR102025828B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • 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/31Indexing; Data structures therefor; Storage structures
    • G06F16/313Selection or weighting of terms for indexing
    • G06F17/276
    • 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/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • H04L51/16
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/216Handling conversation history, e.g. grouping of messages in sessions or threads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Document Processing Apparatus (AREA)

Abstract

본 명세서의 일부 구현예들은 인터넷유행어를 정규화(표준화)된 형식으로 변환하는 것에 관한 것으로, 여기서 인터넷유행어는 사용자가 자동화된 어시스턴트에 제공한 입력과 같이, 컴퓨팅 장치의 사용자 인터페이스 입력 장치를 통해 사용자에 의해 표현된 자연어 입력에 포함된다. 상기 인터넷유행어의 정규화된 형식은 자연어 입력에 응답하는 응답 콘텐트를 결정할 때 자동화된 어시스턴트에 의해 이용될 수 있고, 응답 콘텐트는 사용자의 컴퓨팅 장치의 하나 이상의 사용자 인터페이스 출력 장치를 통해 사용자에게 제공될 수 있다. 일부 구현 예들은, 사용자에게 제시하기 위해, 사용자 및/또는 추가 사용자들에 의한 인터넷유행어의 과거 사용량에 기초하여 결정되는 "인터넷유행어 측정치"에 적어도 부분적으로 기초하여, 인터넷유행어의 정규화된 형식 대신에 인터넷유행어를 포함하는 자연어 출력을 추가적으로 및/또는 대안으로 제공하는 것에 관한 것이다.

Description

입력 및/또는 출력이 인터넷유행어를 포함하는 사용자 인터페이스 입력에 응답하여 제시할 출력을 생성
본 명세서는 사용자 인터페이스 입력에 응답하여 제시할 출력을 생성하는 것에 관한 것이다.
다수의 사용자는 문자 메시지 교환, 온라인 채팅(예: 인스턴트 메신저, 인터넷 릴레이 채팅 등), 소셜 네트워크 스레드(thread) 등과 같은 다양한 기술을 사용하여 구현될 수 있는 메시지 교환 스레드를 통해 문자로 서로 통신할 수 있다. 많은 사용자는 특히 모바일 컴퓨팅 장치를 사용할 때 메시지 교환 스레드를 통해 다른 사용자와의 다양한 통신에서 소위 "인터넷유행어(chatspeak)"를 활용한다. 상기 인터넷유행어는 이니셜화((예: 복수 단어들의 이니셜들로 구성된 약어 및/또는 줄임말(예: '큰 소리로 웃는' LOL))), 단어들에서 문자 제거(예: "review"를 "rvw"로 표현; "really"를 "rlly"로 표현), 단어들에 문자 추가(예: "hello"를 "hellooooooooo"로 표현, "yes"를 "yeeesssss"로 표현), 단어에 나타나지 않을 수 있는 하나 이상의 문자를 사용한 단어 표현(예: "see"를 "c"로, "thanks"를 "thx"로 표현)과 같은 다양한 형태를 취할 수 있다.
본 명세서의 일부 구현예들은 인터넷유행어를 정규화(표준화)된 형식으로 변환하는 것에 관한 것으로, 여기서 인터넷유행어는 예를 들어 사용자가 자동화된 어시스턴트(automated assistant)에 제공한 자연어 입력과 같이, 컴퓨팅 장치의 사용자 인터페이스 입력 장치를 통해 사용자에 의해 공식화된 자연어 입력에 포함된다. 인터넷유행어의 정규화된 형식은 자연어 입력에 응답하는 응답 콘텐트를 결정할 때 자동화된 어시스턴트에 의해 이용될 수 있고, 응답 콘텐트는 사용자의 컴퓨팅 장치의 하나 이상의 사용자 인터페이스 출력 장치를 통해 사용자에게 제공될 수 있다. 많은 구현예들에서, 인터넷유행어를 포함하는 자연어 입력은 사용자, 자동화된 어시스턴트 및 선택적으로 하나 이상의 추가 사용자들 간의 메시지 교환 스레드의 일부로서 사용자에 의해 공식화될 수 있다. 이들 구현예들 중 일부에서, 인터넷유행어의 정규화된 형식(형태)에 기초한 자동화된 시스템에 의해 생성된 응답은 메시지 교환 스레드에 통합될 수 있다. 예를 들어, 상기 응답은 사용자의 컴퓨팅 장치상에서 동작하는 메시지 교환 클라이언트의 그래픽 사용자 인터페이스에 디스플레이되는 메시지 교환 스레드의 전사(transcript)에 삽입될 수 있다.
사용자가 제공한 입력에서 인터넷유행어의 번역은 예를 들어 난독증이거나 유창하지 않은 언어로 의사소통하기 때문에 사용자가 서면 언어 능력이 제한적이더라도 자동화된 어시스턴트와 같은 컴퓨팅 장치와 상호 작용할 수 있게 한다. 달리 말하면, 상기 컴퓨팅 장치는 사용자가 정확한 철자법 및 문법을 사용하여 쿼리를 작성/입력 할 수 없더라도 입력을 결정할 수 있다. 이는 특히 발음이 아닌 언어로 입력을 수신하는 컴퓨터 장치에 유용할 수 있으며, 영어와 프랑스어가 이러한 언어의 예이다.
하나의 예로서, 본 명세서의 일부 구현예들은 "cu I8er"의 자연어 입력을 "see you later"의 정규화된 형식으로 변환하는 데 활용될 수 있으며, 정규화된 형식은 "see you then","OK" 등과 같은 적절한 "채팅 응답"인 응답 콘텐트를 결정하도록 상기 자동화된 시스템에 의해 사용될 수 있다. 또 다른 예로서, 일부 구현예들은 "thx"만으로 구성된 자연어 입력이 자동화된 어시스턴트가 사용하는 정규화된 형식 "thanks"로 변환되어야 하는지 결정하기 위해 활용될 수 있으며, 상기 자동화된 어시스턴트가 하나 이상의 특정 용어와 함께 "thx"를 포함하는 다른 자연어 입력에서 정규화된 형식을 사용하는 것은 적절하지 않을 수 있다. 예를 들어, "thx company", "thx"를 포함하는 자연어 입력에서, "thx"는 "thanks"로 번역될 수 없다. 그 대신 상기 자동화된 시스템은 "thx"를 활용하여 오디오/비디오 회사 THX와 관련된 콘텐트를 포함하는 "검색 응답"과 같은 "thx 회사"에 대한 적절한 응답을 결정할 수 있다.
본 명세서의 일부 구현예들은 추가적으로 및/또는 대안적으로, 사용자에게 프리젠테이션하기 위해, 추가 사용자들 및/또는 사용자에 의한 인터넷유행어의 과거 사용에 기초하여 결정된 "인터넷유행어 측정치(chatspeak measure)"에 적어도 부분적으로 기초하여, 인터넷유행어의 정규화된 형식 대신 인터넷유행어를 포함하는 자연어 출력을 제공하는 것에 관한 것이다. 예를 들어, 사용자에 대한 인터넷유행어 번역의 과거 인스턴스가 저장될 수 있고, 인터넷유행어 측정치는 그 인스턴스의 양에 적어도 부분적으로 기초하여 결정될 수 있다(예를 들어, 로우 카운트(raw count), 빈도 및/또는 양의 다른 기능). 예를 들어, 사용자가 자동화된 어시스턴트에 제공되는 메시지에서 인터넷유행어를 지속적으로 사용하는 경우, 해당 사용자의 인터넷유행어 측정치는 해당 사용자가 인터넷유행어를 포함하는 자동화된 어시스턴트로부터 응답을 받기 원하는 것으로 나타낼 수 있으며, 상기 자동화된 어시스턴트는 해당 용어들의 정규화된 버전 대신 인터넷유행어들을 포함하는 응답들을 적어도 제공할 수 있다. 인터넷유행어 측정치는 "일반적인" 인터넷유행어 측정치이거나 하나 이상의 특정 인터넷유행어들의 그룹에 적용될 수 있다. 예를 들어, "thx"/ "t hanks"에 대한 사용자의 인터넷유행어 측정치는 자동화된 어시스턴트가 해당 사용자에 대한 응답으로 "thanks"를 "thx"로 바꾸거나, 반면에 "gr8"/"great"(또는 "gr8"/"great"에 대한 인터넷유행어 측정치의 부족)에 대한 사용자의 별도 인터넷유행어 측정치는 자동화된 어시스턴트가 해당 사용자에 대한 응답으로 "great"를 "gr8"로 대체하지 않을 수 있다.
일부 구현예들에서, 소정의 사용자에 대한 소정의 응답에서 인터넷유행어를 포함 시킬지 여부를 결정하는데 이용되는 하나 이상의 인터넷유행어 측정치들 중 적어도 하나는 소정의 사용자에 대한 특정한 측정치일 수 있다. 예를 들어, 본원에 기술된 기술에 따라 인식된 인터넷유행어의 인스턴스들과 같이, 그 사용자에 의해 공식화된 메시지의 인터넷유행어의 인스턴스들에 적어도 부분적으로 기초하여 결정될 수 있다. 이러한 구현예들 중 일부에서는 사용자에게 특정한 인터넷유행어 측정치가 사용자의 하나 이상의 장치에 대해 특정될 수 있다. 예를 들어, 제1 인터넷유행어 측정치는 사용자의 모바일 컴퓨팅 장치에 대한 사용자에게 할당될 수 있고, 제2 인터넷유행어 측정치는 사용자의 "데스크톱" 컴퓨팅 장치에 할당될 수 있다. 일부 구현 예들에서, 소정의 사용자에 대한 소정의 응답에서 인터넷유행어를 포함시킬지 여부를 결정하는데 이용되는 하나 이상의 인터넷유행어 측정치들 중 적어도 하나는 복수의 사용자의 인터넷유행어 인스턴스들에 기초할 수 있다. 예를 들어, 공통의 하나 이상의 속성(예를 들어, 지리적 영역, 연령 범위)을 갖는 사용자 및/또는 사용된 컴퓨팅 장치의 유형 및/또는 사용된 메시지 교환 클라이언트의 유형에 특정할 수 있는 사용자와 같은 사용자 그룹에 특정될 수 있다(예를 들어, 다수의 사용자 중 메시지 교환 클라이언트A는 클라이언트B 보다 더 많은 인터넷유행어의 빈도를 가질 수 있다).
사용자의 자연어 입력은 다양한 시나리오에서 수신 및 처리될 수 있고 및/또는 자동화된 시스템에 의해 생성된 자연어 출력은 다양한 시나리오에서 생성될 수 있다. 예를 들어, 자연어 입력은 채팅, SMS 및/또는 다른 메시지 교환을 통한 통신과 같이, 하나 이상의 다른 사용자들과의 통신 중에 사용자에 의해 제공되는 입력일 수 있다. 다른 예로서, 상기 자연어 입력은 하나 이상의 사용자 인터페이스 입력 및 출력 장치들을 통해 사용자와의 대화에 관여하는 자동화된 어시스턴트에 제공될 수 있다. 예를 들어, 상기 자동화된 어시스턴트는 사용자의 컴퓨팅 장치(예를 들어, 이동 전화, 태블릿, 자동화된 어시스턴트 기능 전용 장치)에 전체적으로 또는 부분적으로 통합될 수 있으며, 하나 이상의 사용자 인터페이스 입력 장치(예: 마이크, 터치 스크린) 및 하나 이상의 사용자 인터페이스 출력 장치(예: 스피커, 디스플레이 화면)를 포함할 수 있다. 또한, 예를 들어, 자동화된 어시스턴트는 전체 또는 부분적으로 사용자의 클라이언트 컴퓨팅 장치와 분리되지만 통신하는 하나 이상의 컴퓨팅 장치에서 구현될 수 있다.
일부 구현 예들에서, 하나 이상의 프로세서에 의해 수행되는 방법이 제공되며, 이 방법은 하나 이상의 사용자에 의한 메시지 교환 스레드에 기여하는 복수의 메시지에 기초하여 하나 이상의 사용자에 대한 인터넷유행어 측정치를 결정하는 단계를 포함한다. 이 방법은 적어도 사용자와 자동화된 어시스턴트 간의 진행중인 메시지 교환 스레드의 일부로서 사용자들 중 한 사용자에 의해 제출된 자연어 입력을 수신하는 단계를 더 포함한다. 상기 자연어 입력은 사용자의 컴퓨팅 장치의 사용자 인터페이스 입력 장치를 통해 사용자에 의해 공식화된다. 상기 방법은 자연어 입력에 대한 자동화된 어시스턴트의 응답에 포함시키기 위해 자연어 출력을 생성하는 단계를 더 포함한다. 상기 자연어 출력을 발생시키는 단계는 하나 이상의 인터넷유행어들을 인터넷유행어 측정치에 기초한 자연어 출력으로 통합하는 단계를 포함한다. 상기 방법은 자동화된 어시스턴트의 응답을 메시지 교환 스레드에 포함시키는 단계를 더 포함하며, 상기 응답은 하나 이상의 인터넷유행어들을 갖는 자연어 출력을 포함한다.
본 방법 및 여기에 개시된 기술의 다른 구현예들은 각각 선택적으로 하나 이상의 다음 특징들을 포함할 수 있다.
일부 구현 예에서, 상기 응답을 메시지 교환 스레드에 포함시키는 단계는 사용자의 컴퓨팅 장치상에서 동작하는 메시지 교환 클라이언트의 그래픽 사용자 인터페이스에 디스플레이되는 메시지 교환 스레드의 전사(transcript)에 응답을 삽입하는 단계를 포함한다.
일부 구현 예들에서, 인터넷유행어 측정치는 자연어 출력에 포함된 인터넷유행어를 적어도 하나 이상 포함하는 하나 이상의 인터넷유행어 용어 그룹에 특정적(specific)이며, 하나 이상의 인터넷유행어 용어를 자연어 출력에 통합하는 단계는 인터넷유행어가 포함된 상기 그룹에 특정한 인터넷유행어 측정치를 기반으로 한다.
일부 구현 예들에서, 인터넷유행어를 자연어 출력에 통합하는 단계는 자연어 입력에 응답하는 초기 자연어 출력을 식별하는 단계; 상기 초기 자연어 출력의 하나 이상의 소정의 용어들이 상기 인터넷유행어에 매핑하는지를 결정하는 단계; 그리고 초기 자연어 출력의 소정의 용어들을 인터넷유행어로 대체하는 단계를 포함한다.
일부 구현 예들에서, 본 방법은 사용자들 중 하나 이상의 사용자에 대한 추가적인 인터넷유행어 측정치를 결정하는 단계를 더 포함하며, 상기 자연어 출력을 생성하는 단계는 인터넷유행어 측정치에 기초하고 추가 인터넷유행어 측정치에 기초하여 하나 이상의 인터넷유행어를 자연어 출력에 포함시키는 단게를 포함한다. 이러한 구현예들 중 일부에서, 상기 인터넷유행어 측정치는 사용자에게 특정적이고, 자연어 출력에 통합되지 않은 하나 이상의 추가 인터넷유행어를 포함하는 복수의 인터넷유행어에 적용 가능하다. 이러한 구현예들의 일부 버전에서, 추가 인터넷유행어 측정치는 사용자에게 특정되지 않으며, 자연어 출력에 통합된 인터넷유행어 중 적어도 하나에 특정적이다.
일부 구현예들에서, 인터넷유행어 측정치는 사용자에 특정적이다. 이러한 구현예들 중 일부에서, 메시지 교환 스레드는 적어도 사용자와 자동화된 어시스턴트 간의 과거 자동화된 어시스턴트 메시지 교환 스레드를 포함한다. 이러한 구현예들의 일부 버전에서, 인터넷유행어 측정치를 결정하는 단계는 인터넷유행어가 상기 메시지들에서 이용된 인스턴스들의 카운트에 기초하고, 상기 방법은 상기 카운트가 기초하는 인스턴스들 중 하나를 결정하는 단계를 더 포함한다. 상기 인스턴스들 중 하나를 결정하는 방법은, 과거의 자동화된 어시스턴트 메시지 교환 스레드들 중 하나에서 메시지들 중 소정의 메시지를 수신하는 단계 -상기 소정의 메시지는 사용자에 의해 공식화되고 적어도 제1 용어 및 제2 용어를 포함함 -; 상기 자연어 입력의 적어도 제1 용어에 대해, 상기 제1 용어의 제1 정규화를 식별하는 단계; 상기 자연어 입력에 대한 후보 대체(alternate) 입력을 생성하는 단계 - 상기 생성하는 단계는 상기 제1 용어를 상기 제1 정규화로 대체하고, 상기 후보 대체 입력에 상기 제2 용어의 제2 정규화 또는 제2 용어를 포함시킴 -; 상기 자연어 입력에 대한 제1 점수를 결정하는 단계; 상기 후보 대체 입력에 대한 제2 점수를 결정하는 단계; 상기 제1 점수 및 상기 제2 점수에 기초하여 상기 후보 대체 입력을 선택하는 단계; 상기 후보 대체 입력에 기초하여 응답 콘텐트를 결정하는 단계; 상기 자동화된 어시스턴트에 의한 자연어 입력에 대한 응답으로서 상기 응답 콘텐트를 과거의 자동화된 어시스턴트 메시지 교환 스레드들 중 하나에 포함시키는 단계 -상기 응답 콘텐트를 통합하는 단계는 상기 후보 대체 입력을 선택하는 것에 기초함 -; 그리고 상기 후보 대체 입력을 선택하는 것에 기초하여 상기 인스턴스들 중 하나의 표시(indication)를 저장하는 단계를 포함한다.
이러한 구현예들의 일부 추가 버전에서, 자연어 입력에 대한 제1 점수를 결정하는 단계는 적어도 제1 용어 및 제2 용어를 언어 모델에 적용하는 것에 기초하고, 상기 후보 대체 입력에 대한 제2 점수를 결정하는 단계는 언어 모델에 적어도 제1 정규화 및 제2 용어 또는 제2 정규화 중 어느 하나를 적용하는 것에 기초한다. 이러한 구현예들의 또 다른 버전에서, 인터넷유행어 측정치는 사용자에 특정(specific)되고, 인터넷유행어들에 특정되며, 상기 후보 대체 입력을 선택하는 것에 기초하여 상기 인스턴스들 중 하나의 표시를 저장하는 단계는, 적어도 제1 용어 또는 제1 정규화에 대한 표시의 연관성을 저장하는 단계를 포함한다.
일부 구현 예에서, 상기 인터넷유행어 측정치를 결정하는 단계는 상기 인터넷유행어가 상기 메시지들에서 이용된 인스턴스들의 카운트, 상기 메시지들에서 사용된 하나 이상의 인터넷유행어 용어들의 양, 상기 인터넷유행어 용어들의 공통성 및/또는 상기 인터넷유행어들의 사용의 일관성에 기초한다.
일부 구현 예들에서, 하나 이상의 프로세서에 의해 수행되는 방법이 제공되는데, 이 방법은 적어도 사용자와 자동화된 어시스턴트 간의 메시지 교환 스레드의 일부로서 사용자에 의해 제출된 자연어 입력을 수신하는 단계를 포함한다. 상기 자연어 입력은 적어도 제1 용어 및 제2 용어를 포함하며, 사용자의 컴퓨팅 장치의 사용자 인터페이스 입력 장치를 통해 사용자에 의해 공식화된다. 상기 방법은, 상기 자연어 입력의 적어도 제1 용어에 대해, 제1 용어의 제1 정규화를 식별하는 단계; 그리고 상기 자연어 입력에 대한 후보 대체 입력을 생성하는 단계를 더 포함한다. 상기 후보 대체 입력을 생성하는 단계는 제1 용어를 제1 정규화로 대체하고, 상기 후보 대체 입력에 제2 용어 또는 제2 용어의 정규화를 포함시키는 단계를 포함한다. 상기 방법은, 적어도 상기 제1 용어 및 상기 제2 용어를 언어 모델에 적용하는 것에 기초하여 상기 자연어 입력에 대한 제1 점수를 결정하는 단계; 상기 제1 정규화 및 상기 제2 용어 또는 상기 제2 정규화 중 어느 하나를 상기 언어 모델에 적용하는 것에 기초하여 상기 후보 대체 입력에 대한 제2 점수를 결정하는 단계; 상기 제1 점수 및 상기 제2 점수에 기초하여 상기 후보 대체 입력을 선택하는 단계; 상기 후보 대체 입력에 기초하여 응답 콘텐트를 결정하는 단계; 그리고 자동화된 어시스턴트에 의한 자연어 입력에 대한 응답으로서 응답 콘텐트를 메시지 교환 스레드에 통합하는 단계를 더 포함한다. 상기 메시지 교환 스레드에 응답 콘텐트를 포함시키는 단계는 상기 후보 대체 입력을 선택하는 것을 기반으로 한다.
본 방법 및 여기에 개시된 기술의 다른 구현예들은 각각 선택적으로 하나 이상의 다음 특징들을 포함할 수 있다.
일부 구현 예들에서, 응답 콘텐트를 메시지 교환 스레드에 포함시키는 단계는 상기 응답 콘텐트를 상기 사용자의 컴퓨팅 장치상에서 동작하는 메시지 교환 클라이언트의 그래픽 사용자 인터페이스에 디스플레이된 메시지 교환 스레드의 전사에 삽입하는 단계를 포함한다.
일부 구현 예들에서, 이 방법은 응답 콘텐트에 대한 응답 콘텐트 점수를 결정하는 단계 및 상기 응답 콘텐트 점수에 더 기초하여 상기 제1 점수를 결정하는 단계를 더 포함한다. 응답 콘텐트 점수가 결정되는 구현예들 중 일부에서, 상기 응답 콘텐트는 하나 이상의 입력 파라미터들에 맵핑되는 스크립트된(scripted) 응답이고, 상기 응답 콘텐트 점수를 결정하는 단계는 상기 입력 파라미터들의 적어도 일부와 상기 후보 대체 입력의 비교에 기초한다. 응답 콘텐트 점수가 결정되는 구현예들 중 일부에서, 상기 응답 콘텐트는 후보 대체 입력에 응답하는 하나 이상의 검색 결과들에 기초하며, 상기 응답 콘텐트 점수를 결정하는 단계는 상기 검색 결과들 중 적어도 하나의 특성 또는 점수에 기초한다. 이러한 구현예들의 일부 버전에서, 상기 응답 콘텐트 점수를 결정하는 단계는 상기 검색 결과가 특정 유형의 검색 결과인 것을 나타내는 상기 검색 결과들 중 적어도 하나의 특성에 기초한다.
일부 구현 예들에서, 상기 언어 모델은 n- 그램(n-gram) 모델이고, 적어도 상기 제1 용어 및 상기 제2 용어를 상기 언어 모델에 적용하는 것에 기초하여 상기 자연어 입력에 대한 상기 제1 점수를 결정하는 단계는 상기 제1 용어 및 상기 제2 용어 양자 모두를 상기 언어 모델에 적용하는 단계를 포함한다.
일부 구현 예들에서, 상기 방법은 인간들 간의 메시지 교환 스레드로부터의 메시지의 정규화에 기초하여 상기 언어 모델을 생성하는 단계를 더 포함하며, 상기 메시지의 정규화는 그 인터넷유행어 용어들(chatspeak terms)이 인터넷유행어(chatspeak)로서 이용될 때 정규화된 용어로 이들 메시지의 인터넷유행어를 대체한다.
일부 구현 예들에서, 상기 후보 대체 입력에 기초하여 응답 콘텐트를 결정하는 단계는 상기 후보 대체 입력에 기초하여 하나 이상의 응답 리소스 데이터베이스를 검색하는 단계를 포함한다.
일부 구현 예들에서, 하나 이상의 프로세서에 의해 수행되는 방법이 제공되는데, 이 방법은 적어도 사용자와 자동화된 어시스턴트 간의 메시지 교환 스레드의 일부로서 사용자에 의해 제출된 자연어 입력을 수신하는 단계를 포함한다. 상기 방법은, 자연어 입력의 적어도 제1 용어에 대해, 제1 용어의 제1 정규화를 식별하는 단계; 그리고 상기 자연어 입력에 대한 후보 대체 입력을 생성하는 단계를 포함한다.
상기 후보 대체 입력을 생성하는 단계는 상기 후보 대체 입력에 상기 제1 용어 대신에 제1 정규화를 포함시키는 단계를 포함한다. 상기 방법은, 적어도 상기 제1 용어를 언어 모델에 적용하는 것에 기초하여 상기 자연어 입력에 대한 제1 점수를 결정하는 단계; 상기 언어 모델에 적어도 상기 제1 정규화를 적용하는 것에 기초하여 상기 후보 대체 입력에 대한 제2 점수를 결정하는 단계; 상기 제1 점수 및 상기 제2 점수에 기초하여 상기 후보 대체 입력을 선택하는 단계; 상기 후보 대체 입력에 기초하여 응답 콘텐트를 결정하는 단계; 그리고 자동화된 어시스턴트에 의한 자연어 입력에 대한 응답으로서 응답 콘텐트를 메시지 교환 스레드에 통합하는 단계를 더 포함한다. 상기 메시지 교환 스레드에 응답 콘텐트를 통합하는 단계는 상기 후보 대체 입력을 선택하는 것을 기반으로 한다.
또한, 일부 구현 예들은 하나 이상의 프로세서가 연관된 메모리에 저장된 명령어들을 실행하도록 동작할 수 있는 하나 이상의 컴퓨팅 장치의 하나 이상의 프로세서를 포함하고, 상기 명령어들은 전술한 방법들 중 임의의 것을 수행하도록 구성된다. 일부 구현 예들은 전술한 방법들 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 명령어들을 저장하는 비-일시적 컴퓨터 판독 가능 저장 매체를 또한 포함한다.
전술한 개념들 및 본 명세서에서보다 상세하게 기술된 추가 개념들의 모든 조합은 본 명세서에 개시된 요지의 일부로서 고려될 수 있음을 이해해야 한다. 예를 들어, 본 명세서의 끝 부분에 나타난 청구된 요지의 모든 조합은 본 명세서에 개시된 요지의 부분으로 고려된다.
도 1은 본 명세서에 개시된 구현 예들이 구현될 수 있는 예시적인 환경의 다이어그램이다.
도 2는 인터넷유행어를 포함하는 자연어 입력을 수신하고, 인터넷유행어를 정규화된 형태로 변환하고, 그 정규화된 형태를 이용하여 자연어 입력에 응답하는 응답 콘텐트를 생성하고, 그 자연어 입력에 대한 응답으로 제시할 응답 콘텐트를 제공하는 예를 도시한다.
도 3은 본 명세서에 설명된 구현 예들에 따라 클라이언트 컴퓨팅 장치의 사용자와 자동화된 어시스턴트 간에 발생할 수 있는 대화의 예를 디스플레이하는 디스플레이 스크린을 갖는 예시적인 클라이언트 컴퓨팅 장치를 도시한다.
도 4는 본 명세서에 설명된 구현 예들에 따라 클라이언트 컴퓨팅 장치의 사용자와 자동화된 어시스턴트 간에 발생할 수 있는 대화의 일례를 디스플레이하는 디스플레이 스크린을 갖는 예시적인 클라이언트 컴퓨팅 장치를 도시한다.
도 5는 인터넷유행어를 포함하는 자연어 입력을 수신하고, 인터넷유행어를 정규화된 형식(형태)으로 변환하고, 그 자연어 입력에 응답하는 응답 콘텐트를 생성하기 위해 정규화된 형태를 이용하고, 자연어 입력에 대한 응답으로 제시할 응답 콘텐트를 제공하는 예시적인 방법을 도시하는 흐름도이다.
도 6은 적어도 하나의 사용자에 대한 인터넷유행어 측정치를 결정하고, 사용자로부터 자연어 입력을 수신하고, 상기 인터넷유행어 측정치 및 자연어 입력에 기초하여 자연어 출력을 결정하고, 상기 자연어 입력에 대한 응답으로 사용자에게 제시(표시)할 자연어 출력을 제공하는 예시적인 방법을 나타내는 흐름도를 나타낸다.
도 7은 컴퓨팅 장치의 예시적인 아키텍처를 도시한다.
사용자들은 자동화된 어시스턴트와의 메시지 교환 스레드와 같이 다양한 비인간 컴퓨터 시스템에 요청을 제출할 때 인터넷유행어(채팅스피크)(chatspeak)를 활용하고자 할 수 있다. 예를 들어, 사용자들은 인터넷유행어를 이용하는 것에 익숙할 수 있고 및/또는 사용자의 컴퓨팅 장치의 제약(예를 들어, 디스플레이 제약, 사용자 인터페이스 입력 장치 제약)은 인터넷유행어를 이용하는 것이 바람직할 수 있다. 그러나, 많은 컴퓨터 시스템은 인터넷유행어를 인식하지 못하거나, 인터넷유행어를 정규화된 형식으로 적절히 해석하지 못할 수도 있으며, 입력이 인터넷유행어로 의도되지 않았다고 하더라도 인터넷유행어로 입력을 잘못 해석할 수도 있다. 또한, 많은 컴퓨터 시스템은 인터넷유행어로 응답하지 않을 수 있고 및/또는 하나 또는 그 이상의 사용자에 의한 메시지 교환 스레드에서의 인터넷유행어의 과거 사용을 기반으로 인터넷유행어로 응답하지 않을 수도 있다.
본 명세서의 구현예들은 인터넷유행어를 정규화된 형식으로 변환하는 것에 관한 것으로, 여기서 인터넷유행어는 사용자가 자동화된 시스템에 제공한 자연어 입력과 같이, 컴퓨팅 장치의 사용자 인터페이스 입력 장치를 통해 사용자가 공식화(표현)한 자연어 입력에 포함된다. 인터넷유행어의 정규화된 형태는 자연어 입력에 응답하는 응답 콘텐트를 결정할 때 자동화된 시스템에 의해 이용될 수 있고, 그 응답 콘텐트는 사용자의 컴퓨팅 장치의 하나 이상의 사용자 인터페이스 출력 장치를 통해 사용자에게 제공될 수 있다.
하나의 예로서, 본 명세서의 일부 구현예들은 "cu I8er"의 자연어 입력을 "see you later"의 정규화된 형식으로 변환하는 데 활용될 수 있으며, 정규화된 형식은 "see you then","OK" 등과 같은 적절한 "채팅 응답"인 응답 콘텐트를 결정하도록 상기 자동화된 시스템에 의해 사용될 수 있다.
본 명세서의 일부 구현예들은 추가적으로 및/또는 대안적으로, 사용자에게 프리젠테이션하기 위해, 추가 사용자들 및/또는 사용자에 의한 인터넷유행어의 과거 사용에 기초하여 결정된 "인터넷유행어 측정치(chatspeak measure)"에 적어도 부분적으로 기초하여, 인터넷유행어의 정규화된 형식 대신 인터넷유행어를 포함하는 자연어 출력을 제공하는 것에 관한 것이다. 예를 들어, 사용자에 대한 인터넷유행어 번역의 과거 인스턴스가 저장될 수 있고, 인터넷유행어 측정치는 그 인스턴스의 양(quantity)에 기초하여 결정될 수 있다(예를 들어, 로우 카운트(raw count), 빈도 및/또는 양(quantity)의 다른 기능). 예를 들어, 사용자가 자동화된 어시스턴트(automated assistant)에 제공되는 메시지에서 인터넷유행어를 지속적으로 사용하는 경우, 해당 사용자의 인터넷유행어 측정치는 해당 사용자가 인터넷유행어(또는 소정의 특정 채팅스피크 용어들)를 포함하는 자동화된 어시스턴트로부터 응답을 받기 원하는 것으로 나타낼 수 있으며, 상기 자동화된 어시스턴트는 해당 용어들의 정규화된 버전 대신 인터넷유행어 용어들(chatspeak terms)을 포함하는 응답들을 적어도 제공할 수 있다. 인터넷유행어 측정치를 결정하기 위한 다른 기반은 사용된 인터넷유행어 용어들들의 품질(예컨대, 복잡성), 사용된 인터넷유행어의 공통성(예를 들어, "laugh out loud"를 "lol"로 표현하는 것과 같이 정규화된 형태에 대한 특정 인터넷유행어를 대체하는 것이 일반적이다.), 특정 인터넷유행어의 사용자의 사용 일관성(예를 들어, 사용자는 정규화된 형태 대신에 특정 인터넷유행어를 대부분의 시간에 사용함) 등을 포함한다. 실제로, 인터넷유행어 측정치는 인터넷유행어 및/또는 응답에서 특정 인터넷유행어의 사용을 포함하는 일반적인 응답에 대한 이들 속성의 조합(가중치 또는 기타)으로부터 결정될 수 있다.
도 1을 참조하면, 여기에 개시된 기술들이 구현될 수 있는 예시적인 환경이 도시되어 있다. 예시적인 환경은 복수의 클라이언트 컴퓨팅 장치(1061-N) 및 자동화된 어시스턴트(120)를 포함한다. 자동화된 어시스턴트(120)가 클라이언트 컴퓨팅 장치(1061-N)와 별개로 도 1에 도시되어 있지만, 일부 구현 예에서 자동화된 어시스턴트(120)의 모든 또는 양태들은 클라이언트 컴퓨팅 장치(1061-N) 중 하나 이상에 의해 구현될 수 있다. 예를 들어, 클라이언트 컴퓨팅 장치(106i)는 자동화된 어시스턴트(120)의 하나의 이상의 인스턴스를 구현할 수 있으며, 클라이언트 컴퓨팅 장치(106N)는 또한 자동화된 어시스턴트(120)의 하나 이상의 양태의 개별 인스턴스를 구현할 수 있다. 자동화된 어시스턴트(120)의 하나 이상의 양태들이 클라이언트 컴퓨팅 장치(1061-N)로부터 멀리 떨어진 하나 이상의 컴퓨팅 장치에 의해 구현되는 구현 예에서, 클라이언트 컴퓨팅 장치(1061-N) 및 자동화된 어시스턴트(120)의 양태들은 근거리 통신망(LAN) 및/또는 광역 통신망(WAN)(예: 인터넷)과 같은 하나 이상의 네트워크를 통해 통신할 수 있다.
클라이언트 컴퓨팅 장치들(1061-N)은 예를 들어 데스크톱 컴퓨팅 장치, 랩톱 컴퓨팅 장치, 태블릿 컴퓨팅 장치, 이동 전화 컴퓨팅 장치, 사용자 차량의 컴퓨팅 장치(예를 들어, 차량 내 통신 시스템, 차량용 오락 시스템, 차량 내 내비게이션 시스템), 개인 보조 컴퓨팅 장치 또는 컴퓨팅 장치를 포함하는 사용자의 착용식 장치(예를 들어, 컴퓨팅 장치를 갖는 사용자의 시계, 컴퓨팅 장치를 갖는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 장치) 중 하나 이상을 포함할 수 있다. 추가 및/또는 대안적으로, 클라이언트 컴퓨팅 장치가 제공될 수 있다. 일부 구현 예들에서, 소정의 사용자는 컴퓨팅 장치들의 조정된 "에코시스템(ecosystem)"을 집합적으로 형성하는 사용자의 복수의 클라이언트 컴퓨팅 장치를 이용하여 자동화된 어시스턴트(120)와 통신할 수 있다. 그러나, 간결성을 위해, 본 개시에서 설명된 많은 예는 클라이언트 컴퓨팅 장치들(1061-N) 중 하나를 조작하는 소정의 사용자에게 초점을 맞출 것이다.
각각의 클라이언트 컴퓨팅 장치(1061-N)는 메시지 교환 클라이언트(1071-N) 중 대응하는 하나와 같은 다양한 상이한 애플리케이션들을 동작시킬 수 있다. 메시지 교환 클라이언트(1071-N)는 다양한 형태로 존재할 수 있으며, 형태는 클라이언트 컴퓨팅 장치(1061-N)에 걸쳐 다양할 수 있고 및/또는 복수 형태가 클라이언트 컴퓨팅 장치(1061-N) 중 하나에서 동작될 수 있다. 일부 구현 예에서, 하나 이상의 메시지 교환 클라이언트(107I-N)는 단문 메시징 서비스("SMS") 및/또는 멀티미디어 메시징 서비스("MMS") 클라이언트, 온라인 채팅 클라이언트(예를 들어, 인스턴트 메신저, 인터넷 릴레이 채팅, 또는 "I RC" 등), 소셜 네트워크와 연관된 메시징 어플리케이션, 자동화된 어시스턴트(120)와의 대화에 전용된 개인 어시스턴트 메시징 서비스 등의 형태일 수 있다. 일부 구현 예에서, 하나 이상의 메시지 교환 클라이언트(1071-N)는 웹 페이지 또는 클라이언트 컴퓨팅 장치(106)의 웹 브라우저(도시되지 않음) 또는 다른 애플리케이션에 의해 렌더링된 다른 리소스를 통해 구현될 수 있다.
본 명세서에서보다 상세하게 설명된 바와 같이, 자동화된 어시스턴트(120)는 하나 이상의 클라이언트 장치(1061-N)의 사용자 인터페이스 입력 및 출력 장치를 통해 하나 이상의 사용자로부터 입력을 수신하고 및/또는 하나 이상의 사용자에게 출력을 제공한다. 일부 구현 예에서, 여기서 설명된 사용자 인터페이스 입력은 자동화된 어시스턴트(120)에 명시적으로 전달된다. 예를 들어, 메시지 교환 클라이언트(107I-N) 중 하나는 자동화된 어시스턴트(120)와의 대화에 전용된 개인 어시스턴트 메시징 서비스일 수 있고, 그 개인 어시스턴트 메시징 서비스를 통해 제공된 사용자 인터페이스 입력은 자동화된 어시스턴트(120)에 자동으로 제공될 수 있다. 또한, 예를 들어, 상기 사용자 인터페이스 입력은 자동화된 어시스턴트(120)가 호출될 것임을 지시하는 특정 사용자 인터페이스 입력에 기초하여 하나 이상의 메시지 교환 클라이언트(1071-N)의 자동화된 어시스턴트(120)에게 명시적으로 전달될 수 있다. 예를 들어, 특정 사용자 인터페이스 입력은 하나 이상의 유형화된 문자(예: @PersonalAssistant), 가상 버튼(예: 탭, 롱 탭)을 갖는 사용자 상호작용, 구두 명령(예: "Hey Personal Assistant") 등일 수 있다. 일부 구현 예에서, 자동화된 어시스턴트(120)는 사용자 인터페이스 입력이 명시적으로 자동화된 어시스턴트(120)로 전달되지 않아도, 사용자 인터페이스 입력에 응답하여 하나 이상의 동작을 수행할 수 있다. 예를 들어, 자동화된 어시스턴트(120)는 사용자 인터페이스 입력의 콘텐츠를 조사하고, 사용자 인터페이스 입력에 존재하는 특정 용어들에 응답하여 및/또는 다른 큐(cue)들에 기초하여 하나 이상의 동작을 수행할 수 있다.
각각의 클라이언트 컴퓨팅 장치(1061-N) 및 자동화된 어시스턴트(120)는 데이터 및 소프트웨어 애플리케이션의 저장을 위한 하나 이상의 메모리, 데이터에 액세스하고 애플리케이션을 실행하기 위한 하나 이상의 프로세서 및 네트워크를 통한 통신을 용이하게 하는 다른 컴포넌트들을 포함할 수 있다. 하나 이상의 클라이언트 컴퓨팅 장치(1061-N) 및/또는 자동화된 어시스턴트(120)에 의해 수행되는 동작은 다수의 컴퓨터 시스템에 분산될 수 있다. 자동화된 어시스턴트(120)는 예를 들어 네트워크를 통해 서로 결합되는 하나 이상의 위치에서의 하나 이상의 컴퓨터상에서 실행되는 컴퓨터 프로그램들로서 구현될 수 있다.
자동화된 어시스턴트(120)는 용어 정규화 엔진(122), 대체 입력 엔진(124), 채점 엔진(scoring engine)(126), 하나 이상의 메시지 생성 엔진(128), 및 인터넷유행어(chatspeak) 측정 엔진(130)을 포함할 수 있다. 일부 구현 예에서, 엔진(122, 124, 126, 128 및/또는 130) 중 하나 이상은 생략될 수 있다. 일부 구현 예에서, 하나 이상의 엔진(122, 124, 126, 128 및/또는 130)의 모든 또는 양태들이 결합될 수 있다. 일부 구현 예에서, 하나 이상의 엔진(122, 124, 126, 128 및/또는 130)은 자동화된 어시스턴트(120)와 별개인 컴폰너트로 구현될 수 있다. 예를 들어, 하나 이상의 엔진(122,124,126,128 및/또는 130) 또는 그 임의의 동작 부(operative portion)는 클라이언트 컴퓨팅 장치(1061-N) 중 하나에 의해 실행되는 컴포넌트에서 구현될 수 있다.
도 1에서, 자동화된 어시스턴트(120)는 정규화 데이터베이스(152), 언어 모델 데이터베이스(154), 응답 리소스 데이터베이스(156) 및 인터넷유행어 측정 데이터베이스(158)와 통신하는 것으로 도시된다. 데이터베이스(152, 154, 156 및/또는 158)는 이하에서보다 상세히 설명되며, 클라이언트 컴퓨팅 장치(106I) 중 하나에 국부적이고, 자동화된 어시스턴트(120)에 국부적이고, 및/또는 클라이언트 컴퓨팅 장치(1061-N) 및/또는 자동화된 어시스턴트(120)로부터 멀리 떨어진 하나 이상의 매체와 같은 하나 이상의 비-일시적인 컴퓨터 판독 가능 매체상에 제공될 수 있다. 많은 구현 예에서, 하나 이상의 데이터베이스(152, 154, 156 및/또는 158)가 결합될 수 있다.
용어 정규화 엔진(122)은 수신된 자연어 입력에서의 다양한 잠재적인 인터넷유행어 용어들의 정규화를 결정한다. 예를 들어, 용어 정규화 엔진(122)은 용어 "c"에 대한 "see"의 정규화, 용어 "thx"에 대한 "thanks"의 정규화, 용어 "rvw"에 대한 "review" 및 "rearview" 등의 정규화들을 결정할 수 있다. 용어 정규화 엔진(122)은 정규화를 생성하기 위해 정규화 데이터베이스(152)의 하나 이상의 매핑, 규칙 및/또는 다른 기준을 이용할 수 있다. 예를 들어, 정규화 데이터베이스(152)는 하나 이상의 해당 정규화에 대한 특정 인터넷유행어 용어들의 매핑을 포함할 수 있다. 예를 들어, "c"라는 용어는 "see"의 단일 정규화(표준화)에 매핑될 수 있으며, "rvw"라는 용어는 "review", "rearview" 등과 같은 여러 정규화에 매핑될 수 있다. 또한, 예를 들어, 정규화 데이터베이스(152)는 동일한 문자의 다수의 연속적인 인스턴스를 포함하고, 유효한 정규화된 용어가 아닌 용어들로, 유효한 정규화된 용어가 달성될 때까지 그 문자의 인스턴스들이 제거될 수 있다고 규정하는 규칙을 정의할 수 있다. 예를 들어, 상기 규칙은 "helloooooooo"를 "hello"로 정규화하고, "yessss"를 "yes"로 정규화하고, "yippeeeeeeeee"를 "yippee"로 정규화하고, "cooooolllN"을 "cool" 및 "col" 등으로 정규화하는 데 사용될 수 있다. 일부 구현 예에서, 용어 정규화 엔진(122)은 정규화를 결정할 때 매핑 및/또는 규칙을 구성할 수 있다. 예를 들어, 엔진(122)는 먼저 "wazzaaaaa"를 "wazza"로 중복제거(deduplicating)하고 "wazza"와 "what's up" 간의 매핑을 식별하여 "wazzaaaaa"를 "what's up"으로 정규화할 수 있다. "wazzaaaaa"를 "what's up"로 중복제거할 때, 엔진(122)은 동일한 문자의 다수의 연속적인 인스턴스를 포함하고, 유효한 정규화된 용어가 아닌 용어로, 인식된 용어(예: 인터넷유행어 용어들과 정규화된 용어들 사이의 매핑에서 인식되는 용어)가 달성될 때까지 그 문자의 인스턴스들이 제거될 수 있다고 규정하는 규칙에 의존할 수 있다.
대체 입력 엔진(124)은 수신된 자연어 입력에 대한 후보 대체 입력들을 생성하고, 상기 수신된 자연어 입력의 하나 이상의 용어들을 그 정규화 중 하나(존재한다면)로 대체함으로써 후보 대체 입력들 각각을 생성한다. 예를 들어, "tx 4 rvw"의 수신된 자연어 입력에 대해, 용어 정규화 엔진(122)은 "tx"를 "thanks"로 정규화하고, "4"를 "for"로 정규화하고, "rvw"를 "review" "rearview"로 정규화할 수 있다. 이러한 정규화를 기반으로, 상기 대체 입력 엔진은 "thanks 4 the review", ""tx for the review", "thanks 4 the rearview", "thanks for the rearview", "thanks for the review", ""tx 4 the review", "tx 4 the rearview"의 후보 대체 입력들을 생성할 수 있다.
채점 엔진(126)은 대체 입력 엔진(124)에 의해 생성된 대체 입력들 각각에 대한 점수(score)를 발생시키고, 선택적으로 상기 대체 입력들이 생성된 자연어 입력에 대해 점수를 생성한다. 채점 엔진(126)은 상기 수신된 자연어 입력에 대한 응답을 생성할 때 메시지 생성 엔진(128)에 의해 사용될 선택된 입력으로서 이들 중 적어도 하나를 선택하기 위해 상기 점수를 이용한다.
다양한 구현 예에서, 채점 엔진(126)은 언어 모델(154)을 이용하여 상기 점수를 결정한다. 이들 구현 예들 중 일부에서, 언어 모델(154)은 "정규화된" (즉, 비-인터넷유행어) 용어들을 포함하는 다른 콘텐츠 및/또는 메시지들의 코퍼스(corpus)에 대해 학습된 n-그램(n-gram) 언어 모델이다. 예를 들어, "see", "you" 및 "later"가 "see,", "u" 및 "I8r"의 용어들보다 더 자주 발생할 가능성이 높은(언어 모델(154)을 학습시키는 데 사용된 코퍼스에서) "see you later"에 대한 점수를 결정하기 위해 언어 모델(154)이 이용될 수 있다. 이를 "thx audio company"의 자연어 입력 및 "thanks audio company"의 대체 입력과 비교한다. 이러한 상황에서, 언어 모델(154)은 "thanks", "audio" 및 "company"보다 "thx", "company" 및 "audio"가 더 자주 발생할 확률이 더 높다는 것을 결정하는데 이용될 수 있다(따라서 "thx audio company"에 대해 더 나은 점수를 결정). 일부 구현 예에서, 채점 엔진(126)은, 소정의 입력(수신된 자연어 입력 및/또는 대체 입력)에 대해, 사용자가 자동화된 어시스턴트(120)에 제공한 이전 입력의 용어 및/또는 사용자에게 제시하기 위해 자동화된 어시스턴트(120)에 의해 제공된 이전 출력의 용어들을 참조하지 않고 입력의 용어들을 이용하여 언어 모델(154)에 기초하여 소정의 입력에 대한 점수를 결정한다. 일부 다른 구현 예들에서, 채점 엔진(126)은 이전 입력(예를 들어, 바로 이전 입력) 및/또는 이전 출력(예를 들어, 바로 이전 출력)의 용어들 중 하나 이상을 이용할 수도 있다.
전술한 바와 같이, 일부 구현 예에서, 언어 모델(154)은 "정규화된" 용어들을 포함하는 다른 콘텐트 및/또는 메시지들의 코퍼스에 기초하여 학습될 수 있다. 예를 들어, 메시지들의 코퍼스는 두 명 이상의 인간 사용자 간에 교환된 메시지들을 포함할 수 있으며, 하나 이상의 인간 검토자들 및/또는 자동화된 시스템에 의해 정규화된 버전으로 변환된 메시지들의 인터넷유행어 용어들을 포함할 수 있다. 예를 들어, "thanks 4 your help"을 포함하는 메시지에서 "4"라는 용어는 "for"로 정규화될 수 있으며 "4" 대신 "for"가 포함된 메시지는 언어 모델(154)을 학습시키는 데 활용된다. 한편, "4 × 4 트럭"을 포함하는 메시지에서, 용어 "4"의 두개의 발생은 "for"로 대체되지 않고, "4 × 4 트럭"을 포함하는 메시지는 언어 모델(154)을 훈련시키는데 이용될 수 있다. 다른 말로, 이러한 구현예들에서, 언어 모델(154)은 그 용어들이 인터넷유행어 방식으로 이용될 때 정규화된 버전으로 대체된 잠재적인 인터넷유행어 용어들을 갖는 메시지에 기초하여 학습될 수 있지만, 이들이 비-인터넷유행어 방식으로 이용될 때 잠재적인 인터넷유행어 용어들이 유지된다. 웹 페이지, 뉴스 기사, 학술 논문, 특허 출원 공개자료들, 비디오와 같은 인터넷 컨텐츠에 대해 논평하기 위해 제공되는 사용자 인터넷 코멘트 등과 같은 다양한 구현 예에서 언어 모델(154)을 학습시키기 위해 추가 및/또는 대체물이 사용될 수 있다.
점수를 결정하는 일부 구현 예들에서, 채점 엔진(126)은 하나 이상의 메시지 생성 엔진(128)으로부터의 하나 이상의 응답 콘텐트 점수 및/또는 재기록 엔진(rewrite engine)(도시되지 않음)으로부터의 하나 이상의 재기록 점수와 같은 하나 이상의 추가 점수를 부가적으로 및/또는 택일적으로 이용한다. 이들 구현예들 중 일부에서, 채점 엔진(126)은 언어 모델(154)에 기초하여 결정된 둘 이상의 점수 사이에 충분한 편차가 없을 때 메시지 생성 엔진(들)(128) (및/또는 다른 추가적인 점수)으로부터 응답 콘텐트 점수(들)를 이용한다. 일부 다른 구현 예에서, 채점 엔진(126)은 분석되는 하나 이상의 입력에 대한 점수 결정의 일부로서 항상 메시지 생성 엔진(들)(128)로부터의 응답 콘텐트 점수(들)(및/또는 기타 추가 점수)를 이용할 수 있고, 언어 모델(154)에 기초하여 결정된 점수(들)와 조합하여 응답 콘텐트 점수(들)를 선택적으로 이용한다.
일반적으로, 입력(원래의 자연어 입력 또는 대체 입력)에 대한 메시지 생성 엔진들(128) 중 하나에 의해 제공된 응답 콘텐트 점수는 그 입력에 기초하여 그 엔진(128)에 의해 생성된 응답이 얼마나 "양호(good)"한지를 나타낸다. 예를 들어, 엔진들(128) 중 하나는 "채팅 응답"을 제공할 수 있고, 입력에 강하게 상관되는 스크립트된 응답이 있는 경우 양호한 응답(good response)을 나타내는 응답 콘텐트 점수를 제공할 수 있다. 예를 들어, 응답 리소스 데이터베이스(156)는 스크립트된 응답이 적절한 때를 나타내는 하나 이상의 입력 파라미터들에 각각 매핑되는 하나 이상의 스크립트된 채팅 응답을 포함할 수 있으며, 소정의 입력에 대한 응답 콘텐트 점수는 소정의 입력과 입력 파라미터(들)의 비교에 기초하여 결정될 수 있다. 또한, 예를 들어, 엔진들(128) 중 하나는 "검색 결과들"로부터 콘텐트를 제공할 수 있고, 소정의 입력에 대한 적어도 하나의 검색 결과가 고품질 검색 결과 및/또는 특정 "유형"(예: "one box result", "knowledge card", "curated response")인 경우 양호한 응답을 나타내는 소정의 입력에 대해 응답 콘텐트 점수를 제공할 수 있다.
일 예로서, "thx audio"의 수신된 자연어 입력을 가정하고 대체 입력 엔진(124)이 "thanks audio"의 대체 입력을 생성했다고 가정한다. 또한, 채점 엔진(126)이 언어 모델(154)에 기초한 입력들에 대한 점수들을 생성한다고 가정하지만, 이들 점수들은 서로 너무 가깝기 때문에 하나를 선택하는 것을 보증할 수 없다(예를 들어, 더 우수한 점수가 다른 점수에 대한 임계치를 만족시키지 못한다). 이러한 예에서, 메시지 생성 엔진들(128) 중 하나는 "검색 결과들"로부터 콘텐트를 제공할 수 있고, "thanks audio"에 대한 개별 응답 콘텐트 점수보다 양호한 응답을 훨씬 더 나타내는 "thx audio"에 대한 응답 콘텐트 점수를 제공할 수 있다. 채점 엔진(126)은 적어도 부분적으로 이들 응답 콘텐트 점수에 기초하여 "thanks audio"보다 "thx audio"를 선택할 수 있다.
다른 예로서, "thx 4 assistance"의 수신된 자연어 입력을 가정하고 대체 입력 엔진(124)이 "thanks for assistance"의 대체 입력을 생성했다고 가정한다. 또한, 채점 엔진(126)이 언어 모델(154)에 기초한 이들 입력에 대한 점수를 생성하지만, 이들 점수는 서로 너무 가깝기(close) 때문에 다른 점수에 비해 하나를 선택할 수 없다고 가정한다. 이러한 예에서, 메시지 생성 엔진들(128) 중 하나는 스크립트된 응답으로부터 콘텐트를 제공할 수 있으며, "[help / assistance / input / info / information / 등]에 대한 thanks"의 입력 파라미터들을 갖는 응답 리소스 데이터베이스(156)에 연관된 "you're welcome"의 스크립트된 응답을 포함할 수 있으며, 여기서 괄호 "[]"와 그 괄호 안의 용어들은 복수의 용어들을 나타내며 그 중 하나는 "thanks for the"와 쌍을 이룰 수 있다. "thanks for assistance"와 "you're welcome"이라는 스크립트된 응답의 입력 파라미터들 사이의 강한 일치(conformity) 정도를 기반으로, 그 메시지 생성 엔진(128)은 "thanks for assistance"에 대한 응답 콘텐트 점수를 "thx 4 assistance"에 대한 그 엔진(128)으로부터의 개별 응답 콘텐트 점수보다 훨씬 양호한 응답을 나타내는 것으로 제공할 수 있다. 채점 엔진(126)은 적어도 부분적으로 이들 응답 콘텐트 점수에 기초하여 "thx 4 assistance"보다는 "thanks for assistance"를 선택할 수 있다.
일반적으로, 입력(원래 자연어 입력 또는 대체 입력)에 대해 재기록 엔진이 제공하는 재기록 점수(rewrite score)는 해당 입력의 재기록이 어떻게 "양호"한지를 나타내며, 상기 재기록은 상기 입력에 기초하여, 그리고 선택적으로 하나 이상의 이전 입력(또는 이전 입력의 선택된 대체 입력)에 기초하여 상기 재기록 엔진에 의해 생성된다. 재기록이 얼마나 양호한지는 재기록의 특성(예를 들어, 구문론적으로 맞는지) 및/또는 재기록에 응답하는 검색 결과(들)의 속성에 기초할 수 있다. 예를 들어, "what's the weather on Saturday", "what abt sun"의 현재 입력 및 "what about Sunday"를 포함하는 후보 대체 입력을 이전 입력으로 가정한다. 상기 이전 입력을 기반으로 하는 "what abt"의 재기록은 "what's the weather on the Sun"이 될 수 있고, "what about Sunday"의 재기록은 "what's the weather on Sunday"가 될 수 있다. 예를 들어, 재기록에 응답하는 검색 결과들의 하나 이상의 속성에 기초하여, "what about Sunday"에 대한 재기록 점수가 "what about sun"에 대한 재기록 점수보다 좋을 수 있다.
활용된 기술(들)에 관계없이, 채점 엔진(126)은 메시지 생성 엔진(들)(128)에 상기 선택된 입력을 제공할 수 있으며, 이는 응답 리소스 데이터베이스(156)를 이용하여 상기 선택된 입력에 응답하는 응답 콘텐트를 생성할 수 있다. 일부 구현 예에서, 메시지 생성 엔진(들)(128)은 상기 선택된 입력을 수신하기 전에 상기 응답 콘텐트를 이미 생성할 수 있다. 예를 들어, 상기 응답 콘텐트는 상술한 바와 같이 응답 콘텐트 점수의 생성 중에 생성되었을 수 있다. 상기 생성된 응답 콘텐트는 자연어 입력을 제공한 메시지 교환 클라이언트(1071-N)에 제공되고, 그 자연어 입력에 대한 응답으로서 사용자에게 프리젠테이션을 위해 제공된다. 예를 들어, 상기 응답 콘텐트는 메시지 교환 클라이언트에 의해 자연어 입력을 포함하는 메시지 교환 스레드로 통합될 수 있다.
인터넷유행어 측정 엔진(130)은 하나 이상의 사용자에 의한 메시지 교환 스레드에 기여한 복수의 메시지에서의 인터넷유행어의 과거 사용량에 기초하여 하나 이상의 사용자에 대한 인터넷유행어 특정치(들)를 결정한다. 인터넷유행어 측정 엔진(130)은 하나 이상의 메시지 생성 엔진(128)에 의한 이용을 위해 인터넷유행어 측정 (측정치들) 데이터베이스(158)에 결정된 인터넷유행어 측정치(들)를 저장한다. 메시지 생성 엔진(128)은 사용자의 자연어 입력에 응답하여 생성하는 응답 콘텐트에(자연어 입력 자체에 인터넷유행어 용어들이 포함되었는지 여부는 관계없음), 그들의 정규화된 용어들 대신에, 인터넷유행어 용어(들)를 포함할지 여부를 결정할 때 사용자에게 적용 가능한 인터넷유행어 측정치(들)를 이용할 수 있다.
일부 구현 예에서, 인터넷유행어 측정 엔진(130)은 인터넷유행어가 이용된 메시지들의 인스턴스들의 카운트에 기초하여 인터넷유행어 측정치를 결정한다. 예를 들어, 인터넷유행어 측정 엔진(130)은 임의의 인터넷유행어를 포함하지 않는 메시지들의 카운트와 비교하여 임의의 인터넷유행어를 포함하는 (사용자 그룹의 사용자의) 메시지들의 카운트의 함수로 (사용자 또는 사용자 그룹에 대한) "일반적인(general)" 인터넷유행어 측정치를 결정할 수 있다. 또한, 예를 들어, 인터넷유행어 측정 엔진(130)은 추가적으로 및/또는 대안적으로, 메시지 내의 용어들의 총 카운트와 비교하여 인터넷유행어 용어인 (사용자 그룹의 사용자의) 메시지 내의 용어의 카운트의 함수로 (사용자 또는 사용자 그룹에 대한) "일반적인" 인터넷유행어 측정치를 결정할 수 있다.
일 예로서, 사용자에 대한 인터넷유행어 번역의 과거 인스턴스가 저장될 수 있고, 이들 인스턴스의 양에 기초하여(예를 들어, 로우 카운트, 빈도 및/또는 양의 다른 기능에 기초하여) 인터넷유행어가 결정될 수 있다. 예를 들어, 사용자가 자동화된 어시스턴트에 제공되는 메시지에서 인터넷유행어를 일관되게 사용하는 경우, 그 사용자에 대한 인터넷유행어 측정치는 인터넷유행어를 포함하는 자동화된 어시스턴트로부터 응답을 수신하고자 하는 사용자의 욕구를 나타낼 수 있으며, 자동화된 어시스턴트는 해당 용어의 정규화된 버전 대신 인터넷유행어 용어를 포함하는 적어도 일부 응답을 제공할 수 있다. 인터넷유행어 측정치는 "일반적인" 인터넷유행어 측정치이거나 하나 이상의 특정 인터넷유행어 용어의 그룹에 적용될 수 있다. 예를 들어, "thx"/"thanks"에 대한 사용자의 인터넷유행어 측정치는 자동화된 어시스턴트가 해당 사용자에 대한 응답으로 "thanks"를 "thx"로 바꾸거나, 반면에 "gr8/great"에 대한 사용자의 인터넷유행어 측정치는 자동화된 어시스턴트가 해당 사용자에 대한 응답으로 "great"를 "great"로 대체하지 않을 수 있다.
일부 구현 예에서, 인터넷유행어 측정치는 소정의 사용자에 따라 다를 수 있다. 예를 들어, 본 명세서에 설명된 기술들에 따라 인식되는 인스턴스들과 같이, 그 사용자에 의해 공식화(표현)된 메시지들에서 인터넷유행어의 인스턴스들에 적어도 부분적으로 기초하여 결정될 수 있다. 이러한 구현예들 중 일부에서, 인터넷유행어 측정치는 사용자의 하나 이상의 장치에 특정적일 수 있다(예를 들어, 사용자는 모바일 컴퓨팅 장치 대 "데스크톱" 컴퓨팅 장치상에서 인터넷유행어를 이용할 가능성이 더 높을 수 있다). 일부 구현 예에서, 인터넷유행어 측정치는 인터넷유행어 측정치는 복수의 사용자들의 인터넷유행어 인스턴스들에 기초할 수 있고, 공통된 하나 이상의 속성(예를 들어, 지리적 영역, 연령 범위)을 갖는 사용자와 같은 사용자 그룹에 특정될 수 있고, 및/또는 이용된 컴퓨팅 장치의 유형 및/또는 이용된 메시지 교환 클라이언트의 유형에 특정될 수 있다(예를 들어, 메시지 교환 클라이언트 A는 다수의 사용자들 사이에서 클라이언트 B보다 더 많은 인터넷유행어 빈도를 가질 수 있다). 일부 구현 예에서, 소정의 사용자는 자동화된 어시스턴트(120)가 하나 이상의 사용자 그룹에 대한 적어도 임계치 인터넷유행어 측정치와 연관된 인터넷유행어 용어를 포함하는 인터넷유행어와 같이, 사용자에게 제공된 출력에 인터넷유행어를 포함하도록 명시적으로 요청할 수 있는 옵션을 제공받을 수 있다. 예를 들어, 사용자는 출력에서 인터넷유행어 용어를 수신하도록 선택할 수 있으며, 여기서 인터넷유행어 용어는 지리적 영역의 사람들 사이에서 인기가 있다(예를 들어, 지리적 영역 내의 사용자 그룹에 대한 임계 인터넷유행어 측정치와 적어도 연관된 인터넷유행어 용어).
일부 구현 예에서, 복수의 인터넷유행어 측정치들은 이들 용어의 정규화된 버전 대신에 하나 이상의 인터넷유행어 용어를 사용할지 여부를 결정할 때 메시지 생성 엔진(128) 중 하나에 의해 이용될 수 있다. 예를 들어, 메시지 생성 엔진(128)은 사용자의 일반적인 인터넷유행어 측정치와, "c/see"에 특정된 인터넷유행어 측정치(사용자 또는 사용자 그룹의)와 같은 두 가지 모두에 기초하여 사용자에게 제공될 출력에서 "see" 대신에 "c"를 사용할지를 여부를 결정할 수 있다. 예를 들어, 사용자의 일반적인 인터넷유행어 측정치가 사용자에 의한 인터넷유행어 사용의 "중간(medium)" 정도를 나타내는 것으로 가정한다. 만약 "c/see"에 특정된 인터넷유행어 측정치가 해당 용어와 연관하여 높은 수준의 인터넷유행어 사용률을 나타내면 "c"가 생성된 출력에서 see" 대신에 사용될 수 있다. 한편, "c/see"에 특정된 인터넷유행어 측정치가 해당 용어와 연관하여 낮은 수준의 인터넷유행어 사용률을 나타내면 "see"가 생성된 출력에 사용될 수 있다.
도 2에서, 자동화된 어시스턴트(120)의 다양한 컴포넌트에 대한 추가적인 설명이 제공된다. 도 2에 도시된 바와 같이, 사용자는 컴퓨팅 장치(106i)의 하나 이상의 사용자 인터페이스 입력 장치를 이용하여 자연어 입력(201)을 메시지 교환 클라이언트(107i)에 제공하고, 이 메시지 교환 클라이언트는 자연어 입력(201)을 용어 정규화 엔진(122)에 전송한다. 자연어 입력(201)은 자유로운 입력일 수 있고, 예를 들어 컴퓨팅 장치의 물리적 또는 가상 키보드를 통해 사용자에 의해 제공된 유형화된 입력 또는 컴퓨팅 장치의 마이크로폰에 사용자에 의해 제공된 음성 입력 일 수 있다. 자연어 입력(201)이 입력된 구현 예에서, 이는 컴퓨팅 장치에 의해 및/또는 자동화된 어시스턴트(120)의 컴포넌트에 의한 텍스트 입력으로 선택적으로 표기될 수 있다.
실시 예로서, 자연어 입력(201)은 "c u I8r"일 수 있고, 이는 또한 실시예를 쉽게 이해할 수 있도록 괄호로 도 2에 도시되어 있다.
용어 정규화 엔진(122)은 정규화 데이터베이스(152)의 하나 이상의 매핑, 규칙 및/또는 다른 기준에 선택적으로 기초하여, 자연어 입력(201)의 용어들 중 하나 이상에 대한 하나 이상의 정규화를 생성한다. 용어 정규화 엔진(122)은 정규화된 용어(202)를 대체 입력 엔진(124)에 제공한다.
실시 예를 계속하면, 용어 정규화 엔진(122)은 정규화된 용어(202)를 생성하며, 여기서 "c"는 "see"로 정규화되었고, "u"는 "you"로 정규화되었고, "I8r"은 "later"로 정규화되었다. 상기 정규화들은 도 2의 괄호 안에 도시되어 있다.
대체 입력 엔진(124)은 자연어 입력(201)의 용어들 중 하나를 대체하는 정규화된 용어들(202) 중 적어도 하나를 각각 포함하는 자연어 입력(201)의 대체 입력들(203)을 생성한다.
실시 예를 계속하면, "cu I8r"의 자연어 입력(201) 및 "see", "you" 및 "later"의 정규화된 용어에 기초하여 생성된 대체 입력들(203)은 "see u I8r, "c you I8r", "c u later", "see you I8r", "see u later", "c you later", 및 "see you later"를 포함한다. 이들은 또한 도 2의 괄호 안에 도시되어 있다.
채점 엔진(126)은 대체 입력들 각각을 위한 그리고 선택적으로 자연어 입력(201)을 위한 점수를 생성하고, 그 점수에 기초하여 이들 중 하나 이상(예를 들어 오직 하나)을 상기 선택된 입력(204)으로서 선택한다. 다양한 구현 예에서, 채점 엔진(126)은 언어 모델(154)을 이용하여 점수를 결정한다. 이러한 구현예들 중 일부에서, 언어 모델(154)은 "정규화된" (즉, 비-인터넷유행어 용어들) 용어들을 포함하거나, 제한되거나, 또는 지배되는 다른 콘텐트 및/또는 메시지들의 코퍼스에 대해 학습된 n-그램 언어 모델이다.
실시 예를 계속하면, 언어 모델(154)은 다른 대체 입력들(203)의 용어들보다 (언어 모델(154)을 학습시키는 데 사용된 코퍼스에서) 동시에 더 자주 발생할 확률이 높은 "see" "you" 및 "later"을 나타내는 "see you later"에 대한 점수를 결정하는데 이용될 수 있다.
점수를 결정하는 일부 구현예에서, 채점 엔진(126)은 추가적으로 및/또는 택일적으로 하나 이상의 메시지 생성 엔진(128)으로부터의 하나 이상의 응답 콘텐트 점수를 이용한다. 이들 구현예들 중 일부에서, 채점 엔진(126)은 언어 모델(154)에 기초하여 결정된 점수 중 2개 이상의 점수 사이에 충분한 차이(variation)가 없을 때 메시지 생성 엔진(들)(128)로부터의 응답 콘텐트 점수를 이용한다. 일반적으로, 입력(원래 자연어 입력 또는 대체 입력)에 대한 메시지 생성 엔진들(128) 중 하나에 의해 제공된 응답 콘텐트 점수는 그 입력에 기초하여 그 엔진(128)에 의해 생성된 응답이 얼마나 "양호"한지를 나타낸다. 예를 들어, 엔진들(126) 중 하나는 "채팅 응답"을 제공할 수 있고, 입력에 강하게 상관되는 스크립트된 응답이 있는 경우 양호한 응답(good response)을 나타내는 응답 콘텐트 점수를 제공할 수 있다. 또한, 예를 들어, 엔진들(128) 중 하나는 "검색 결과들"로부터 콘텐트를 제공할 수 있고, 입력에 대한 적어도 하나의 검색 결과들이 고품질 검색 결과 및/또는 특정 "유형"(예: "one box result", "knowledge card", "curated response")인 경우 양호한 응답을 나타내는 응답 콘텐트 점수를 제공할 수 있다.
이용된 기술(들)에 관계없이, 채점 엔진(126)은 선택된 입력에 응답하는 응답 콘텐트(205)를 생성하기 위해 응답 리소스 데이터베이스(156)를 이용하는 메시지 생성 엔진(들)(128)에 상기 선택된 입력(204)을 제공한다. 응답 콘텐트(205)는 자연어 입력(201)에 대한 응답으로서 사용자에게 가청 및/또는 시각적 프리젠테이션을 위해 메시지 교환 클라이언트(107i)에 제공된다. 예를 들어, 응답 콘텐트(205)는 메시지 교환 스레드의 자연어 입력(201)과 동시에 디스플레이하기 위해 메시지 교환 클라이언트(1071)에 의해 메시지 교환 스레드에 통합될 수 있다.
도 2에, 인터넷유행어 측정 엔진(130) 및 인터넷유행어 측정(측정치들) 데이터베이스(156)도 도시되어 있다. 일부 구현 예에서, 하나 이상의 인터넷유행어 용어를 정규화된 용어로의 "번역"을 포함하는 선택된 입력(204)을 결정하는 것에 응답하여, 채점 엔진(126)은 인터넷유행어 측정 엔진(130)에 번역의 발생 표시(indication)를 제공하고 및/또는 번역된 인터넷유행어 용어 및/또는 정규화된 용어의 표시를 제공할 수 있다. 본 명세서에 설명된 바와 같이, 일부 구현 예에서, 그 표시 및/또는 추가 표시는 하나 이상의 사용자에 대한 "인터넷유행어 측정치" (그리고 선택적으로 하나 또는 그 이상의 특정 인터넷유행어 용어 및/또는 정규화된 용어들)를 결정하는데 이용될 수 있다. 본원에 기술된 바와 같이, 인터넷유행어 측정치 및/또는 부가적인 인터넷유행어 측정치는 응답 콘텐트(205)에 인터넷유행어 용어(들)를 포함할지 여부 및/또는 정규화된 용어 대신에 추가 응답 콘텐트에 인터넷유행어 용어(들)를 포함할지를 결정하기 위해 메시지 생성 엔진(들)(128)에 의해 이용될 수 있다.
실시 예를 계속하면, 채점 엔진(126)은 인터넷유행어를 포함하는 자연어 입력이 대체 입력으로 변환된 "번역"이 발생했다는 일반 표시(general indication)를 인터넷유행어 측정 엔진(130)에 제공할 수 있다. 상기 일반 표시는 사용자에 대한, 사용자 그룹에 대한, 및/또는 다른 파라미터들에 대한 일반적인 인터넷유행어 측정치를 결정하기 위해 인터넷유행어 측정 엔진(130)에 의해 이용될 수 있다. 채점 엔진(126)은 부가적으로 및/또는 대안적으로, 인터넷유행어 용어 및/또는 자연어 입력의 인터넷유행어 용어 및 인터넷유행어 문구 및/또는 이들 인터넷유행어 용어의 선택된 정규화 버전의 표시를 인터넷유행어 측정 엔진(130)에 제공할 수 있다. 예를 들어, 입력(201)이 "cu I8r"이고 상기 선택된 입력(204)이 "see you later"인 경우, 채점 엔진(126)은 "c"의 인터넷유행어가 "see"로 정규화되고, "u"의 인터넷유행어가 "you"로 정규화되고, "I8r"의 인터넷유행어가 "later"로 정규화되고, 및/또는 "cu I8r"의 인터넷유행어가 "see you later"로 정규화되었다는 표시(들)를 인터넷유행어 측정 엔진(130)에 제공할 수 있다. 이들 표시들은 인터넷유행어 측정 엔진(130)에 의해 이용되어, 이들 용어들 및/또는 문구에 특정한 하나 이상의 인터넷유행어 측정치들을 생성할 수 있고, 메시지 교환 클라이언트(107i)를 통해, 다른 메시지 교환 클라이언트를 통해, 및/또는 다른 애플리케이션을 통해 사용자에 의한 이들 용어 및/또는 문구의 다른 번역 인스턴스에 추가적으로 기초할 수 있다.
메시지 생성 엔진(들)(128)은 응답 콘텐트(205) 및/또는 추가 응답 콘텐트에 인터넷유행어 용어(들)를 포함할지 여부를 결정할 때 데이터베이스(156)의 인터넷유행어 측정치(들)를 이용할 수 있다. 실시 예를 계속하여, 선택된 입력(204)이 "see you later"라고 가정하고, 메시지 생성 엔진(128) 중 하나가 응답 리소스 데이터베이스(156)로부터 상기 선택된 입력(204)에 대한 "see you then"의 스크립트된 응답을 결정한다. 메시지 교환 클라이언트(107i)의 사용자에게 적용 가능한 데이터베이스(156)의 하나 이상의 인터넷유행어 측정치(들)에 기초하여, 메시지 생성 엔진(128)은 "see"를 "c"로 대체하고, "you"를 "u"로 대체하고, "c u then"의 출력을 제공할 수 있다.
도 3 및 도 4를 참조하면, 여기에 설명된 다양한 컴포넌트 및 기술에 대한 추가적인 설명이 제공된다. 또한, 도 3 및 도 4는 본 명세서에 설명 된 구현 예에 따라 클라이언트 컴퓨팅 장치(106i)의 사용자와 자동화된 어시스턴트(120)간에 발생할 수 있는 대화의 예를 디스플레이하는 디스플레이 스크린(140)과 도 1의 클라이언트 컴퓨팅 장치(106i)를 도시한다. 디스플레이 스크린(140)은 또한 컴퓨팅 장치(106i)가 하나 이상의 동작을 수행하게 하기 위해 사용자와 상호 작용할 수 있는 시스템 인터페이스 요소(381, 382, 383)를 포함한다. 디스플레이 스크린(140)은 사용자가 가상 키보드를 통해 자연어 입력을 생성하도록 선택할 수 있는 텍스트 응답 인터페이스 요소(384) 및 사용자가 마이크로폰을 통해 자연어 입력을 생성하도록 선택할 수 있는 음성 응답 인터페이스 요소(385)를 더 포함한다.
도 3은 클라이언트 컴퓨팅 장치(106i)의 하나 이상의 사용자 인터페이스 입력 장치를 통해 사용자에 의해 제출되는 자연어 입력(380A-D)을 포함한다. 도 3은 자동화된 어시스턴트(120)에 의해 생성된 응답(390A-390D)을 더 포함한다.
"Helloooooooooooooo"의 입력(380A)은 용어 정규화 엔진(122)에 의해 "hello"로 정규화될 수 있다. 대체 입력 엔진(124)은 대체 입력으로서 "hello"를 이용할 수 있다. 채점 엔진(126)은 "Helloooooooooooooo"에 대한 제1 점수, "hello"에 대한 제2 점수를 생성하고, 그 점수들에 기초하여 상기 선택된 입력으로서 "hello"를 선택하고, "hello"를 메시지 생성 엔진들(128)에 제공할 수 있다. 메시지 생성 엔진들(128) 중 하나는 응답 리소스 데이터베이스(156)에서 "hello"와 매핑되거나 그렇지 않으면 연관된 채팅 응답에 기초하여 응답(390A)을 생성할 수 있다.
입력(380B)의 "gr8"은 입력(380B)의 "great"로 정규화될 수 있고, 입력 (380B)의 "thx"는 용어 정규화 엔진(122)에 의해 "thanks"로 정규화될 수 있다. 대체 입력 엔진(124)은 "gr8 thanks", "great thx" 및 "great thanks"의 대체 입력을 생성할 수 있다. 채점 엔진(126)은 입력(380B) 및 대체 입력들 각각에 대한 점수를 생성할 수 있다. 일부 구현 예에서, "great thanks"에 대한 점수는 적어도 부분적으로 본 명세서에서 설명된 바와 같이 응답 콘텐트 점수에 기초하여 생성될 수 있고, 그 응답 콘텐트 점수는 선택적으로 이전 응답(390A) 및/또는 이전 입력(380A)을 고려하여 메시지 생성 엔진들(128) 중 하나에 의해 생성될 수 있다. 채점 엔진(126)은 메시지 생성 엔진(128)에 제공하기 위해 상기 선택된 입력으로서 "great thanks"를 선택한다. 메시지 생성 엔진들(128) 중 하나는 응답 리소스 데이터베이스(156)에서 "Good to hear"와 맵핑되거나 그렇지 않으면 연관되는 채팅 응답에 기초하여 응답(390B)을 생성할 수 있다.
입력(380C)은 "c e o of numbers company?"이다. 용어 정규화 엔진(122)은 "c"를 "see"로, "e"를 "enemy"로, "o"를 "oh" 및 "over"로 정규화할 수 있다. 대체 입력 엔진(124)은 "see e o of numbers company?", "see enemy over numbers company?" 등의 대체 입력들을 생성할 수 있다. 채점 엔진(126)은 입력(380C) 및 대체 입력들 각각에 대한 점수를 생성할 수 있다. 채점 엔진(126)은 상기 점수들에 기초하여, "c e o of numbers company?"의 입력(380C)을 선택하여 메시지 생성 엔진(들)(128)에 제공할 수 있다. 메시지 생성 엔진들(128) 중 하나는 입력(380C)에 대해 리턴된 검색 결과에 기초하여 응답(390C)을 생성할 수 있다. 상기 응답(390C)은 상기 콘텐트가 입력(380C)에 응답한다는 것을 나타내는 "Here's what I found:"이라는 텍스트를 포함하고, 가상의(fictional) "Numbers Company"의 가상의 CEO에 집중된 "카드(card)"를 포함한다. 상기 카드는 CEO 이미지, CEO 이름, 선택시 (메시지 교환 클라이언트(107i) 또는 별도의 애플리케이션 내에서) 사용자에게 CEO와 관련된 더 많은 정보를 제공할 수 있는 추가 정보를 볼 수 있는 선택 가능한 옵션을 포함한다. "cu I8r"의 입력(380D)은 자동화된 어시스턴트(120)에 의해 "see you later"로 번역될 수 있고, "Later"의 스크립트된 응답(390D)을 제공하는데 이용될 수 있다.
도 4는 클라이언트 컴퓨팅 장치(106i)의 하나 이상의 사용자 인터페이스 입력 장치를 통해 사용자에 의해 제출되는 자연어 입력(480A-D)을 포함한다. 도 4는 자동화된 어시스턴트(120)에 의해 생성된 응답(490A-490D)을 더 포함한다. 도 4의 예는, 무엇보다도, 하나 이상의 메시지 생성 엔진(128)이 인터넷유행어를 생성된 응답(490A-490D)에 선택적으로 통합하기 위해 클라이언트 컴퓨팅 장치(106i)의 사용자와 연관된 인터넷유행어 측정치(들)를 어떻게 활용할 수 있는지를 도시한다.
자동화된 어시스턴트(120)는 "how r u today?"의 입력(480A)에 응답하여 "Gr8 thx - and you?"의 응답(490A)을 생성한다. 응답(490A)은 인터넷유행어 용어 "Gr8"및 "thx"를 포함하고, 여기에 설명된 바와 같이 인터넷유행어 측정치에 기초한 인터넷유행어 용어를 포함할 수 있다. 일부 구현 예에서, 메시지 생성 엔진ㄷ드들) 중 하나는 입력(480A)(또는 본 명세서에서 설명된 바와 같이 결정된 입력(480A)의 번역)에 대한 스크립트된 인터넷유행어 응답으로서 표시되는 것에 기초하여 응답(490A)을 결정할 수 있다. 이러한 구현예들에서, 메시지 생성 엔진(128)은 임계치를 만족시키는 입력(480A)을 제출한 사용자의 인터넷유행어 측정치에 기초하여 그리고 "인터넷유행어" 응답으로서 표시되는 것에 기초하여 응답(490A)을 선택할 수 있다. 일부 구현 예에서, 메시지 생성 엔진들(128) 중 하나는 입력(480A)에 대한 응답으로서 "Great thanks - and you?"를 최초로 결정하고(또는 본원에 기술된 바와 같이 결정된 입력(480A)의 번역), 그 다음 "Great"을 "Gr8"로, "thanks"를 "thx"로 바꾸지만 "you"을 "u"로 바꾸지 않는 것에 기초하여 응답(490A)을 결정할 수 있다. 예를 들어, 사용자의 인터넷유행어 측정치는 사용자가 일반적으로 "Gr8" 및 "thx"를 인터넷유행어로 사용한다는 것을 나타낼 수 있지만, "u"를 인터넷유행어로 거의 (또는 전혀) 사용하지 않음을 나타낼 수 있다.
"gr8 as well"의 입력(480B)은 인터넷유행어 용어를 포함하지 않는 "Good to hear"의 스크립트된 응답(490B)으로 응답된다. 예를 들어, 메시지 생성 엔진들(128) 중 하나는 입력(480B)(또는 본 명세서에서 설명된 바와 같이 결정된 입력(480B)의 번역)에 대한 스크립트된 인터넷유행어 응답으로서 표시되는 응답 (490B)을 결정할 수 있다.
"Who's the dog in Acme Movie"라는 입력(480C)은 응답(490C)로 응답된다. 메시지 생성 엔진들(128) 중 하나는 입력(490C)에 대해 리턴된 검색 결과에 기초하여 응답(490C)을 생성할 수 있다. 응답(490C)은 상기 콘텐트가 메시지(480C)에 응답하고, 가상의 영화 "Acme Movie"에서 활동한 가상의 개(fictional dog)에 초점을 맞춘 "카드"가 포함되어 있음을 나타내기 위해 "Here's what I found:"라는 텍스트를 포함한다. 상기 카드는 개의 이미지, 개의 "공식적인" 이름(WALTER P.)을 포함하며, 개에 대한 추가 정보를 포함한다. 상기 추가 정보는 가상의 Acme 영화에서 역할을 맡은 개의 이름 "Great"을 포함한다. 또한 "Great"라는 용어는 490A의 응답임에도 불구하고 상기 추가 정보에서 번역되지 않았다는 점도 주목된다. 이는 예를 들어, 검색 결과에 기초하여 생성된 응답(예를 들어, 스크립트된 응답에 기초하여 생성된 응답과 비교하여)의 용어와 같은 특정 응답의 용어 대신에 인터넷유행어 용어를 이용하지 않는 규칙에 기초할 수 있다.
"c u I8r"의 입력(480D)은 인터넷유행어를 포함하는 "I8r"의 응답(490D)으로 응답되며 여기에 설명된 기술에 따라 생성될 수 있다.
도 5는 인터넷유행어를 포함하는 자연어 입력을 수신하고, 인터넷유행어를 정규화된 형식으로 변환하고, 그 자연어 입력에 응답하는 응답 콘텐트를 생성하기 위해 상기 정규화된 형식을 이용하고, 상기 자연어 입력에 대한 응답으로 제시할 응답 콘텐트를 제공하는 예시적인 방법(500)을 도시하는 흐름도를 제시한다. 편의상, 흐름도의 동작은 동작을 수행하는 시스템을 참조하여 설명된다. 상기 시스템은 자동화된 어시스턴트(120)와 같은 다양한 컴퓨터 시스템의 다양한 컴포넌트를 포함할 수 있다. 또한, 방법(500)의 동작이 특정 순서로 도시되어 있지만, 이는 제한하려는 것이 아니다. 하나 이상의 동작은 재정렬, 생략 또는 추가될 수 있다.
블록(550)에서, 상기 시스템은 하나 이상의 사용자 인터페이스 입력 장치를 통해 사용자에 의해 공식화되고, 메시지 교환 스레드(예를 들어, 사용자와 자동화된 어시스턴트 사이의 스레드 및/또는 사용자, 자동 어시스턴트 및 하나 이상의 추가 사용자 간의 스레드)에서 사용자에 의해 제공되는 자연어 입력을 수신한다.
블록(552)에서, 상기 시스템은 블록(550)의 자연어 입력의 하나 이상의 용어 각각에 대한 하나 이상의 정규화를 식별한다.
블록(554)에서, 상기 시스템은 블록(554)의 정규화에 기초하여 블록(550)의 자연어 입력에 대한 후보 대체 입력들을 생성한다.
블록(556)에서, 상기 시스템은 블록(554)의 자연어 입력에 대한 점수를 결정하고, 블록(554)에서 결정된 후보 대체 입력들 각각에 대한 점수를 결정한다. 일부 구현 예에서, 상기 점수들을 결정함에 있어서, 상기 시스템은 블록(556A)에서 언어 모델에 기초하여 하나 이상의 점수를 결정하고 및/또는 블록(556B)에서 응답 콘텐트 점수에 기초하여 상기 점수들중 하나 이상을 결정한다.
블록(558)에서, 상기 시스템은 상기 점수에 기초하여 하나 이상의 (예를 들어, 단지 하나의) 입력을 선택한다. 특히, 상기 시스템은 블록(554)의 후보 대체 입력들 중 하나 이상 및/또는 블록(550)의 자연어 입력을 이들 입력에 대한 점수들에 기초하여 선택한다.
블록(560)에서, 상기 시스템은 블록(558)에서 선택된 입력(들)에 기초하여 응답 콘텐트를 결정한다. 예를 들어, 상기 시스템은 채팅 응답인 응답 콘텐트 또는 검색 결과 응답인 응답 콘텐트를 결정할 수 있다.
블록(562)에서, 상기 시스템은 자연어 입력에 대한 응답으로서 블록(560)의 응답 콘텐트를 메시지 교환 스레드에 통합한다.
도 6은 사용자에 대한 인터넷유행어 측정치를 결정하고, 사용자로부터 자연어 입력을 수신하고, 상기 인터넷유행어 측정치 및 자연어 입력에 기초하여 자연어 출력을 결정하고, 자연어 입력에 대한 응답으로 사용자에 표시하기 위해 자연어 출력을 제공하는 본 발명의 일 실시 예에 따른 방법(600)을 나타내는 흐름도를 제시한다. 편의상, 상기 흐름도의 동작은 그 동작을 수행하는 시스템을 참조하여 설명된다. 상기 시스템은 자동화된 어시스턴트(120)와 같은 다양한 컴퓨터 시스템의 다양한 컴포넌트들을 포함할 수 있다. 또한, 방법(600)의 동작이 특정 순서로 도시되어 있지만, 이것에 한정되는 것은 아니다. 하나 이상의 동작은 재정렬, 생략 또는 추가될 수 있다.
블록(650)에서, 상기 시스템은 하나 이상의 사용자에 의한 메시지 교환 스레드에 기여하는 메시지들의 인터넷유행어의 인스턴스들의 카운트에 적어도 부분적으로 기초하여 하나 이상의 사용자에 대한 인터넷유행어 측정치를 결정한다.
블록(652)에서, 상기 시스템은 하나 이상의 사용자 인터페이스 입력 장치를 통해 사용자에 의해 공식화(표현)되고, 진행중인 메시지 교환 스레드(예를 들어, 사용자와 자동화된 어시스턴트 사이의 스레드 및/또는 사용자, 자동화된 어시스턴트 및 하나 이상의 추가 사용자 간의 스레드)에서 사용자에 의해 제공되는 자연어 입력을 수신한다.
블록(654)에서, 상기 시스템은 블록(650)에서 결정된 인터넷유행어 측정치에 기초하여 그리고 블록(652)의 자연어 입력에 기초하여, 하나 이상의 인터넷유행어 용어를 통합하는 자연어를 결정한다. 일부 구현 예에서, 상기 시스템은 블록(650)에서 결정된 인터넷유행어 측정치에 기초하고 그리고 하나 이상의 추가 인터넷유행어 측정치에 기초하여 하나 이상의 인터넷유행어 용어를 통합하는 자연어 출력을 결정한다.
블록(656)에서, 상기 시스템은 블록(654)의 자연어 출력을 포함하는 응답을 진행중인 메시지 교환 스레드에 통합한다.
도 7은 여기에 기술된 기술들의 하나 이상의 양태들을 수행하기 위해 선택적으로 이용될 수 있는 예시적인 컴퓨팅 장치(710)의 블록도이다. 일부 구현 예에서, 하나 이상의 클라이언트 컴퓨팅 장치(1061-N), 자동화된 어시스턴트(120) 및/또는 다른 컴포넌트(들)는 예시적인 컴퓨팅 장치(710)의 하나 이상의 컴포넌트들을 포함할 수 있다.
컴퓨팅 장치(710)는 전형적으로 버스 서브시스템(712)을 통해 다수의 주변 장치들과 통신하는 적어도 하나의 프로세서(714)를 포함한다. 이러한 주변 장치들은 예를 들어 메모리 서브시스템(725) 및 파일 저장 서브시스템(726), 사용자 인터페이스 출력 장치(720), 사용자 인터페이스 입력 장치(722) 및 네트워크 인터페이스 서브시스템(716)을 포함하는 저장 서브시스템(724)을 포함할 수 있다. 상기 입력 및 출력 장치는 컴퓨팅 장치(710)와의 사용자 상호 작용을 허용한다. 네트워크 인터페이스 서브시스템(716)은 외부 네트워크에 인터페이스를 제공하고, 다른 컴퓨팅 장치의 대응 인터페이스 장치에 연결된다.
사용자 인터페이스 입력 장치들(722)은 키보드, 마우스, 트랙볼, 터치 패드 또는 그래픽 태블릿과 같은 포인팅 장치들, 스캐너, 디스플레이에 통합된 터치 스크린, 음성 인식 시스템, 마이크로폰 및/또는 다른 유형의 입력 장치와 같은 오디오 입력 장치를 포함할 수 있다. 일반적으로, "입력 장치"라는 용어의 사용은 컴퓨팅 장치(710) 또는 통신 네트워크상에 정보를 입력하는 모든 가능한 유형의 장치 및 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 장치들(720)은 디스플레이 서브시스템, 프린터, 팩스 머신, 또는 오디오 출력 장치들과 같은 비-시각적 디스플레이들을 포함할 수 있다. 상기 디스플레이 서브시스템은 음극선관(CRT), 액정 디스플레이(LCD)와 같은 평판 장치, 프로젝션 장치, 또는 가시적 이미지를 생성하기 위한 다른 메커니즘을 포함할 수 있다. 상기 디스플레이 서브시스템은 또한 오디오 출력 장치를 통한 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, "출력 장치"라는 용어의 사용은 컴퓨팅 장치(710)로부터 사용자 또는 다른 기계 또는 컴퓨팅 장치로 정보를 출력하는 모든 가능한 유형의 장치 및 방법을 포함하도록 의도된다.
저장 서브시스템(724)은 여기에 설명된 일부 또는 모든 모듈의 기능을 제공하는 프로그래밍 및 데이터 구조를 저장한다. 예를 들어, 저장 서브시스템(724)은도 5 및 도 6의 방법의 선택된 양태들을 수행하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈은 일반적으로 프로세서(714) 단독으로 또는 다른 프로세서와 조합하여 실행된다. 저장 서브시스템(724)에서 사용되는 메모리(725)는 프로그램 실행 동안 명령어들 및 데이터의 저장을 위한 메인 랜덤 액세스 메모리(RAM)(730) 및 고정 명령어들이 저장되는 읽기 전용 메모리(ROM)(732)를 포함하는 다수의 메모리들을 포함할 수 있다. 파일 저장 서브시스템(726)은 프로그램 및 데이터 파일을 위한 영구 저장 장치를 제공할 수 있으며, 하드 디스크 드라이브, 연관된 이동식 매체를 갖는 플로피 디스크 드라이브, CD-ROM 드라이브, 광 드라이브 또는 이동식 매체 카트리지를 포함할 수 있다. 특정 구현 예들의 기능을 구현하는 모듈들은 저장 서브시스템(724)의 파일 저장 서브시스템(726) 또는 프로세서 (들)(714)에 의해 액세스 가능한 다른 머신에 저장될 수 있다.
버스 서브시스템(712)은 컴퓨팅 장치(710)의 다양한 컴포넌트들 및 서브시스템들이 의도된 바와 같이 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브시스템(712)은 단일 버스로서 개략적으로 도시되어 있지만, 버스 서브시스템의 다른 구현 예는 다수의 버스를 사용할 수 있다.
컴퓨팅 장치(710)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 장치를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 7에 도시된 컴퓨팅 장치(710)의 설명은 단지 일부 구현 예를 설명하기 위한 구체적인 예로서만 의도된다. 컴퓨팅 장치(710)의 많은 다른 구성은, 도 7에 도시된 컴퓨팅 장치보다 많은 컴포넌트 또는 더 적은 컴포넌트를 갖는 것이 가능하다.
여기에 설명된 시스템이 사용자들에 대한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 상황에서, 사용자는 여기에 설명된 시스템들, 프로그램들 또는 기능들이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 직업, 사용자의 선호도 또는 사용자의 현재 위치에 대한 정보)의 수집을 가능하게 할 수 있는 경우 및 사용자가 서버로부터 콘텐츠 또는 통신을 송신하는 경우 모두에 대해 사용자가 선택을 할 수 있게 하는 제어를 제공받을 수 있다. 또한, 특정 데이터는 저장되거나 사용되기 전에 하나 이상의 방법으로 처리되어 개인 식별 정보가 제거된다. 예를 들어, 사용자의 아이덴티티는 사용자에 대한 개인 식별 정보가 결정될 수 없도록, 또는 위치 정보가 획득된 사용자의 지리적 위치를 일반화하여(예를 들어, 도시, 우편 번호 또는 주 레벨(state level)) 사용자의 특정 위치가 결정될 수 없도록 처리될 수 있다. 따라서, 사용자는 어떤 정보가 사용자에 대해 수집되는지, 그 정보가 어떻게 사용되는지, 그리고 어떤 정보가 사용자에게 제공되는지를 제어할 수 있다.
일부 구현예들이 본 명세서에서 설명되고 도시되었지만, 기능을 수행하고 및/또는 결과 및/또는 본원에 기술된 하나 이상의 이점을 얻기위한 다양한 다른 수단 및/또는 구조들이 이용될 수 있으며, 그러한 변형들 및/또는 수정들은 본 명세서에서 설명된 구현예들의 범위 내에 있는 것으로 간주된다. 보다 일반적으로는, 여기에 기술된 모든 파라미터들, 치수들, 재료들 및 구성들은 예시적인 것이며, 실제 파라미터들, 치수들, 재료들 및/또는 구성들은 특정 용도 또는 그 교시가 사용되는 용도에 의존할 것이다. 당업자는 일상적인 실험만을 사용하여 본 명세서에서 설명된 특정 구현예들에 대한 많은 균등물을 인식할 수 있거나 또는 확인할 수 있을 것이다. 따라서, 전술한 구현예들은 단지 예일 뿐이며, 첨부된 청구 범위 및 그 등가물의 범위 내에서 구현예들은 구체적으로 기술되고 청구된 것과 다르게 실시될 수 있음을 이해해야 한다. 본 개시의 구현예들은 여기에 기술된 각각의 개별적인 특징, 시스템, 아티클, 재료, 키트 및/또는 방법에 관한 것이다. 또한, 그러한 특징, 시스템, 아티클, 재료, 키트 및/또는 방법이 상호 불일치하지 않는 경우, 둘 이상의 그러한 특징, 시스템, 아티클, 재료, 키트 및/또는 방법의 모든 조합이 본 개시의 범위 내에 포함된다.

Claims (22)

  1. 하나 이상의 프로세서들에 의해 수행되는 방법으로서,
    하나 이상의 사용자들에 의한 메시지 교환 스레드들에 기여하는 복수의 메시지들에 기초하여 하나 이상의 사용자들에 대한 인터넷유행어(chatspeak) 측정치를 결정하는 단계;
    적어도 사용자와 자동화된 어시스턴트 간의 진행중인 메시지 교환 스레드의 일부로서 상기 사용자들 중 상기 사용자에 의해 제출된 자연어 입력을 수신하는 단계 -상기 자연어 입력은 상기 사용자의 컴퓨팅 장치의 사용자 인터페이스 입력 장치를 통해 상기 사용자에 의해 표현됨-;
    상기 자연어 입력에 대한 상기 자동화된 어시스턴트의 응답에 포함시키기 위해 자연어 출력을 생성하는 단계 -상기 자연어 출력을 생성하는 단계는 하나 이상의 인터넷유행어 용어들을 상기 인터넷유행어 측정치에 기초한 상기 자연어 출력에 통합하는 단계를 포함함-; 그리고
    상기 자동화된 어시스턴트의 상기 응답을 상기 메시지 교환 스레드에 포함시키는 단계를 포함하며, 상기 응답은 상기 하나 이상의 인터넷유행어 용어들을 갖는 상기 자연어 출력을 포함하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  2. 제1항에 있어서,
    상기 응답을 상기 메시지 교환 스레드에 포함시키는 단계는 상기 사용자의 컴퓨팅 장치상에서 동작하는 메시지 교환 클라이언트의 그래픽 사용자 인터페이스에 디스플레이되는 상기 메시지 교환 스레드의 전사(transcript)에 상기 응답을 삽입하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  3. 제1항에 있어서,
    상기 인터넷유행어 측정치는 상기 자연어 출력에 포함된 상기 인터넷유행어 용어들을 적어도 포함하는 하나 이상의 인터넷유행어 용어들의 그룹에 특정되며, 상기 하나 이상의 인터넷유행어 용어들을 상기 자연어 출력에 통합하는 단계는 상기 인터넷유행어 용어들이 포함된 상기 그룹에 특정된 상기 인터넷유행어 측정치에 기초하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  4. 제1항에 있어서,
    상기 인터넷유행어를 상기 자연어 출력에 통합하는 단계는,
    상기 자연어 입력에 응답하는 초기 자연어 출력을 식별하는 단계;
    상기 초기 자연어 출력의 하나 이상의 소정의 용어들이 상기 인터넷유행어 용어들에 매핑하는지를 결정하는 단계; 그리고
    상기 초기 자연어 출력의 상기 소정의 용어들을 상기 인터넷유행어 용어들로 대체하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  5. 제1항에 있어서,
    상기 하나 이상의 사용자들에 대한 추가적인 인터넷유행어 측정치를 결정하는 단계를 더 포함하며, 상기 자연어 출력을 생성하는 단계는 상기 인터넷유행어 측정치에 기초하고 그리고 상기 추가적인 인터넷유행어 측정치에 기초하여 인터넷유행어 용어들 중 하나 이상을 상기 자연어 출력에 통합하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  6. 제5항에 있어서,
    상기 인터넷유행어 측정치는 상기 사용자에게 특정되고, 상기 자연어 출력에 통합되지 않은 하나 이상의 추가적인 인터넷유행어 용어들을 포함하는 복수의 인터넷유행어 용어들에 적용 가능하며,
    상기 추가적인 인터넷유행어 측정치는 상기 사용자에게 특정되지 않으며, 상기 자연어 출력에 통합된 상기 인터넷유행어 용어들 중 적어도 하나에 특정되는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  7. 제1항에 있어서, 상기 인터넷유행어 측정치는 상기 사용자에게 특정(specific)되는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  8. 제7항에 있어서,
    상기 메시지 교환 스레드들은 적어도 상기 사용자와 상기 자동화된 어시스턴트 간의 과거의 자동화된 어시스턴트 메시지 교환 스레드들을 포함하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  9. 제8항에 있어서,
    상기 인터넷유행어 측정치를 결정하는 단계는 인터넷유행어가 상기 메시지들에서 이용된 인스턴스들의 카운트에 기초하고, 상기 방법은 상기 카운트가 기초하는 상기 인스턴스들 중 하나를 결정하는 단계를 더 포함하며,
    상기 인스턴스들 중 하나를 결정하는 단계는,
    상기 과거의 자동화된 어시스턴트 메시지 교환 스레드들 중 하나에서 상기 메시지들 중 소정의 메시지를 수신하는 단계 -상기 소정의 메시지는 사용자에 의해 표현되고 적어도 제1 용어 및 제2 용어를 포함함 -;
    상기 자연어 입력의 적어도 상기 제1 용어에 대해, 상기 제1 용어의 제1 정규화를 식별하는 단계;
    상기 자연어 입력에 대한 후보 대체 입력을 생성하는 단계 - 상기 생성하는 단계는 상기 제1 용어를 상기 제1 정규화로 대체하고, 상기 후보 대체 입력에 상기 제2 용어의 제2 정규화 또는 제2 용어를 포함시킴 -;
    상기 자연어 입력에 대한 제1 점수를 결정하는 단계;
    상기 후보 대체 입력에 대한 제2 점수를 결정하는 단계;
    상기 제1 점수 및 상기 제2 점수에 기초하여 상기 후보 대체 입력을 선택하는 단계;
    상기 후보 대체 입력에 기초하여 응답 콘텐트를 결정하는 단계;
    상기 자동화된 어시스턴트에 의한 상기 자연어 입력에 대한 응답으로서 상기 응답 콘텐트를 상기 과거의 자동화된 어시스턴트 메시지 교환 스레드들 중 하나에 통합하는 단계 -상기 응답 콘텐트를 통합하는 단계는 상기 후보 대체 입력을 선택하는 것에 기초함 -; 그리고
    상기 후보 대체 입력을 선택하는 것에 기초하여 상기 인스턴스들 중 하나의 표시(indication)를 저장하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  10. 제9항에 있어서,
    상기 자연어 입력에 대한 상기 제1 점수를 결정하는 단계는 적어도 상기 제1 용어 및 상기 제2 용어를 언어 모델에 적용하는 것에 기초하고,
    상기 후보 대체 입력에 대한 상기 제2 점수를 결정하는 단계는 상기 언어 모델에 적어도 제2 용어 또는 제2 정규화 중 어느 하나와 상기 제1 정규화를 적용하는 것에 기초하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  11. 제9항에 있어서,
    상기 인터넷유행어 측정치는 상기 사용자에 특정되고, 상기 인터넷유행어 용어들에 특정되며,
    상기 후보 대체 입력을 선택하는 것에 기초하여 상기 인스턴스들 중 하나의 표시를 저장하는 단계는 적어도 상기 제1 용어 또는 상기 제1 정규화에 대한 표시의 연관성을 저장하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  12. 제1항에 있어서,
    상기 인터넷유행어 측정치를 결정하는 단계는,
    인터넷유행어가 상기 메시지들에서 이용된 인스턴스들의 카운트, 상기 메시지들에서 사용된 하나 이상의 인터넷유행어 용어들의 양, 상기 인터넷유행어 용어들의 공통성 및/또는 상기 인터넷유행어 용어들의 사용의 일관성으로 구성된 그룹으로부터 선택된 적어도 하나에 기초하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  13. 하나 이상의 프로세서들에 의해 수행되는 방법으로서,
    적어도 사용자와 자동화된 어시스턴트 간의 메시지 교환 스레드의 일부로서 상기 사용자에 의해 제출된 자연어 입력을 수신하는 단계 -상기 자연어 입력은 적어도 제1 용어 및 제2 용어를 포함하며, 상기 사용자의 컴퓨팅 장치의 사용자 인터페이스 입력 장치를 통해 상기 사용자에 의해 표현됨-;
    상기 자연어 입력의 적어도 상기 제1 용어에 대해, 상기 제1 용어의 제1 정규화를 식별하는 단계;
    상기 자연어 입력에 대한 후보 대체 입력을 생성하는 단계 -상기 후보 대체 입력을 생성하는 단계는 상기 제1 용어를 상기 제1 정규화로 대체하고, 상기 후보 대체 입력에 상기 제2 용어 또는 상기 제2 용어의 제2 정규화를 포함시키는 단계를 포함함-;
    적어도 상기 제1 용어 및 상기 제2 용어를 언어 모델에 적용하는 것에 기초하여 상기 자연어 입력에 대한 제1 점수를 결정하는 단계;
    상기 제2 용어 또는 상기 제2 정규화 중 어느 하나와 상기 제1 정규화를 상기 언어 모델에 적어도 적용하는 것에 기초하여 상기 후보 대체 입력에 대한 제2 점수를 결정하는 단계;
    상기 제1 점수 및 상기 제2 점수에 기초하여 상기 후보 대체 입력을 선택하는 단계;
    상기 후보 대체 입력에 기초하여 응답 콘텐트를 결정하는 단계; 그리고
    상기 자동화된 어시스턴트에 의한 상기 자연어 입력에 대한 응답으로서 응답 콘텐트를 메시지 교환 스레드에 통합하는 단계를 포함하며, 상기 메시지 교환 스레드에 상기 응답 콘텐트를 통합하는 단계는 상기 후보 대체 입력을 선택하는 것에 기초하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  14. 제13항에 있어서,
    상기 응답 콘텐트를 상기 메시지 교환 스레드에 통합하는 단계는,
    상기 응답 콘텐트를 상기 사용자의 컴퓨팅 장치상에서 동작하는 메시지 교환 클라이언트의 그래픽 사용자 인터페이스에 디스플레이된 상기 메시지 교환 스레드의 전사(transcript)에 삽입하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  15. 제13항에 있어서, 상기 방법은,
    상기 응답 콘텐트에 대한 응답 콘텐트 점수를 결정하는 단계를 더 포함하며,
    상기 제1 점수를 결정하는 단계는 상기 응답 콘텐트 점수에 더 기초하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  16. 제15항에 있어서,
    상기 응답 콘텐트는 하나 이상의 입력 파라미터들에 맵핑되는 스크립트된(scripted) 응답이고, 상기 응답 콘텐트 점수를 결정하는 단계는 상기 입력 파라미터들의 적어도 일부와 상기 후보 대체 입력의 비교에 기초하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  17. 제15항에 있어서,
    상기 응답 콘텐트는 상기 후보 대체 입력에 응답하는 하나 이상의 검색 결과들에 기초하며, 상기 응답 콘텐트 점수를 결정하는 단계는 상기 검색 결과들 중 적어도 하나의 특성 또는 점수에 기초하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  18. 제17항에 있어서,
    상기 응답 콘텐트 점수를 결정하는 단계는 검색 결과가 특정 유형의 검색 결과인 것을 나타내는 상기 검색 결과들 중 적어도 하나의 특성에 기초하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  19. 제13항에 있어서,
    상기 언어 모델은 n-그램(n-gram) 모델이고, 적어도 상기 제1 용어 및 상기 제2 용어를 상기 언어 모델에 적용하는 것에 기초하여 상기 자연어 입력에 대한 상기 제1 점수를 결정하는 단계는 상기 제1 용어 및 상기 제2 용어 양자 모두를 상기 언어 모델에 적용하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  20. 제13항에 있어서, 상기 방법은 인간들 간의 메시지 교환 스레드들로부터의 메시지들의 정규화에 기초하여 상기 언어 모델을 생성하는 단계를 더 포함하며,
    상기 메시지들의 정규화는 인터넷유행어 용어들이 인터넷유행어로서 이용될 때 정규화된 용어들로 상기 메시지들의 인터넷유행어 용어들을 대체하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  21. 제13항에 있어서, 상기 후보 대체 입력에 기초하여 상기 응답 콘텐트를 결정하는 단계는 상기 후보 대체 입력에 기초하여 하나 이상의 응답 리소스 데이터베이스를 검색하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
  22. 하나 이상의 프로세서들에 의해 수행되는 방법으로서,
    적어도 사용자와 자동화된 어시스턴트 간의 메시지 교환 스레드의 일부로서 상기 사용자에 의해 제출된 자연어 입력을 수신하는 단계 -상기 자연어 입력은 상기 사용자의 컴퓨팅 장치의 사용자 인터페이스 입력 장치를 통해 상기 사용자에 의해 표현됨(formulated)-;
    상기 자연어 입력의 적어도 용어에 대해, 상기 용어의 정규화를 식별하는 단계;
    상기 자연어 입력에 대한 후보 대체 입력을 생성하는 단계 -상기 후보 대체 입력을 생성하는 단계는 상기 후보 대체 입력에 상기 용어 대신에 제1 정규화를 포함시킴-;
    적어도 상기 용어를 언어 모델에 적용하는 것에 기초하여 상기 자연어 입력에 대한 제1 점수를 결정하는 단계;
    상기 언어 모델에 적어도 상기 정규화를 적용하는 것에 기초하여 상기 후보 대체 입력에 대한 제2 점수를 결정하는 단계;
    상기 제1 점수 및 상기 제2 점수에 기초하여 상기 후보 대체 입력을 선택하는 단계;
    상기 후보 대체 입력에 기초하여 응답 콘텐트를 결정하는 단계; 그리고
    자동화된 어시스턴트에 의한 자연어 입력에 대한 응답으로서 상기 응답 콘텐트를 상기 메시지 교환 스레드에 통합하는 단계를 포함하며,
    상기 메시지 교환 스레드에 상기 응답 콘텐트를 통합하는 단계는 상기 후보 대체 입력을 선택하는 것에 기초하는 것을 특징으로 하는 하나 이상의 프로세서들에 의해 수행되는 방법.
KR1020187036264A 2016-05-17 2016-12-27 입력 및/또는 출력이 인터넷유행어를 포함하는 사용자 인터페이스 입력에 응답하여 제시할 출력을 생성 KR102025828B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/157,293 2016-05-17
US15/157,293 US10268683B2 (en) 2016-05-17 2016-05-17 Generating output for presentation in response to user interface input, where the input and/or the output include chatspeak
PCT/US2016/068738 WO2017200589A2 (en) 2016-05-17 2016-12-27 Generating output for presentation in response to user interface input, where the input and/or the output include chatspeak

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020197027446A Division KR102213014B1 (ko) 2016-05-17 2016-12-27 입력 및/또는 출력이 인터넷유행어를 포함하는 사용자 인터페이스 입력에 응답하여 제시할 출력을 생성

Publications (2)

Publication Number Publication Date
KR20180137031A true KR20180137031A (ko) 2018-12-26
KR102025828B1 KR102025828B1 (ko) 2019-09-26

Family

ID=60325482

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197027446A KR102213014B1 (ko) 2016-05-17 2016-12-27 입력 및/또는 출력이 인터넷유행어를 포함하는 사용자 인터페이스 입력에 응답하여 제시할 출력을 생성
KR1020187036264A KR102025828B1 (ko) 2016-05-17 2016-12-27 입력 및/또는 출력이 인터넷유행어를 포함하는 사용자 인터페이스 입력에 응답하여 제시할 출력을 생성

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020197027446A KR102213014B1 (ko) 2016-05-17 2016-12-27 입력 및/또는 출력이 인터넷유행어를 포함하는 사용자 인터페이스 입력에 응답하여 제시할 출력을 생성

Country Status (6)

Country Link
US (2) US10268683B2 (ko)
EP (1) EP3440806A4 (ko)
JP (2) JP6524359B1 (ko)
KR (2) KR102213014B1 (ko)
CN (2) CN113660154B (ko)
WO (1) WO2017200589A2 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10268683B2 (en) * 2016-05-17 2019-04-23 Google Llc Generating output for presentation in response to user interface input, where the input and/or the output include chatspeak
US10192177B2 (en) * 2016-06-29 2019-01-29 Microsoft Technology Licensing, Llc Automated assignment of errors in deployed code
US11436417B2 (en) 2017-05-15 2022-09-06 Google Llc Providing access to user-controlled resources by automated assistants
US10127227B1 (en) 2017-05-15 2018-11-13 Google Llc Providing access to user-controlled resources by automated assistants
US11227342B2 (en) * 2017-05-26 2022-01-18 Microsoft Technology Licensing, Llc Recommending friends in automated chatting
JP2019197321A (ja) * 2018-05-08 2019-11-14 京セラドキュメントソリューションズ株式会社 画像処理装置及び画像形成装置
EP3937030A1 (en) 2018-08-07 2022-01-12 Google LLC Assembling and evaluating automated assistant responses for privacy concerns
US11194973B1 (en) * 2018-11-12 2021-12-07 Amazon Technologies, Inc. Dialog response generation
US20200259779A1 (en) * 2019-02-12 2020-08-13 Global Elmeast Inc. Super chat
US11106863B1 (en) * 2019-12-30 2021-08-31 Snap Inc. User-specified replacement of terms in messaging

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321201B1 (en) * 2006-12-29 2012-11-27 Google Inc. Identifying a synonym with N-gram agreement for a query phrase
KR20160029587A (ko) * 2014-09-05 2016-03-15 삼성전자주식회사 단위 또는 약어의 풀네임 음성출력 방법 및 장치
US20160132590A1 (en) * 2014-11-12 2016-05-12 International Business Machines Corporation Answering Questions Via a Persona-Based Natural Language Processing (NLP) System

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010029455A1 (en) * 2000-03-31 2001-10-11 Chin Jeffrey J. Method and apparatus for providing multilingual translation over a network
DE10127559A1 (de) * 2001-06-06 2002-12-12 Philips Corp Intellectual Pty Benutzergruppenspezifisches Musterverarbeitungssystem
KR20040092256A (ko) * 2003-04-25 2004-11-03 (주)이즈메이커 협동적 인공지능을 이용한 대화형 에이전트
US7451188B2 (en) * 2005-01-07 2008-11-11 At&T Corp System and method for text translations and annotation in an instant messaging session
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
CA2670518A1 (en) * 2006-12-05 2008-06-12 Nortel Networks Limited Method and system for communicating between devices
US8204182B2 (en) * 2006-12-19 2012-06-19 Nuance Communications, Inc. Dialect translator for a speech application environment extended for interactive text exchanges
CN101119209A (zh) * 2007-09-19 2008-02-06 腾讯科技(深圳)有限公司 虚拟宠物系统和虚拟宠物聊天方法、装置
US8275803B2 (en) 2008-05-14 2012-09-25 International Business Machines Corporation System and method for providing answers to questions
US9674331B2 (en) * 2012-06-08 2017-06-06 Apple Inc. Transmitting data from an automated assistant to an accessory
JP6529761B2 (ja) * 2012-12-28 2019-06-12 株式会社ユニバーサルエンターテインメント 話題提供システム、及び会話制御端末装置
US9047268B2 (en) * 2013-01-31 2015-06-02 Google Inc. Character and word level language models for out-of-vocabulary text input
US9311294B2 (en) 2013-03-15 2016-04-12 International Business Machines Corporation Enhanced answers in DeepQA system according to user preferences
KR102073102B1 (ko) * 2013-03-21 2020-02-04 삼성전자 주식회사 언어인식을 위한 언어모델 db, 언어인식장치와 언어인식방법, 및 언어인식시스템
EP3005151A2 (en) * 2013-06-03 2016-04-13 Machine Zone, Inc. Systems and methods for multi-user multi-lingual communications
US20150331853A1 (en) * 2014-05-15 2015-11-19 Marco Palmonari Automated multi-grammar language processing system to optimize request handling in contact centers
US8995972B1 (en) 2014-06-05 2015-03-31 Grandios Technologies, Llc Automatic personal assistance between users devices
US9922015B2 (en) * 2014-10-09 2018-03-20 International Business Machines Corporation System for handling abbreviation related text using profiles of the sender and the recipient
US9280747B1 (en) * 2015-05-27 2016-03-08 Sas Institute Inc. Normalizing electronic communications using feature sets
CN105101121B (zh) * 2015-05-29 2019-07-23 小米科技有限责任公司 一种信息发送的方法及装置
US10268683B2 (en) * 2016-05-17 2019-04-23 Google Llc Generating output for presentation in response to user interface input, where the input and/or the output include chatspeak
JP6960579B2 (ja) * 2016-12-06 2021-11-05 パナソニックIpマネジメント株式会社 情報処理方法、情報処理装置およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321201B1 (en) * 2006-12-29 2012-11-27 Google Inc. Identifying a synonym with N-gram agreement for a query phrase
KR20160029587A (ko) * 2014-09-05 2016-03-15 삼성전자주식회사 단위 또는 약어의 풀네임 음성출력 방법 및 장치
US20160132590A1 (en) * 2014-11-12 2016-05-12 International Business Machines Corporation Answering Questions Via a Persona-Based Natural Language Processing (NLP) System

Also Published As

Publication number Publication date
EP3440806A4 (en) 2019-12-04
US20190220519A1 (en) 2019-07-18
US10268683B2 (en) 2019-04-23
US20170337184A1 (en) 2017-11-23
EP3440806A2 (en) 2019-02-13
KR20190109599A (ko) 2019-09-25
JP2019164810A (ja) 2019-09-26
CN109565461A (zh) 2019-04-02
KR102213014B1 (ko) 2021-02-05
US11238242B2 (en) 2022-02-01
KR102025828B1 (ko) 2019-09-26
CN113660154B (zh) 2023-11-14
WO2017200589A2 (en) 2017-11-23
JP6524359B1 (ja) 2019-06-05
CN113660154A (zh) 2021-11-16
JP2019522839A (ja) 2019-08-15
JP6871300B2 (ja) 2021-05-12
WO2017200589A3 (en) 2018-02-22
CN109565461B (zh) 2021-07-20

Similar Documents

Publication Publication Date Title
KR102025828B1 (ko) 입력 및/또는 출력이 인터넷유행어를 포함하는 사용자 인터페이스 입력에 응답하여 제시할 출력을 생성
US11960543B2 (en) Providing suggestions for interaction with an automated assistant in a multi-user message exchange thread
US11762865B2 (en) Automatically augmenting message exchange threads based on tone of message
CN110770694B (zh) 获得来自多个语料库的响应信息
US10225222B2 (en) Automated generation of prompts and analyses of user responses to the prompts to determine an entity for an action and perform one or more computing actions related to the action and the entity
KR102002115B1 (ko) 메시지 교환 스레드의 증대
US20240103893A1 (en) Generating content endorsements using machine learning nominator(s)
US20240029728A1 (en) System(s) and method(s) to enable modification of an automatically arranged transcription in smart dictation

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
A107 Divisional application of patent