KR20170007799A - 검색 쿼리들에 기초하여 비디오 프로그램 추출들을 생성하기 위한 시스템들 및 방법들 - Google Patents

검색 쿼리들에 기초하여 비디오 프로그램 추출들을 생성하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20170007799A
KR20170007799A KR1020167035070A KR20167035070A KR20170007799A KR 20170007799 A KR20170007799 A KR 20170007799A KR 1020167035070 A KR1020167035070 A KR 1020167035070A KR 20167035070 A KR20167035070 A KR 20167035070A KR 20170007799 A KR20170007799 A KR 20170007799A
Authority
KR
South Korea
Prior art keywords
video program
search query
video
implementations
search
Prior art date
Application number
KR1020167035070A
Other languages
English (en)
Other versions
KR101903720B1 (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 KR20170007799A publication Critical patent/KR20170007799A/ko
Application granted granted Critical
Publication of KR101903720B1 publication Critical patent/KR101903720B1/ko

Links

Images

Classifications

    • G06F17/30843
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/73Querying
    • G06F16/738Presentation of query results
    • G06F16/739Presentation of query results in form of a video summary, e.g. the video summary being a video sequence, a composite still image or having synthesized frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7844Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using original textual content or text extracted from visual content or transcript of audio data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8549Creating video summaries, e.g. movie trailer

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

프로세스는 비디오 프로그램들을 전송하는 동안, 검색 쿼리 스파이크들에 기초하여 비디오 프로그램들에 대한 추출들을 빌드한다. 프로세스는 하나 이상의 프로세서들과 상기 하나 이상의 프로세서들에 의한 실행을 위해 구성된 프로그램들을 저장하는 메모리를 가진 서버 시스템에서 수행된다. 프로세스는 복수의 사용자들에 의해 제출된 검색 쿼리들로부터 복수의 검색 쿼리 스파이크들을 식별하고, 검색 쿼리 스파이크들의 서브세트를 방송 비디오 프로그램에 상관시킨다. 각각의 상관된 검색 쿼리 스파이크는 비디오 프로그램 내 각 위치에 대응한다. 프로세스는 상관된 검색 쿼리 스파이크들에 대응하는 위치들을 포함하는 비디오 프로그램의 부분들을 함께 스티치함으로써, 비디오 프로그램의 스니펫을 구성한다. 일부 구현예들에서, 부분은 각 위치 전과 후의 비디오 장면 경계들까지 확장된다. 일부 구현예들에서, 비디오 프로그램 자막들은 검색 쿼리 스파이크들을 비디오 프로그램 위치들에 매치시키기 위해 사용된다.

Description

검색 쿼리들에 기초하여 비디오 프로그램 추출들을 생성하기 위한 시스템들 및 방법들{SYSTEMS AND METHODS FOR GENERATING VIDEO PROGRAM EXTRACTS BASED ON SEARCH QUERIES}
본 발명은 일반적으로 비디오 프로그램 추출들(video program extracts)을 생성하는 것과 관련되며, 더 구체적으로는 사용자들에 의해 제출된 검색 쿼리들(search queries)에 기초하여 비디오 추출들을 생성하는 것과 관련된다.
비디오 프로그램들은 길고 시청자들은 제한된 시간을 가졌기 때문에, 일부 하이라이트들을 보여주는 프로그램의 스니펫들(snippets)을 갖는 것은 유용하다. 스니펫들이 유용하기 위해서는, 프로그램의 스니펫들은 실제 프로그램 보다 짧아야하고, 바람직하게는 비디오 프로그램에서 가장 관심있는 장면들의 일부를 포함하여야 한다. 그러나, 관심있는 장면들을 식별하는 것은 시간 소모적일 수 있고, 비디오 프로그램을 평가하는 사람에 따라 그 결과들이 매우 다양할 수 있다.
개시된 구현예들은 비디오 프로그램 추출을 생성하는 것과 관련된 상기 문제점들 및 다른 문제점들을 해결한다. 추출을 빌드(build)하는 첫 번째 단계는 사용자 검색 쿼리들(user search queries)을 방송 비디오 프로그램들과 상관(correlate)시키는 것이다. 이는 검색 용어들, 어구들(phrases), 키워드들, 또는 개념들(concepts)을 비디오 프로그램에서 대응하는 용어들, 어구들, 키워드들, 또는 개념들에 상관시킴으로써 행해질 수 있다. 아래에 설명된 바와 같이, 이들을 상관시키는 한 가지 방법은 비디오 프로그램 자막들(video program subtitles)을 사용하는 것이다. 일부 구현예들은 비디오 내 단어들을 식별하고, 이들을 검색 용어, 어구들, 키워드들, 또는 개념들과 상관시키기 위해 음성 인식 소프트웨어를 사용한다. 또한, 상기 상관은 용어들, 어구들, 키워드들, 또는 개념들이 발생한 비디오 프로그램의 위치들을 식별한다.
일반적으로, TV 프로그램 동안 요청되는 검색 쿼리들은 TV 프로그램의 관심있는 양태들을 나타낸다. 인기있는 쿼리들에 대응하는 키워드들, 어구들, 또는 개념적 실체들(conceptual entities)을 포함하는 비디오 장면들은 일반적으로 전체 프로그램을 대표하므로, 이러한 장면들을 함께 스티치(stitch)하는 것은 유용한 비디오 스니펫을 생성한다.
일부 구현예들에서, (예를 들어, 매칭하는 자막들에 의해) 검색 쿼리 용어들과 매치(match)하는 비디오 콘텐츠 내 시간을 발견하고 비디오 장면을 경계들(상기 시간 전과 후의 경계들 모두)까지 확장시킴으로써, 비디오 추출은 형성된다. 일부 구현예들에서, 긴 장면들은 (예를 들어, 비디오 내 매치된 각 위치를 기준으로 전후 30초 이하로) 제한된다. 일부 구현예들에서, 비디오 장면 경계들은 오디오 또는 비디오 신호의 갑작스러운 변화에 의해 식별된다. 일부 구현예들에서, 식별된 매칭하는 용어들, 키워드들, 어구들, 또는 개념적 실체들을 갖는 추가적인 매치들이 또한 식별되고 상기 추출에 포함되며, 상기 추가적인 매치들은 동일한 용어들, 키워드들, 어구들 또는 개념들의 다른 예시들과 매치한다. 예를 들면, 만일 자막들을 사용하여 매칭이 행해진 경우, 동일한 용어들, 키워드들, 어구들, 또는 개념들을 포함하는 콘텐츠의 다른 위치들이 식별될 수 있다.
일부 구현예들에서, 매칭된 모든 장면들은 시간순으로 함께 스티치되지만, 일부 구현예들은 추출된 스니펫들을 다른 방식으로 정렬시킨다(예를 들어, 특히 액티브(active)하거나 관심있는 장면들을 추출의 처음 또는 끝에 배치한다). 일부 구현예들에서, 매칭은 통합된 사용자 쿼리들에 기초하고(예를 들어, 주어진 비디오 장면에 대해 동일한 시간에 요청된 다수의 사용자들로부터의 쿼리들을 사용하고), 이는 통상의 쿼리 레벨 이상인 스파이크(spike)를 형성한다. 그러므로, 생성된 스니펫들은 일반적으로 매칭된 장면들에서 관심있는 장면들을 반영한다.
일부 구현예들에서, 동일한 매칭 프로세스가 하나의 사용자(또는 작은 소셜 네트워크로부터의 사용자들과 같은 소수의 사용자들)로부터의 개별적인 쿼리들에 적용된다. 이는 개별화 된 비디오 스니펫들을 생성한다. 일부 구현예들에서, 개인 매칭은 서로 다른 기법들을 통해 달성된다(예를 들어, 특정 쿼리를 요청한 특정 사용자가 특정 타임스탬프에서 특정 콘텐츠를 또한 시청하고 있음을 알고 있음).
일부 구현예들은 하나 이상의 프로그램에 대한 비디오 추출을 생성하기 위해, 동일한 프로세스를 보다 광범위하게 적용한다. 예를 들면, 일부 구현예들은 특정 날짜에서의 비디오 추출을 생성하여, "하루의 요약(summary of a day)"을 만든다. 이러한 추출은 모든 채널들, 또는 채널들의 서브세트(예를 들어, 오직 새로운 채널들, 또는 오직 오락 채널들)로부터의 비디오 프로그램들을 포함할 수 있다. 더 넓은 추출들을 생성하는 일부 구현예들에서, 개별적인 장면 부분들이 더 제한될 수 있거나(예를 들어, 각각의 매칭된 위치를 기준으로 전후 10초 또는 15초로 제한), (예를 들어, 사용자 쿼리들의 높은 임계빈도를 요구함으로써) 특정한 매칭된 부분들이 생략될 수 있다.
일부 구현예들은 검색 쿼리 스파이크들을 사용하여 매칭을 위한 용어들, 어구들, 또는 개념들을 식별한다. 이들 중 하나는 동일한 시간대에 다수의 시청자들에게 방송되었거나 방송된 TV 콘텐츠에 대해 검색 엔진에 제출된 쿼리들과 매치할 수 있다. 일부 구현예들은 쿼리들이 제출되는 빈도를 분석함으로써, 검색 후보들을 선택한다. 특정 쿼리(쿼리 "스파이크")에 대한 쿼리 빈도에서 갑작스러운 증가가 있으면, 이는 특정 이벤트(영화 속 한 장면이 단지 방송됨)와 대응할 가능성이 크다.
일부 구현예들은 검색 쿼리들의 키워드들, 어구들, 또는 개념들을 텔레비전 자막들 내 적절하게 대응되는 것들과 매칭시키고, 일부 타임 윈도우(time window) 내에서 동시-발생하는 것과 매칭시킴으로써, 쿼리들을 방송 콘텐츠와 매치시킨다. 예를 들면, 만일 일부 TV 채널 상에서 용어 "gobble stopper"가 언급되었고, 자막들에서 나타났다면, 시청자들은 "gobble stopper"의 정의에 관심이 있거나 더 자세한 사항들을 원할 수 있다. 짧은 시간(예를 들어, 1분)내에, 일부 시청자들은 검색 엔진에 쿼리들을 입력하기 시작한다. 이는 "gobble stopper"의 빈도에서 관찰가능한 스파이크를 생성한다. 일부 구현예들은 쿼리 요청들의 평균 빈도(예를 들어, 분당 쿼리 제출수에서 측정된 빈도)와 동일한 쿼리에 대한 현재 빈도(예를 들어, 지난 1시간, 지난 15분, 또는 지난 5분 동안의 동일한 쿼리에 대한 빈도)를 비교함으로써, 이러한 스파이크를 식별한다. 일부 구현예들은 최근의 무빙 타임 윈도우(moving time window)(예를 들어, 쿼리 빈도 데이터의 가장 최근 1시간 또는 30분-가장 최근 몇 분은 제외)에 걸쳐 쿼리 요청들의 최대 빈도와 동일한 쿼리에 대한 현재 빈도를 비교함으로써, 이러한 스파이크를 식별한다. 일부 구현예들은 요청들의 최대 빈도와 요청들의 평균 빈도의 결합과 동일한 쿼리에 대한 현재 빈도를 비교함으로써, 이러한 스파이크를 식별한다.
키워드들 또는 어구들에 의해 쿼리들을 매치시키는 것 이외에도, 일부 구현예들은 개념들을 매치시키며, 상기 개념들은 때때로 지식 그래프 엔티티들(knowledge graph entities)로서 지칭된다. 이는 동일한 개념적 실체를 기술하기 위해, 서로 다른 사람들이 서로 다른 단어들 또는 어구들을 사용하는 상황을 설명한다.
각각의 검출된 후보 스파이크(쿼리 또는 엔티티)에 대해, 일부 구현예들은 단어들, 키워드들, 어구들, 또는 개념적 실체들이 지난 몇 분 동안 모니터되는 임의의 TV 채널의 자막들 내 데이터와 상관되는지 여부를 체크(check)한다. 일부 구현예들에서, 상기 체크는 쿼리 단어들, 키워드들, 어구들, 또는 엔티티들이 하나의 텔레비전 프로그램에 대한 자막들의 무빙 윈도우 내에 존재하는지 여부를 결정한다. 일부 구현예들에서, 각각의 쿼리로부터의 용어들의 순서는 동일한 순서로 나타나는 매칭하는 자막들에 대한 선호도로 평가된다. 대안적으로, 일부 구현예들은 반대 방향으로 매칭을 수행한다: 자막들의 부분들이 검색 쿼리에 존재하는지 여부를 체크한다.
특정 무빙 타임 윈도우 내에서 텔레비전 프로그램에 대한 쿼리 구성요소들과 자막 구성요소들 사이에 비어 있지 않은 인터섹션(intersection)이 있는 경우, 잠재적인 매치가 존재한다. 일부 구현예들에서, 스코어를 연산하기 위해 오버랩(overlap)이 평가되고, 스코어가 임계값을 초과한 경우 이는 매치로 고려된다. 일부 구현예들은 매칭에 대한 추가적인 제한들(예컨데, 용어들의 예상 순서)을 부가한다.
일부 구현예들은 매치할 단어들의 스트림을 생성하기 위해, 자막들에 의존하기 보다 음성 인식 알고리즘들을 TV 콘텐츠에 직접적으로 적용한다. 일부 구현예들에서 자막들과 음성 인식 모두가 사용된다.
일부 구현예들은 방송 비디오 프로그램의 특정 부분들에 대한 사용자 흥미를 식별하기 위해, 사용자 검색 쿼리들 대신에 또는 이들 외에도 Twitter® tweets™를 사용한다.
일부 구현예들에 따라, 방법은 하나 이상의 프로세서들 및 메모리를 가진 서버 시스템에서 실행된다. 메모리는 하나 이상의 프로세서들에 의한 실행을 위해 구성된 하나 이상의 프로그램들을 저장한다. 프로세스는 복수의 사용자들에 의해 제출된 검색 쿼리들(search queries)로부터 복수의 검색 쿼리 스파이크들(search query spikes)을 식별한다. 일부 구현예들에서, 각각의 검색 쿼리 스파이크는 등가인(equvalant) 것으로서 식별된 하나 이상의 검색 쿼리들의 각각의 세트에 대응하며, 대응하는 스파이크 구간(spike period) 동안에 상기 각각의 세트로부터의 쿼리들을 제출하는 빈도는 평균 시간 동안에 상기 각각의 세트로부터의 쿼리들을 제출하는 빈도를 미리 정의된 임계량(threshold amount)만큼 초과한다.
상기 프로세스는 상기 검색 쿼리 스파이크들의 서브세트를 방송 비디오 프로그램에 상관시킨다. 각각의 상관된 검색 쿼리 스파이크는 상기 비디오 프로그램 내 각 위치에 대응한다. 일부 구현예들에서, 검색 쿼리 스파이크를 방송 비디오 프로그램에 상관시키는 단계는 상기 비디오 프로그램 내 대응하는 각 위치에서, 상기 대응하는 검색 쿼리들로부터의 검색 용어들을 상기 비디오 프로그램의 자막들에 매칭시키는 것을 포함한다. 상기 프로세스는 상기 상관된 검색 쿼리 스파이크들에 대응하는 상기 위치들을 포함하는 상기 비디오 프로그램의 부분들을 함께 스티치함으로써, 상기 비디오 프로그램의 스니펫을 구성(construct)한다. 일부 구현예들에서, 상기 상관된 검색 쿼리 스파이크들에 대응하는 상기 위치들을 포함하는 상기 비디오 프로그램의 상기 부분들은 각 위치 전과 후의 비디오 장면 경계들(video scene boundaries)까지 확장된다. 일부 구현예들에서, 상기 프로세스는 상기 구성된 스니펫을 상기 비디오 프로그램과 관련된 정보에 대한 검색 쿼리를 제출한 사용자에게 제공한다.
일부 구현예들에 따르면, 상기 프로세스는 복수의 각각의 방송 비디오 프로그램들에 대한 각각의 스니펫들을 구성하는 단계를 포함한다. 각각의 스니펫은 각각의 복수의 상기 검색 쿼리 스파이크들을 상기 각각의 비디오 프로그램에 상관시키는 것에 기초하고, 상기 복수의 방송 비디오 프로그램들은 미리 정의된 시간 동안 모두 방송되었다. 상기 프로세스는 상기 미리 정의된 시간에 대한 하나의 비디오 요약을 형성하기 위해, 상기 복수의 방송 프로그램들에 대한 상기 스니펫들을 함께 스티치한다. 일부 구현예들에서, 상기 미리 정의된 시간은 하루이다. 상기 복수의 방송 프로그램들은 하나의 채널(또는 채널들의 서브세트)로 제한될 수 있거나, 특정 장르(예를 들어, 뉴스)로 제한될 수 있거나, 또는 사용자에 의해 특정될 수 있다.
이와 같이, 본래의 프로그램들보다 짧지만 비디오 프로그램을 대표하는 관심있는 장면들을 제공하는 비디오 프로그램 추출을 생성하는 방법 및 시스템이 제공된다.
본 발명의 전술된 구현예들 뿐만 아니라 이들의 추가적인 구현예들에 대한 더 나은 이해를 위해서, 다음의 도면들과 함께 하기 구현예들의 설명을 참조해야 하고, 상기 도면들에서 동일한 참조 번호들은 도면들에 걸쳐 대응하는 부분들을 지칭한다.
도 1은 일부 구현예들이 작동하는 컨텍스트(context)를 도시한다.
도 2는 일부 구현예들에 따른 클라이언트 디바이스의 블록 다이어그램이다.
도 3은 일부 구현예들에 따른 서버의 블록 다이어 그램이다.
도 4 내지 9는 일부 구현예들에 의해 사용되는 다양한 골격 데이터 구조들 또는 테이블들을 도시한다.
도 10은 일부 구현예들에 따른 스파이크가 식별되고 비디오 프로그램과 관련되는 방법을 도시한다.
도 11 및 12는 일부 구현예들에 따른 일부 쿼리들이 서로 그룹될 수 있는 방법을 도시한다.
도 13은 일부 구현예들에 따른, 사용자 검색 쿼리들에 기초하여 비디오 프로그램 추출을 생성하기 위해, 비디오 추출 모듈(128)에 의해 수행되는 프로세스를 도시한다.
도 14A 내지 14C는 일부 구현예들에 따른, 비디오 프로그램 추출들을 생성하기 위해 서버 시스템에서 수행되는 프로세스의 흐름도를 제공한다.
이제 첨부 도면들에 도시된 예들의 구현예들이 상세히 설명될 것이다. 다음의 상세한 설명에서, 본 발명의 완전한 이해를 제공하기 위해 다양한 특정 세부사항들이 설명된다. 그러나, 이러한 특정 세부사항들 없이 본 발명이 실시될 수 있음은 당해 기술분야의 통상의 지식을 가진 자에게 명백할 것이다.
도 1은 일부 구현예들의 주요 컴포넌트들(components)을 도시하는 블록 다이어그램이다. 서버 시스템(114) 내 다양한 클라이언트 디바이스들(102) 및 서버들(300)은 하나 이상의 네트워크들(112)(예컨데, 인터넷)을 통해 통신한다. 클라이언트 환경(100)은 텔레비전(108)을 포함하며, 상기 텔레비전(108)은 일반적으로 셋 탑 박스(106)(또는 수신기/컨버터)와 연결된다. 셋 탑 박스(106)는 콘텐츠 제공자(110) (예컨데, 케이블 TV 네트워크, 위성 방송 수신 안테나 네트워크(satellite dish network), 또는 방송 전파를 통한 방송(broadcast))로부터 미디어 콘텐츠를 수신한다. 도 1에 도시된 바와 같이, 일부 경우들에서 미디어 콘텐츠는 통신 네트워크들(112)을 통해 전송된다.
일부 경우들에서, 클라이언트 환공(100)은 또한 하나 이상의 클라이언트 디바이스들(102) (예컨데, 스마트 폰들, 태블릿 컴퓨터들, 랩탑 컴퓨터들, 또는 데스크탑 컴퓨터들)을 포함한다. 본 컨텍스트에서, 클라이언트 디바이스는 일반적으로 텔레비전(108)에 아주 가깝다. 일부 경우들에서, 클라이언트 디바이스 상에서 실행되는 것은 클라이언트 어플리케이션(104)이고, 일부 구현예들에서 상기 클라이언트 어플리케이션(104)은 텔레비전(108) 상에서 디스플레이 되는 프로그램밍에 상관된 "제2 스크린 어플리케이션"이다. 비록 단지 하나의 클라이언트 환경(100)만이 도 1에 도시되었으나, 언제든지 수백만 개의 클라이언트 환경들이 일반적으로 존재한다. 서로 다른 클라이언트 환경들(100)은 서로 다른 미디어 콘텐츠 제공자들(100)을 사용할 수 있고, 수신기들, 컨버터들, 또는 셋탑 박스들로서 기능하는 클라이언트 디바이스들(102) 및 박스들(106)의 다양한 결합들을 사용할 수 있다. 비록 도 1은 하나의 셋 탑 박스(106)를 도시하나, 당해 기술분야의 통상의 지식을 가진자는 다른 환경들은 복수의 별개의 전자 컴포넌트들(예컨데, 별도의 수신기, 별도의 컨버터 및 별도의 셋 탑 박스)을 포함할 수 있음을 인식할 것이다. 또한, 셋 탑 박스(106)(또는 컨버터 또는 수신기)의 기능의 전부 또는 일부는 텔레비전(108)과 통합될 수 있다.
서버 시스템(114)은 복수의 서버들(300)을 포함하고, 상기 서버들(300)은 내부 통신 네트워크 또는 버스(130)에 의해 연결될 수 있다. 서버 시스템(114)은 쿼리 프로세싱 모듈(116)을 포함하고, 상기 쿼리 프로세싱 모듈(116)은 사용자들로부터(예를 들어, 클라이언트 디바이스들(102)로부터) 쿼리들을 수신하여 응답 쿼리 결과들을 반환한다. 데이터베이스(118) 내 검색 쿼리 로그(120)에서 쿼리들을 추적한다.
일부 구현예들에서, 또한 서버 시스템(114)은 텔레비전 프로그램 결정 모듈(126)을 포함하며, 상기 텔레비전 프로그램 결정 모듈(126)은 시청자들이 보고 있는 텔레비전 프로그램들을 결정한다. 일부 구현예들에서, 텔레비전 프로그램 결정 모듈(126)은 클라이언트 디바이스(102) 상에서 실행되고 있는 클라이언트 어플리케이션(104)으로부터 알림들을 수신하고, 상기 알림들은 관련된 텔레비전(108) 상에서 존재하고 있는 텔레비전 프로그램을 특정한다. 일부 구현예들에서, 텔레비전 프로그램 결정 모듈(126)은 (예를 들어, 클라이언트 환경에서 사용자가 시청률(viewership)이 추적되도록 등록한 경우) 셋 탑 박스(106)로부터 알림을 수신한다. 일부 구현예들에서, 텔레비전 프로그램 결정 모듈은 (클라이언트 어플리케이션(104) 또는 셋 탑 박스로부터) 오디오 스트림을 수신하고, 상기 스트림을 분석함으로써 텔레비전 프로그램을 결정한다. 일부 구현예들에서, 텔레비전 프로그램 결정 모듈(126)은 클라이언트 어플리케이션(104)의 일부이며, 결정된 프로그램들은 미디어 보충 모듈(124)로 전달된다.
일부 구현예들에서, 서버 시스템은 미디어 보충 모듈(124)을 포함하며, 상기 미디어 보충 모듈(124)은 텔레비전 프로그램들에 대한 추가적인 정보(예컨데, 시청된 텔레비전 프로그램들의 양태들에 대응하는 검색 결과들)를 클라이언트 어플리케이션(104)으로 전달한다. 미디어 보충 모듈(124)의 동작은 도 10과 관련하여 본 명세서를 통해 좀 더 자세히 기술된다.
서버 시스템은 하나 이상의 데이터베이스들(118)을 포함한다. 데이터베이스(118) 내 저장된 데이터는 검색 쿼리 로그(120)을 포함하며, 상기 검색 쿼리 로그(120)는 사용자에 의해 제출된 각각의 검색 쿼리를 추적한다. 일부 구현예들에서, 검색 쿼리 로그는 저장의 크기를 줄이기 위해 통합된 형태로 저장된다. 데이터베이스는 텔레비전 프로그램 정보(122)를 포함할 수 있다. 텔레비전 프로그램 정보(122)는 프로그램의 각각에 대한 자세한 정보를 포함할 수 있고, 자막(subtitle)들뿐만 아니라 방송 날짜 및 시간을 포함한다. 상기 정보의 일부는 도 4 내지 6과 관련하여 후술된다.
또한, 서버 시스템은 비디오 추출 모듈(128)을 포함한다. 상기 비디오 추출 모듈(128)은 비디오 프로그램들의 관심있는 부분들을 식별하기 위해 제출된 쿼리들을 사용하며, 상기 식별된 관심있는 부분들을 사용하여 비디오 프로그램들에 대한 추출들을 생성한다. 비디오 추출 모듈(128)은 도 13과 관련하여 더 상세히 후술된다.
도 2는 클라이언트 환경(100)에서 사용자가 사용하는 클라이언트 디바이스(102)를 도시하는 블록 다이어그램이다. 클라이언트 디바이스(102)는 일반적으로 모듈들, 프로그램들, 또는 메모리(214)에 저장된 명령어들을 실행하고 이들에 의해 프로세싱 동작들을 수행하기 위한 하나 이상의 프로세싱 유닛들(CPU들)(202); 하나 이상의 네트워크 또는 다른 통신 인터페이스들(204); 메모리(214); 및 이러한 컴포넌트들을 상호연결하기 위한 하나 이상의 통신 버스들(212)을 포함한다. 통신 버스들(212)은 시스템 컴포넌트들 간의 통신을 상호연결하고 제어하는 회로(칩셋(shipset)이라 불린다)를 포함할 수 있다. 클라이언트 디바이스(102)는 디스플레이 디바이스(208) 및 하나 이상의 입력 디바이스들 또는 메커니즘들(210)을 포함하는 사용자 인터페이스(206)를 포함한다. 일부 구현예들에서, 입력 디바이스/메커니즘은 키보드 및 마우스를 포함하며; 일부 구현예들에서, 입력 디바이스/메커니즘은 "소프트" 키보드를 포함하고, 상기 "소프트" 키보드는 사용자로 하여금 디스플레이(208) 상에 나타나는 키들(keys)을 누르게 하여, 필요한 경우 디스플레이 디바이스(208)상에서 디스플레이 된다.
일부 구현예들에서, 메모리(214)는 고속 랜덤 액세스 메모리(high-speed random access memory)(예컨데, DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 고체 상태 메모리 디바이스들)를 포함한다. 일부 구현예들에서, 메모리(214)는 비-휘발성 메모리(예컨데, 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래쉬 메모리 디바이스들, 또는 다른 비-휘발성 고체 상태 저장 디바이스들)를 포함한다. 일부 구현예들에서, 메모리(214)는 CPU(들)(202)로부터 원격으로 위치한 하나 이상의 저장 디바이스들을 포함한다. 메모리(214) 또는 대안적으로는 메모리(214) 내의 비-휘발성 메모리 디바이스(들)은, 비-일시적인 컴퓨터 판독가능한 저장 매체를 포함한다. 일부 구현예들에서, 메모리(214) 또는 메모리(214)의 컴퓨터 판독가능한 저장 매체는 다음의 프로그램들, 모듈들, 및 데이터 구조들, 또는 이들의 서브세트를 저장한다.
○ 다양한 기본적인 시스템 서비스들을 다루고 하드웨어 의존형 작업들을 수행하기 위한 절차들을 포함하는 운영 체제(216);
○ 하나 이상의 (유선 또는 무선) 통신 네트워크 인터페이스들(204) 및 하나 이상의 통신 네트워크들(112)(예컨데, 인터넷, 다른 광역 네트워크들, 근거리 네트워크들, 대도시 지역 네트워크들 등)을 통해, 클라이언트 디바이스(106)를 다른 컴퓨터들 및 디바이스들에 연결하기 위해 사용되는 통신 모듈(218);
○ 하나 이상의 입력 디바이스들(210)로부터 입력을 수신하고, 디스플레이 디바이스(208) 상에 디스플레이 하기 위해 사용자 인터페이스 구성요소들을 생성하는 디스플레이 모듈(220);
○ 사용자로 하여금 네트워크(112)를 통해 원격 컴퓨터들 또는 디바이스들과 통신하도록 하는 웹 브라우저(222);
○ 더 많은 인터렉티브(interactive) 미디어 경험을 제공하기 위해, 텔레비전(108) 및 셋 탑 박스(106)와 함께 사용될 수 있는 클라이언트 어플리케이션(104); 일부 구현예들에서, 상기 클라이언트 어플리케이션(104)은 "제2 스크린 어플리케이션"이고, 상기 "제2 스크린 어플리케이션"은 방송 텔레비전 프로그램에 대한 추가적인 정보를 제공하거나 사용자로 하여금 텔레비전 프로그램과 인터렉트(interact)(예를 들어, 중간 피드백을 제공, 주제들에 대해 투표, 등)하도록 한다. 일부 구현예들에서, 클라이언트 어플리케이션(104)은 웹 브라우저(222) 내에서 실행된다. 일부 구현예들에서, 클라이언트 어플리케이션(104)은 웹 브라우저로부터 분리된 어플리케이션으로서 실행된다.
○ 일부 구현예들에서, 클라이언트 디바이스는 다양한 클라이언트 데이터(224)를 저장하고, 상기 클라이언트 데이터(224)는 데이터베이스, 하나 이상의 쿠키들(cookies), 컴퓨터 레지스트리, 또는 메모리(214) 내 다른 파일들 내에 저장될 수 있다. 일부 구현예들에서, 클라이언트 데이터는 클라이언트 위치 데이터(226)를 포함한다. 클라이언트 위치 데이터는 클라이언트 환경(100)의 지리적 위치(예컨데, 도시, 지역, 또는 국가)를 특정할 수 있다. 일부 구현예들에서, 상기 위치는 클라이언트 환경(100)에 이용가능한 방송 비디어에 따라 특정된다. 일부 구현예들에서, 클라이언트 데이터는 클라이언트 IP 주소(228)를 포함하며, 상기 클라이언트 IP 주소(228)는 외부 통신 네트워크들(112)로부터 보이는 바와 같이 클라이언트 환경(100)의 IP 주소이다. IP 주소(228)는 일반적으로는 홈 라우터(home router) 또는 모뎀의 외부 IP 주소이다(내부 홈 네트워크 IP 주소가 아니다). 일부 구현예들에서, 클라이언트 데이터(224)는 클라이언트 프로필(230)을 포함하고, 상기 클라이언트 프로필(230)은 클라이언트 디바이스(102)에 대한 다양한 정보, 클라이언트 디바이스의 사용자에 대한 정보를 포함할 수 있으며, 사용자 선호도들, 또는 클라이언트 환경(100)에 대한 정보(예를 들어, 등록된 가정들(households)에 대한 인구 통계 정보)를 포함한다.
상기 식별된 실행가능한 모듈들, 어플리케이션들, 또는 절차들의 세트들의 각각은 이전에 언급된 메모리 디바이스들 중 하나 이상에 저장될 수 있고, 전술된 기능을 수행하기 위한 명령들의 세트에 대응한다. 상기 식별된 모듈들 또는 프로그램들(즉, 명령들의 세트들)은 분리된 소프트웨어 프로그램들, 절차들, 또는 모듈들로서 구현될 필요는 없는바, 다양한 구현예들에서 이러한 모듈들의 다양한 서브세트들은 결합되거나 재-배열될 수 있다. 일부 구현예들에서, 메모리(214)는 모듈들의 서브세트 및 상기 식별된 데이터 구조들을 저장할 수 있다. 뿐만 아니라, 메모리(214)는 전술되지 않은 추가적인 모듈들 또는 데이터 구조들을 저장할 수 있다.
비록 도 2는 클라이언트 디바이스(102)를 도시하였지만, 도 2는 본 명세서에서 기술된 구현예들의 구조적인 도식보다는 제공될 수 있는 다양한 구성들의 기능적인 기술(description)로서 더 의도된다. 실제 구현에서, 그리고 당해 기술분야에서 통상의 지식을 가진자에 의해 인식되는 바와 같이, 도시된 항목들은 개별적으로 결합될 수 있고 일부 항목들은 분리될 수 있다.
도 3은 서버 시스템(114)에서 사용될 수 있는 서버(300)를 도시한 블록 다이어그램이다. 일반적인 서버 시스템은 많은 개별적인 서버들(300)을 포함하며, 상기 서버들(300)은 수백개 또는 수천개일 수 있다. 서버(300)는 일반적으로 모듈들, 프로그램들, 또는 메모리(314)에 저장된 명령어들을 실행하고 이들에 의해 프로세싱 동작들을 수행하기 위한 하나 이상의 프로세싱 유닛들(CPU들)(302); 하나 이상의 네트워크 또는 다른 통신 인터페이스들(304); 메모리(314); 및 이러한 컴포넌트들을 상호연결하기 위한 하나 이상의 통신 버스들(312)을 포함한다. 통신 버스들(312)은 시스템 컴포넌트들 간의 통신을 상호연결하고 제어하는 회로(칩셋이라 불린다)를 포함할 수 있다. 일부 구현예들에서, 서버(300)는 사용자 인터페이스(306)를 포함하고, 상기 사용자 인터페이스(306)는 디스플레이 디바이스(308) 및 하나 이상의 입력 디바이스들(310)(예컨데, 키보드 및 마우스)를 포함할 수 있다.
일부 구현예들에서, 메모리(314)는 고속 랜덤 액세스 메모리 (예컨데, DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 고체 상태 메모리 디바이스들)를 포함한다. 일부 구현예들에서, 메모리(314)는 비-휘발성 메모리(예컨데, 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래쉬 메모리 디바이스들, 또는 다른 비-휘발성 고체 상태 저장 디바이스들)를 포함한다. 일부 구현예들에서, 메모리(314)는 CPU(들)(302)로부터 원격으로 위치한 하나 이상의 저장 디바이스들을 포함한다. 메모리(314) 또는 대안적으로는 메모리(314) 내의 비-휘발성 메모리 디바이스(들)은, 비-일시적인 컴퓨터 판독가능한 저장 매체를 포함한다. 일부 구현예들에서, 메모리(314) 또는 메모리(314)의 컴퓨터 판독가능한 저장 매체는 다음의 프로그램들, 모듈들, 및 데이터 구조들, 또는 이들의 서브세트를 저장한다.
○ 다양한 기본적인 시스템 서비스들을 다루고 하드웨어 의존형 작업들을 수행하기 위한 절차들을 포함하는 운영 체제(316);
○ 하나 이상의 (유선 또는 무선) 통신 네트워크 인터페이스들(304), 내부 네트워크 또는 버스(130), 또는 다른 통신 네트워크들(112)(예컨데, 인터넷, 다른 광역 네트워크들, 근거리 네트워크들, 대도시 지역 네트워크들 등)을 통해, 서버(300)를 다른 컴퓨터들에 연결하기 위해 사용되는 통신 모듈(318);
○ 하나 이상의 입력 디바이스들(310)로부터 입력을 수신하고, 디스플레이 디바이스(308) 상에 디스플레이 하기 위해 사용자 인터페이스 구성요소들을 생성하는 디스플레이 모듈(320);
○ 클라이언트 디바이스(102)로부터 검색 쿼리들을 수신하고 응답 검색 결과들을 반환하는 쿼리 프로세싱 모듈(116); 일부 구현예들에서, 각각의 쿼리는 검색 쿼리 로그(120)에 로그(log)된다.
○ 도 1와 관련하여 상기 기술된 것으로서, 프로그램 시청 결정 모듈(126);
○ 컴퓨팅 디바이스(102) 근처의 텔레비전 상에서 현재 시청되고 있는 텔레비전 프로그램에 대한 보충 정보를 사용자에게 제공하는 미디어 보충 모듈(124); 텔레비전 프로그램에 대한 일반적인 정보 외에도, 보충 정보는 (약간의 지연과 함께) 현재 시청되고 있는 비디오 프로그램의 일부와 직접적으로 관련된 특정 정보 또는 검색 결과들을 포함한다. 미디어 보충 모듈은 도 10 - 12와 관련하여 아래에 더 상세히 기술된다.
○ 짧은 시구간 동안 특정 쿼리들에 대한 스파이크들을 식별하는 스파이크 식별 모듈(324); 스파이크 식별 모듈(324)은 도 10과 관련하여 더 상세히 기술된다. 일부 구현예들에서, 스파이크 식별 모듈(324)은 미디어 보충 모듈의 서브모듈이다.
○ 쿼리 그룹들(340)을 형성하기 위해 다양한 유사한 쿼리들을 매칭(match)시키고, 또한 검색 쿼리들을 비디오 프로그램 자막들 (또는 오디오 인식 소프트웨어를 사용하여 추출된 텍스트)에 매칭시키는 검색 용어 매칭 모듈(326); 검색 용어 매칭 모듈은 도 10 - 12 및 14A - 14C와 관련하여 아래에 더 상세히 기술된다. 일반적으로 검색 용어 매칭 모듈(326)은 스파이크 식별 모듈(324)를 사용하여 스파이크들을 식별하기 이전에, 쿼리 그룹들(340)을 형성한다.
○ 비디오 프로그램의 일부 하이라이트들 또는 관심있는 부분들을 포함하는 짧은 비디오 스니펫들을 생성하기 위해, 쿼리 스파이크들을 비디오 프로그램 내의 위치들에 상관시키는 비디오 추출 모듈(128); 추출 생성 모듈의 동작은 도 13과 관련하여 아래에 더 상세히 기술된다.
○ 본 명세서에서 기술된 모듈들에 의해 사용되는 다양한 데이터를 저장하는 하나 이상의 데이터베이스들(118);
도 3의 상기 식별된 구성요소들의 각각은 전술된 하나 이상의 메모리 디바이스들에 저장될 수 있다. 각각의 실행가능한 프로그램, 모듈, 또는 절차는 상기 기술된 기능을 수행하기 위한 명령어들의 세트에 대응한다. 상기 식별된 모듈들 또는 프로그램들(즉, 명령어들의 세트들)은 분리된 소프트웨어 프로그램들, 절차들, 또는 모듈들로서 구현될 필요는 없는바, 다양한 구현예들에서 이러한 모듈들의 다양한 서브세트들은 결합되거나 재-배열될 수 있다. 일부 구현예들에서, 메모리(314)는 모듈들의 서브세트 및 상기 식별된 데이터 구조들을 저장할 수 있다. 뿐만 아니라, 메모리(314)는 전술되지 않은 추가적인 모듈들 또는 데이터 구조들을 저장할 수 있다.
비록 도 3은 서버(300)를 도시하였지만, 도 3은 본 명세서에서 기술된 구현예들의 구조적인 도식보다는 하나 이상의 서버들의 세트에서 제공될 수 있는 다양한 구성들의 기능적인 도시로서 더 의도된다. 실제 구현예서, 그리고 당해 기술분야에서 통상의 지식을 가진자에 의해 인식되는 바와 같이, 도시된 항목들은 개별적으로 결합될 수 있고 일부 항목들은 분리될 수 있다. 이러한 구성들을 구현하기 위해 사용되는 서버들의 실제 번호, 그리고 구성들이 이들에 할당되는 방법은 일 구현예에 다른 구현예까지 다양할 것이고, 시스템이 최대 사용 기간뿐만 아니라 평균 사용 기간 동안에 다루어야하는 데이터 트래픽(data traffic)의 양에 부분적으로 의존할 수 있다.
일부 구현예들에서, 데이터베이스(118)는 비디오 프로그램 데이터(122)를 저장한다. 각각의 비디오 프로그램은 프로그램 ID(328), 및 다양한 다른 정보를 포함하고, 이는 개별적인 데이터 구조들로 세분화 될 수 있다.
일부 구현예들에서, 각각의 프로그램에 대한 비디오 프로그램 데이터는 프로그램 프로필(330)을 포함하고, 상기 프로그램 프로필(330)은 도 4와 관련하여 더 상세히 기술된다. 상기 프로필은 프로그램 ID(328)을 포함하고, 상기 프로그램 ID(328)는 각각의 비디오 프로그램에 대해 고유한 식별자이다. 일부 구현예들에서, 상기 프로필(330)은 프로그램 기술(program description)(402)을 포함하며, 상기 프로그램 기술(402)은 프로그램을 기술하는 하나 이상의 단락들을 포함할 수 있다. 프로필(330)은 캐스트 정보(cast information)(304)를 포함할 수 있고, 상기 캐스트 정보(304)는 개별적인 캐스트 멤버들에 대한 세부사항들 또는 상기 캐스트 멤버들에 대한 추가적인 정보 링크들(예를 들어, 캐스트 멤버 웹 페이지들에 대한 링크들)을 포함할 수 있다. 시리즈들의 일부인 비디오 프로그램들에 대해, 일부 구현예들은 프로필(330)에 시리즈 정보(406)를 포함한다. 일부 구현예들에서, 프로필(330)은 장르 정보(genre information)(408)를 포함할 수 있고, 상기 장르 정보(408)는 비디오 프로그램의 장르에 대한 일반적인 정보를 포함할 수 있고, 링크들을 추가적인 정보로 제공할 수 있다. 일부 구현예들에서, 프로필(330)은 관련 용어들(410)을 포함할 수 있고, 상기 관련 용어들(410)은 비디오 프로그램을 기술하는 핵심 용어를 포함하거나, 사용자로 하여금 관련 콘텐츠를 식별하도록하는 용어들을 식별할 수 있다.
일부 구현예들에서, 도 5에 도시된 바와 같이, 비디오 프로그램 데이터는 자막 데이터(332)를 포함한다. 일부 경우들에서, 자막 정보는 미리 공개적으로 이용가능하나, 다른 경우들에서, 자막 정보는 비디오 프로그램이 방송될 때 동적으로 추출되고 저장된다.
일부 구현예들에서, 자막 데이터는 프로그램 ID(328) 및 자막 리스트(502)를 포함하고, 상기 자막 리스트(502)는 비디오 프로그램에서 나타나는 자막들의 순차적인 리스트이다. 자막들을 스크롤(scroll)하는 비디오 프로그램들에 대해, 타임의 윈도우들 동안 자막 텍스트의 부분들이 보기의 내외로 스크롤 될 수 있다(예를 들어, 제1 시구간 동안 라인 1과 라인 2를 보여주고, 제2 시구간 동안 라인 2와 라인 3을 보여주고, 제3 시구간 동안 라인 3과 라인 4를 보여주는 등). 이러한 타입의 자막을 다루기 위해, 일부 구현예들은 연속된 자막들 사이의 오버래핑 텍스트를 허용한다. 일부 구현예들은 텍스트의 각각의 구별된 부분을 저장하고, 오버래핑 시구간을 허용한다.
자막 리스트는 자막 텍스트 부분들의 시퀀스(sequence)를 포함한다. 각각의 부분은 자막 ID(504)에 의해 식별된다. 일부 구현예들에서, 자막 ID는 전 세계적으로 고유하나, 다른 구현예들에서 자막 ID는 오직 특정 프로그램 ID(328) 내에서만 고유하다. 자막 ID(504)는 각각의 비디오 프로그램 내의 순차적인 수일 수 있다. 각각의 자막 부분은 프로그램 내의 위치(506)를 특정하는 데이터를 포함한다. 일부 구현예들에서, 이는 비디오 프로그램의 시작에서부터의 오프셋(offset)(예를 들어, 초)으로서 특정된다. 일부 구현예들에서, 또한 위치 정보(506)는 자막이 디스플레이 되는 시간 또는 자막이 종료되는 시간(예를 들어, 자막이 디스플레이 되는 시구간의 종료까지의 초 단위의 오프셋)을 포함한다. 일부 구현예들은 다양한 방식으로 광고 시간들(commercial breks)을 다룬다. 일부 구현예들에서, 위치들(506)은 오직 미디어 콘텐츠 그 자체와 관련하여 특정되고, 광고 시간들의 실제 길이에 기초하여 광고 시간들을 동적으로 조정한다. 일부 경우들에서, 만일 광고 시간들의 길이가 미리 정의되었다면, 위치들(506)은 광고 시간들을 포함할 수 있고, 비디오 프로그램의 일부로서 광고들을 효율적으로 다룰 수 있다.
또한, 각각의 자막 부분은 자막 내 텍스트(508)를 포함할 수 있다. 일부 구현예들에서, 텍스트는 단어들의 시퀀스로 파싱(parsing)되고, 구두점(punctuation)을 제거할 수 있다. 일부 구현예들에서, 또한 자막의 언어(510)가 저장된다. 일부 구현예들은 추가적인 또는 서로 다른 데이터를 저장하거나, 대안적인 형식들로(예를 들어, 토큰화 된(tokenized) 형식으로) 데이터를 저장한다.
비디오 프로그램 콘텐츠 또는 자막들에 대한 정보 외에도, 일부 구현예들은 비디오 프로그램이 방송되었거나 또는 방송될 때에 대한 정보를 저장한다. 일부 구현예들은 미리 정의된 일정에 방송되는 비디오 프로그램들에 초점을 맞추므로, 다수의 시청자들이 동일한 비디오 프로그램을 동시에 시청하고 있다. 주문형 비디오(video on demand)(VOD) 데이터를 사용하기 위해 서로 다른 기법들이 사용되며, 방송 데이터 테이블(334)을 사용하지 않을 수 있다.
도 6은 방송 데이터(334)를 저장하기 위한 골격 데이터 구조를 도시한다. 방송 데이터(334)는 프로그램 ID(328)와 방송 리스트(602)를 포함하고, 상기 방송 리스트(602)는 비디오 프로그램이 방송되거나 방송될 때를 식별한다. 일부 구현예들에서, 각각의 방송 예시는 시작 시간(604)과 종료 시간(606)을 갖는다. 일부 구현예들에서, 각각의 방송 예시는 시간 시간(604)과 지속시간을 갖는다. 일부 구현예들에서, 각각의 방송 예시는 채널, 방송국, 또는 방송의 다른 소스를 특정하는 정보(608)를 포함한다. 일부 구현예들에서, 각각의 방송 예시는 방송이 발생한 지리적 위치 또는 지역을 특정하는 정보(610)를 포함한다. 일부 구현예들에서, 정보(610)는 방송 영역이다. 일부 구현예들에서, 각각의 방송 예시는 방송의 시간대(time zone)(612)를 저장한다.
상기 언급된 바와 같이, 데이터베이스(106)는 검색 쿼리 로그(120)를 저장할 수 있다. 일부 구현예들에서, 각각의 검색 쿼리에 고유한 쿼리 ID(336)(예를 들어, 전 세계적으로 고유한 쿼리 ID)가 할당된다. 추가적으로, 도 7에 도시된 바와 같이, 로그는 다양한 검색 쿼리 데이터(338)를 저장한다. 각각의 쿼리는 쿼리 용어들(702)의 세트를 포함하며, 구문점을 제거하기 위해 상기 쿼리 용어들(702)이 파싱 될 수 있다. 일부 구현예들에서, 쿼리 용어들이 비디오 프로그램 자막들에 나타나는 인쇄상의 오류와 매칭하기 때문에, 인쇄상의 오류가 유지된다.
쿼리 데이터(338)는 일반적으로 쿼리가 발행된 때를 특정하는 타임스탬프(timestamp)(704)를 포함한다. 일부 구현예들에서, 타임스탬프(704)는 사용자 시간대(user time zone)(710)에 기초하며, 또한 상기 사용자 시간대(710)는 저장된다. 다른 구현예들에서, 타임스탬프(704)는 쿼리가 수신된 때를 표시하는 서버 생성 타임스탬프를 나타낸다. 일부 서버 시스템들(114)은 데이터의 정확성뿐만 아니라 순차적인 일관성 모두를 보장하기 위해 타임스탬프들을 정확하게 관리하는 하나 이상의 서버들(300)을 포함한다. 일부 구현예들에서, 사용자 시간대(710)와 함께 서버 타임스탬프(704)는 (서버 시간대를 아는 것뿐만 아니라) 서버 시스템으로 하여금 각각의 쿼리가 사용자의 현지 시간에 따라 제출하는 때를 정확하게 알 수 있도록 하며, 사용자의 클라이언트 디바이스(102)에 의존하지 않는다. 일부 구현예들에서, 쿼리 데이터는 사용자의 IP 주소(706) 및 사용자의 지리적 위치(708)를 포함한다. 사용자의 지리적 위치(708)에 대해 가능한 값들의 세트는 일반적으로 비디오 방송들에 사용되는 지리적 위치 또는 지역(610)에 대한 값들의 동일한 세트에 대응한다.
일부 구현예들에서, 데이터베이스(118)는 쿼리 그룹들(340)을 저장하고, 상기 쿼리 그룹들(340)은 동일하게 고려되는 쿼리들의 세트를 식별한다. 쿼리들이 서로 그룹화 될 수 있는 방식들의 일부는 도 11 및 12에 도시된다. 각각의 쿼리 그룹은 쿼리 그룹 ID(342)를 가지며, 상기 쿼리 그룹 ID(342)는 상기 그룹을 고유하게 식별한다. 각각의 그룹과 관련된 것은 평균 쿼리 빈도(344)이며, 상기 평균 쿼리 빈도(344)는 분당 쿼리 예시들 또는 시간당 쿼리 예시들로 표현될 수 있다. 평균(344)은 시구간(예컨데, 주 또는 월)에 걸쳐 연산될 수 있다. 일부 구현예들에서, 평균은 비교적 최근의 값을 유지하기 위해 짧은 시구간(예를 들어, 최근 24시간)에 걸쳐 연산된다. 스파이크들이 백그라운드 평균(background average)(344)에 관하여 식별되기 때문에, 평균은 최신 상태로 유지된다. 예를 들면, 백그라운드 평균(344)은 시간에 걸쳐 천천히 변동될 수 있고, 이는 스파이크를 구성하지 않는다.
일부 구현예들에서, 각각의 쿼리 그룹(340)에 대해 무빙 타임 윈도우에 걸쳐 최대 쿼리 빈도(345)가 계산되고 업데이트 된다. 타임 윈도우는 일반적으로 짧고 비교적 최근(예를 들어, 최근 1시간 또는 30분)이다. 최대 쿼리 빈도가 스파이크들을 검출하는데 사용되기 때문에, 실제 현재의 스파이크와 오버랩 되는 것을 피하기 위해 타임 윈도우는 일반적으로 가장 최근의 몇 분을 제외한다. 일부 구현예들에서, 단지 최대 쿼리 빈도(345)와 관련된 그룹에 대해 스파이크가 식별된다. 다른 구현예들에서, 평균 쿼리 빈도(344) 및 최대 쿼리 빈도(345) 모두를 사용하여 스파이크가 식별된다. 최대 쿼리 빈도(345)와 관련하여 스파이크가 식별된 구현예에서, 현재 그룹 쿼리 빈도가 실질적인 요소에 의해 저장된 최대 쿼리 빈도를 초과하는 경우(예를 들어, 최대 쿼리 빈도의 두 배인 경우) 스파이크는 각각의 그룹에 대해 식별된다. 평균 쿼리 빈도(344) 및 최대 쿼리 빈도(345)의 결합에 기초하여 스파이크가 식별되는 일부 구현예들에서, 현재 쿼리 활동(current query activity)이 상기 그룹에 대한 평균 및 최대 쿼리 빈도들의 일부 수치적인 결합(numerical combination)(예컨데, 선형 결합(linear combination))을 초과하는 경우 스파이크가 식별된다. 일부 구현예들에서, (예를 들어, 미리 정의된 요소들에 의해) 현재 쿼리 활동이 최대 쿼리 빈도 및 평균 쿼리 빈도 모두를 초과하는 경우 스파이크가 식별된다. 일부 구현예들에서, 현대 쿼리 활동이 최대 쿼리 빈도 또는 평균 쿼리 빈도 중 어느 하나를 초과하는 경우 스파이크가 식별된다.
도 8에 도시된 바와 같이, 각각의 쿼리 그룹(340)은 상기 그룹 내에 있는 쿼리들(346)의 세트를 포함한다. 쿼리들(346)의 세트는 쿼리 그룹 ID(342) 및 쿼리 리스트(802)를 포함한다. 각각의 쿼리 예시는 쿼리 용어들(804)의 세트를 포함하고, 상기 쿼리 용어들(804)의 세트는 다양한 형태들(예를 들어, 본래 제출된 것으로서 완전한 쿼리, 구두점이 제거된 완전한 쿼리, 또는 개별적인 용어들의 리스트)로 저장될 수 있다. 추가적으로, 일부 구현예들은 쿼리 분류들(806)의 세트를 포함하고, 상기 쿼리 분류들(806)의 세트는 인간적으로(humanly) 의미있을 수 있거나 훈련된 머신 러닝 분류기의 일부로서 생성될 수 있다.
또한, 데이터베이스(118)는 스파이크 정보(348)를 저장한다. 스파이크는 특정 쿼리 그룹과 관련되며, 상기 특정 쿼리 그룹은 그것의 쿼리 그룹 ID(342)에 의해 식별되고, 일부 경우들에서 프로그램 ID(328)에 의해 식별된 특정 비디오 프로그램과 관련된다.
도 9는 각각의 스파이크에 대해 일부 구현예들이 추적하는 다른 스파이크 데이터(350)를 도시한다. 일부 구현예들에서, 각각의 스파이크는 관련된 시작 시간(902)과 종료 시간(904)를 갖고, 상기 시작 시간(902) 및 종료 시간(904)은 스파이크가 최대에 도달한 때인 타임스탬프를 포함하고, 시작 시간(902) 및 종료 시간(904) 대신 상기 타임스탬프가 저장될 수 있다. 일부 구현예들에서, 스파이크 데이터(350)는 쿼리 예시 카운트(query instance count)(906)를 포함하며, 상기 쿼리 예시 카운트(906)는 스파이크 동안의 별개의 쿼리 예시들의 수를 표시한다. 일부 구현예들에서, 스파이크 데이터(350)는 연산된 쿼리 빈도(908)를 포함한다. 쿼리 빈도 = 쿼리 예시 카운트(906) / (종료 시간(904) - 시작 시간(902))이다. 스파이크가 발생하는 동안, 데이터는 거의 지속적으로 업데이트 될 수 있다. 스파이크가 비디오 프로그램의 자막과 매칭되었을 때, 스파이크 데이터는 대응하는 비디오 프로그램의 프로그램 ID(328) 및 매칭된 자막들이 나타나는 비디오 프로그램 내 위치(910)를 포함할 수 있다. 상기 위치는 프로그램의 시작으로부터의 오프셋 또는 매칭하는 자막들을 갖는 비디오 프로그램의 부분의 방송 시간을 표시하는 타임스탬프로서 특정될 수 있다. 타임스탬프가 위치를 특정하기 위해 사용되는 때, 구현예들은 자막 부분이 시작된 때, 자막 부분이 종료된 때, 또는 그 중간에 타임스탬프를 사용할 수 있다. 일부 구현예들에서, 위치 정보(910)는 단일 포인트(예를 들어, 시작 및 종료, 또는 시작 및 지속 시간)보다는 시간 간격을 특정한다.
도 10은 쿼리 스파이크의 식별과 스파이크를 비디오 프로그램에 상관시키는 것을 시각적으로 도시한다. 도 10의 상단은 특정 쿼리 그룹(342A)에 대한 시간(1004)에 따른 쿼리 빈도(1006)를 나타내는 그래프이다. 디스플레이 된 시간은 특정일의 8:00 PM과 9:00 PM 사이이다. 곡선(1002)은 쿼리 빈도가 어떻게 변동하는지 보여주나, 대부분의 시간 동안 백그라운드 평균(344) 근처에 머문다. 그러나, 시작 시간(902)과 종료 시간(904) 사이의 쿼리 빈도에서 스파이크(348)를 볼 수 있다. 스파이크 동안 증가된 쿼리 빈도는 쿼리 그룹(342A) 내의 모든 쿼리들을 포함한다. 그룹에 대한 최근의 최대 쿼리 빈도(345)에 기초하여 스파이크들을 식별하는 구현예들에 대해, 그룹에 대한 최근의 최대 쿼리 빈도는 현재 시간에 선행하는 쿼리 빈도 데이터의 윈도우(1012)(점선들 사이에서 정의됨)에서 결정된다.
하단의 그래프는 4개의 채널들에 대한 프로그램 라인업들(program lineups)이다. 채널 1은 상기 시간 동안 프로그램 A(328-1)를 제공한다. 채널 2는 처음 30분 동안 프로그램 B(328-2)를 제공하고 이 후 30분 동안 프로그램 C(328-3)를 제공한다. 채널 3은 1시간 동안 프로그램 D(328-4)를 제공하고, 채널 4는 1시간 동안 프로그램 E(328-5)를 제공한다. 서버 시스템(114)은 5개의 프로그램(328-1, ... ,328-5)들이 방송되는 동안, 이들에 대한 비디오 프로그램 용어들(예를 들어, 자막 데이터(332) 또는 음성 인식 소프트웨어에 의해 식별된 용어들)을 동적으로 수집한다.
일단 스파이크(348)가 검출되면, 스파이크(348)의 시작전 최근 시구간 동안(예를 들어, 1분, 5분 또는 10분 동안) 쿼리 용어들이 비디오 프로그램 용어들과 비교된다. 이 경우, 위치(910)에서 프로그램 D(328-4)와 함께 매칭이 검출된다. 일부 경우들에서, 비디오 프로그램 용어들의 특정 단어들 또는 키워드들을 매칭시킴으로써 매칭이 결정된다. 다른 경우들에서, 단어들의 시퀀스 또는 매칭하는 언어적인 개념(matching linguistic concept)에 기초하여 매칭이 검출된다. 일부 구현예들에서, 매칭은 이전에 저장된 비디오 프로그램 용어들 및 쿼리 그룹들로부터의 데이터에 대해 트레이닝 된 분류기에 의해 수행된다. 매칭의 일부 예시들은 도 11 및 12과 관련하여 도시된다.
상기 예시에서 도시된 바와 같이, 스파이크는 쿼리들을 제출한 특정 사용자들과 관계 없이 검출된다. 일부 구현예들에서, 사용자는 쿼리들을 쿼리 모듈(116)에 제출한 임의의 사람들일 수 있다. 일부 구현예들에서, 사용자들의 세트는 클라이언트 디바이스(102) 상에 클라이언트 어플리케이션(104)을 설치한 사람들로 제한된다. 이 경우, 추적된 쿼리들은 클라이언트 어플리케이션에 기초하는바, 일반적으로 비디오 프로그램들에 관련된다. 쿼리들이 모든 사용자들에 대해 추적된 경우, 쿼리들이 반드시 텔레비전에 관련되지 않으므로 상당한 오버헤드 비용들(overhead costs)이 있을 수 있다. 일부 구현예들에서, 스파이크 결과들은 오직 고유한 사용자들로부터의 쿼리들로부터 발생된다. 일부 이러한 구현예들에서, 고유한 사용자들은 사용자 쿼리 세트들을 서버 메모리(314)에 저장하고 이 후 동일한 사용자로부터 중복 쿼리를 디스카운팅하는 것에 의해(즉, 스파이크 검출을 사용하지 않음) 결정된다.
도 11은 동일한 용어들의 리터럴 매칭(literal matching)을 요구하지 않는 매칭의 한 방식을 도시한다. 때때로 사람들은 서로 다른 용어들을 사용하여 동일한 기본 개념을 표현한다. 본 예시에서, 어구 "life on Mars"(1104)는 본질적으로 "Martian life"(1106)와 동일한 개념을 표현하지만, 두 어구들은 서로 다른 단어들과 단어 순서를 사용한다. 만일 이러한 두 어구들이 쿼리들로서 검색 쿼리 모듈(116)에 제출된다면, 일부 구현예들은 이들을 하나의 쿼리 그룹(1102)으로 함께 그룹화 할 것이다. 쿼리 용어들을 비디오 프로그램에서의 비디오 프로그램 용어들로 매칭시킬 때, 개념 매칭의 동일한 프로세스가 적용될 수 있다. 예를 들면, "life on Mars"(1104)의 제출들에서 스파이크가 있고 "Martian life"(1106)가 방송 비디오 프로그램의 비디오 프로그램 용어들에서 나타난다면, 일부 구현예들은 이들을 상관시킬 것이다.
도 12는 쿼리 용어들을 매칭시키는 다른 방식을 도시한다. 이 경우, 2개의 용어들의 세트가 실질적으로 동일한 용어들의 시퀀스들을 가지는 경우 매칭이 식별된다. 일부 경우들에서는 시퀀스들이 정확하게 동일하지만, 다른 경우들에서는 이러한 예들에 의해 도시된 바와 같이 약간의 차이가 있다. 예를 들면, 시퀀스들(1112 및 1114)은 시퀀스(1114)가 말미에 용어 "river"를 추가한 점만이 다르다. 이들은 실질적으로 동일하다. 또한, 유일한 차이점이 중요하지 않은 용어 "on"을 생략한 것이기 때문에, 시퀀스(1116)는 시퀀스(1112)와 실질적으로 동일하다. 비록 시퀀스(1118)가 2개의 용어들 "Mary Poppins"를 추가하였지만, 시퀀스(1118)가 시퀀스(1112)와 동일한 중요한 시퀀스를 포함하기 때문에, 일부 구현예들은 상기 시퀀스(1118)를 첫 번째 시퀀스(1112)와 실질적으로 동일한 것으로 분류할 것이다. 마지막 예시(1120)는 일부 구현예들은 또한 철자상의 오류 또는 인쇄상의 오류를 고려함을 도시한다. 어떤 사람들(예를 들어, 미국인)은 "Thames"의 철자를 모를 수 있으나, 시퀀스(1120)에는 매칭하는 것으로 고려할 수 있는 충분한 컨텍스트가 있다. 일부 구현예들은 이러한 5개의 시퀀스들을 하나의 그룹(1110)으로 함께 그룹화하고, 이들 모두에 대해 제출된 총 통합된 쿼리들에 기초하여 쿼리 빈로를 측정할 것이다.
도 11 및 12에 도시된 바와 같은 다양한 매칭 기법들에 의해 함께 그룹화 하는 것 이외에도, 일부 구현예들은 클러스터링 알고리즘(clustering algorithm)을 사용하여 쿼리들을 함께 그룹화 한다.
또한, 도 11 및 12의 예시들은 제출된 쿼리들과 비디오 프로그램 용어들(예를 들어, 자막 용어) 사이의 매칭에 적용된다.
도 13은 비디오 추출 모듈(128)에 의해 수행되는 프로세스를 도시한다. 비디오 추출 모듈(128)은 제출된 사용자들 쿼리들에 기초하여 비디오 프로그램 추출을 생성한다. 도 10은 하나의 검색 쿼리 스파이크(348)를 비디오 프로그램(328-4) 내 위치(910)에 매칭시키는 것을 도시하였지만, 도 13은 하나의 프로그램(328)에 대한 다수의 스파이크들을 상관시킨다. 도 13의 상단은, 개별적인 3개의 쿼리 그룹들(342A, 342B 및 342C)에 대한 시간(1004)에 따른 쿼리 빈도(1006)의 플롯들(plots)이다. 그래프(1342C)는 쿼리 그룹(342C)에 대응하고, 그래프(1342A)는 쿼리 그룹(342A)에 대응하며, 그래프(1342B)는 쿼리 그룹(342B)에 대응한다.
쿼리 그룹들의 각각에 대한 백그라운드 또는 평균 쿼리 빈도는 서로 다름(그래프들(1342A, 1342B 및 1342C)은 x축 위에 서로 다른 평균 높이를 가짐)에 주목하라. 본 예시에서, 그래프로 표시된 쿼리 그룹들의 각각은 8:30 PM과 9:00 PM 사이에서 스파이크(348A, 348B 및 348C)를 가진다. 스파이크 식별 모듈(324)은 도 10과 관련하여 상기 설명된 바와 같이, 스파이크들(348A, 348B 및 348C)를 식별(1302)한다. 비록 여기에는 검색 쿼리들에 대해 도시되었지만, 일부 구현예들에서, 동일한 방법론이 Twitter® tweets™에 적용된다.
각각의 스파이크(348)는 도 10과 관련하여 상기 기술된 바와 같이, 비디오 프로그램 내 위치(910)와 상관(1304)될 수 있다. 여기에서, 스파이크(348A)는 위치(910A)와 상관되고, 스파이크(348B)는 위치(910B)와 상관되며, 스파이크(348C)는 위치(910C)와 상관된다.
일단 비디오 프로그램(328) 내 위치들(910)이 식별되면, 프로세스는 상기 위치들을 포함하는 비디오 장면 부분들을 선택(1306)한다. 특히, 스니펫은 각 위치에 하나 이상의 비디오 프레임을 포함한다. 일반적으로, 구현예들은 각 위치 주변의 부분을 선택하여 각 위치를 포함하는 인접한 비디오 부분을 만든다. 일부 구현예들에서, 상기 부분은 가장 가까운 비디오 장면 경계들까지 앞과 뒤로 확장된다. 일부 경우들에서, 경계까지 계속 확장시키는 것은 너무 길기 때문에 상기 부분은 제한될 수 있다. 예를 들면, 일부 구현예들은 각 위치를 기준으로 전후 30초까지 상기 부분을 제한한다 (그리고 대응하는 위치로부터 30초 보다 짧은 비디오 장면 경계가 있는 경우, 부분은 작아질 수 있다). 도 13에 도시된 바와 같이, 위치(910A)에 대응하는 부분은 낮은 포지션(1312)에서 높은 포지션(1314)까지의 범위를 갖는다. 위치들(910A 및 910B)은 도시된 부분들의 대략 중간에 있지만, 위치(910C)는 중심을 벗어난다.
최종적으로, 비디오 장면 부분들은 비디오 추출(1320)을 형성하기 위해 스티치(1308)된다. 추출(1320)은 전체 비디오 프로그램(328)보다 작지만, 사용자들에게 관심있는 것으로 식별된 일부 콘텐츠를 포함한다. 일단 추출(1320)이 생성되면, 상기 추출(1320)은 사용자들에게 제공될 수 있다. 예를 들면, 만일 비디오 프로그램이 영화 또는 TV 에피소드인 경우, 사용자는 전체 프로그램을 볼지 여부를 결정하기 위해 상기 추출(1320)을 시청할 수 있다. 만일 비디오 프로그램이 새로운 프로그램인 경우, 사용자가 하이라이트들을 알게 하기 위해서는 추출만으로도 충분할 수 있다. 일부 구현예들에서, 비디오 추출이 만들어진 경우, 위치들(910)에 대한 정보가 저장되고, 상기 위치들(910)은 원래의 비디오 프로그램에서 비디오 세그먼트들(video segments)로의 빠른 링크를 인에이블(enable)한다. 예를 들면, 만일 사용자가 비디오 추출 내 새로운 클립들 중 하나에 관심이 있는 경우, 사용자는 원래 콘텐츠에 링크하여 관련 세그먼트 전체를 볼 수 있다.
도 14A - 14C는 비디오 프로그램 추출들을 빌드(1402)하기 위해 서버 시스템(114)에 의해 수행되는 프로세스(1400)의 흐름도를 제공한다. 추출물들은 스니펫들로도 지칭된다. 상기 방법은 하나 이상의 프로세서들 및 메모리를 갖는 서버 시스템에서 수행(1404)된다. 메모리는 상기 하나 이상의 프로세서들에 의한 실행을 위해 구성된 프로그램들을 저장(1404)한다.
프로세스는 복수의 사용자들에 의해 제출된 검색 쿼리들로부터 복수의 검색 쿼리 스파이크들을 식별(1406)한다. 스파이크들은 일반적으로 특정 시간(예를 들어, 도 13에서 8:00 PM과 9:00 PM 사이) 동안 발생한다. 일부 구현예들에서, 검색 쿼리들은 클라이언트 어플리케이션(104)을 실행하는 사용자들로부터 온 것이다. 일부 구현예들에서, 사용자들은 클라이언트 어플리케이션(104)을 반드시 사용할 필요는 없다.
스파이크는 쿼리 빈도 내 단기간의 증가(short term increase)를 나타내므로, 각각의 스파이크는 제한된 지속시간(예를 들어, 5분과 같이 미리 정의된 지속시간 보다 짧은 지속시간)을 갖는다. 일부 구현예들에서, 각각의 검색 쿼리 스파이크(348)는 등가인 것으로서 식별되는 하나 이상의 검색 쿼리들의 각각의 세트에 대응(1408)한다. 서로 다른 사람들은 동일한 기본 쿼리를 서로 다른 방식으로 표현하므로, 더 정확한 보고를 위해 구현예들은 일반적으로 이들을 함께 그룹화 한다.
일부 구현예들에서, 제1 검색 쿼리로부터의 검색 용어들의 정렬된 시퀀스가 제2 검색 쿼리로부터의 검색 용어들의 정렬된 시퀀스와 실질적으로 동일한 때, 제1 검색 쿼리와 제2 검색 쿼리는 등가인 것으로서 식별(1410)된다. 이는 도 12와 관련하여 상기 기술되었다. 일부 구현예들에서, 제1 검색 쿼리로부터의 검색 용어들을 사용하여 표현된 언어적인 개념이 제2 검색 쿼리로부터의 검색 용어들을 사용하여 표현된 언어적인 개념과 실질적으로 동일한 때, 제1 검색 쿼리와 제2 검색 쿼리는 등가인 것으로서 식별(1412)된다. 이는 도 11과 관련하여 상기 기술되었다.
"스파이크"는 쿼리 빈도에서 약간의 범프(bump) 이상의 것이다. 여기에서, 스파이크 구간 동안 각각의 세트로부터의 쿼리들을 제출하는 빈도가 평균 시간 동안 세트로부터의 쿼리들을 제출하는 빈도를 미리 정의된 임계량 또는 임계 퍼센티지만큼 초과하는 경우(1408), 스파이크가 식별된다. 예를 들면, 일부 구현예들은 임계 퍼센티지를 25% 또는 50%로서 특정한다. 일부 구현예들은 중요한 스파이크들에 초점을 맞추기 위해 훨씬 높은 퍼센티지를 사용한다. 일부 구현예들은 일부 구현예들은 쿼리 그룹 또는 다른 요소들에 기초하여 조정형 퍼센티지(adaptive percentage)를 갖는다. 예를 들면, 만일 지난 30분 동안 관련 스파이크들의 수가 적으면, 더 많은 스파이크들을 식별하기 위해, 요구되는 임계 퍼센티지가 감소될 수 있다. 일부 구현예들에서, 잠재적인 스파이크에 대한 쿼리 빈도는 최근 시간 동안의 최대 쿼리 빈도(345)와 비교된다. 이는 도 10과 관련하여 상기 기술되었다.
이 후, 검색 용어 매칭 모듈(326)은 검색 쿼리 스파이크들의 서브세트를 방송 비디오 프로그램과 상관(1414)시킨다. 일부 구현예들은 검색 쿼리들로부터의 하나 이상의 용어들을 특정 위치에서 비디오 프로그램 내에서 나타나는 하나 이상의 자막 용어들에 매칭(1420)시킨다. 상기 매칭은 매칭하는 특정 단어들 또는 키워드들, 어구, 또는 개념적 실체들을 수반할 수 있다. 일부 예시들은 도 11 및 12에 도시된다. 각각의 상관된 검색 쿼리 스파이크는 비디오 프로그램 내 각 위치에 대응(1416)한다.
일부 예시들에서, 비디오 프로그램은 텔레비전으로 방송된 텔레비전 프로그램이다(1418). 일부 예시들에서, 비디오 프로그램은 인터넷으로부터 스트리밍되고, 텔레비전 프로그램 외에도 미디어 콘텐츠로 구성될 수 있다.
일부 구현예들에서, 각각의 상관된 검색 쿼리 스파이크에 대해, 검색 쿼리 스파이크의 시간과 비디오 프로그램 내 각 위치가 방송되었던 시간의 시간 차이가 미리 정의된 지연보다 적다(1422). 이는 특정 미디어 콘텐츠에 의해 트리거(trigger)된 스파이크들을 식별하는 목표과 일치한다. 일부 예시들에서, 검색 용어 매칭 모듈(326)은 검색 쿼리들을 매칭하기 위해, 2 이상의 연속적인 세그먼트들로부터의 자막들을 함께 스티치한다.
일부 구현예들에서, 검색 쿼리들의 세트로부터의 하나 이상의 용어들을 비디오 프로그램에서 나타나는 하나 이상의 자막 용어들에 매칭시키는 것은 세트 내 검색 쿼리로부터의 용어들의 정렬된 시퀀스를 실질적으로 동일한 자막 용어들의 정렬된 시퀀스에 매칭시키는 것을 포함한다. 이는 도 12와 관련하여 상술되었다. 일부 구현예들에서, 검색 쿼리들의 세트로부터의 하나 이상의 용어들을 비디오 프로그램에서 나타나는 하나 이상의 자막 용어들에 매칭시키는 것은 세트 내 검색 쿼리로부터의 용어들을 사용하여 표현된 언어적인 개념을 자막 용어들을 사용하여 표현된 실질적으로 동일한 언어적인 개념에 매칭시키는 것을 포함한다. 이는 도 11과 관련하여 상술되었다.
프로세스(1400)는 상관된 검색 쿼리 스파이크들에 대응하는 위치들을 포함하는 비디오 프로그램의 부분들을 함께 스티치함으로써, 비디오 프로그램의 스니펫을 구성(1424)한다. 이는 도 13에서 상기 도시되었다. 일부 예시들에서, 비디오 프로그램 내의 부분들의 순서에 따라, 구성된 스니펫에서 비디오 프로그램의 부분들이 순서대로 배열(1426)된다. 이는 "시간순으로 올바른(chronologically correc)" 추출을 제공한다. 일부 구현예들에서, 부분들은 반드시 순서대로 함께 스티치될 필요는 없으며, 관련된 장면들을 함께 그룹화하고 중요한 부분을 추출의 시작 또는 종료 부분에 배치하거나 또는 다른 목적들을 위해 배치하기 위해 약간의 유연성(flexibility)을 허용한다.
일부 구현예들에서, 상관된 검색 쿼리 스파이크들에 대응하는 위치들을 포함하는 비디오 프로그램의 부분들은 각 위치 전과 후의 비디오 장면 경계들까지 확장(1428)된다. 이는 도 13에서 상기 도시되었으며, 낮은 포지션(1312)에서 높은 포지션(1314)까지의 위치(910A)를 포함하는 부분을 선택(1306)한다. 일반적으로 선택된 부분들은 시청자가 각각의 장면을 이해할 수 있을만큼 충분히 길지만, 추출이 너무 길어서 볼 수 없을 만큼 길지는 않다.
일부 예시들에서, 사용자가 비디오 프로그램에 관한 정보에 대한 검색 쿼리를 제출할 때, 서버 시스템(114)은 구성된 스니펫을 사용자에게 제공(1430)한다.
일부 구현예들에서, 다수의 비디오 프로그램들로부터의 스니펫들은 비디오 요약을 형성하기 위해 함께 스티치된다. 비디오 요약은 일반적으로 특정 시간(예컨데, 하루, 아침, 밤)을 나타나며, 다른 방식들(예를 들어, 특정 채널, 채널들의 그룹 또는 장르)로 제한될 수 있다. 일부 구현예들에서, 사용자는 선택 기준을 특정할 수 있고 이러한 선택 기준에 기초하여 개인화 된 비디오 요약을 수신할 수 있다.
일부 구현예들에서, 복수의 각각의 방송 비디오 프로그램들에 대한 각각의 스니펫들을 구성(1432)함으로써, 비디오 요약이 생성된다. 도 13과 관련하여 상기 도시된 바와 같이, 각각의 스니펫들은 각각의 복수의 검색 쿼리 스파이크들을 각각의 비디오 프로그램에 상관시키는 것에 기초(1432)한다. 복수의 방송 비디오 프로그램들은 미리 정의된 시간 동안 모두 방송(1432)되었다. 그 후, 프로세스(1400)는 미리 정의된 시간에 대한 하나의 비디오 요약을 형성하기 위해, 복수의 방송 프로그램들에 대한 스니펫들을 함께 스티치(1434)한다(상기 논의된 바와 같이, 상기 요약은 또한 다른 기준에 의해 제한될 수 있다).
본 명세서에서 본 발명의 설명에 사용된 용어는 단지 특정 구현예들을 설명하기 위한 것이며, 본 발명을 제한하려는 것은 아니다. 본 발명의 설명 및 첨부된 청구범위들에서 사용된 바와 같이, 단수 형태는 문맥상 명백하게 달리 명시하지 않는한, 복수의 형태를 포함하는 것으로 의도된다. 또한, 본 명세서에서 사용된 용어 "및/또는"은 관련되고 리스트된 하나 이상의 항목들의 임의의 그리고 모든 가능한 결합들을 지칭하고 이들을 포함함이 이해될 것이다. 본 명세서에서 사용되는 용어 "포함한다" 및/또는 "포함하는"는 명시된 구성들, 단계들, 동작들, 구성요소들, 및/또는 컴포넌트들의 존재를 특정하나, 하나 이상의 다른 구성들, 단계들, 동작들, 구성요소들, 컴포넌트들, 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지 않음이 추가적으로 이해될 것이다.
전술한 설명은, 설명의 목적을 위해, 특정 구현예들을 참조하여 기술되었다. 그러나, 전술한 예시적인 논의는 전체 내용을 다루는 것으로 의도되거나 본 발명을 개시된 정확한 형태들로 제한하려는 것으로 의도되지 않는다. 상기 교시의 관점에서, 많은 수정 및 변형이 가능하다. 예를 들면, 일부 구현예들은 검색 쿼리들 대신 소셜 미디어 사이트들(예를 들어, Twitter®)의 게시물들을 사용하거나, 게시물들과 함께 검색 쿼리들을 소셜 미디어 사이트들에 보충한다. 일부 구현예들에서, 기법들은 주문형 비디오(VOD)를 포함하도록 확장되며, 상기 주문형 비디오(VOD)에서 개별 사용자들에 대한 프리젠테이션(presentation)은 미리 정의된 스케쥴을 따르지 않는다. 사용자가 클라이언트 어플리케이션(104)을 가지고 주문형 비디오 프로그램을 시청할 때, 통합없이 매칭이 수행될 수 있다. 나중에, 다수의 사용자들로부터의 결과들은 통합될 수 있고, 스파이크들을 식별하기 위해 상관될 수 있다. 본 명세어세 설명된 구현예들은 발명의 원리 및 그 실제 응용들을 가장 잘 설명하고, 기술분야에서 통상의 지식을 가진자가 본 발명 및 의도된 특정 용동 적합한 것으로서 다양한 변형들을 갖는 다양한 구현예들을 가장 잘 인에이블 하기 위해, 선택되고 기술되었다.

Claims (21)

  1. 비디오 프로그램 추출(video program extract)을 빌드(build)하는 방법에 있어서,
    하나 이상의 프로세서들 및 상기 하나 이상의 프로세서들에 의한 실행을 위해 구성된 프로그램들을 저장하는 메모리를 갖는 서버 시스템에서,
    복수의 사용자들에 의해 제출된 검색 쿼리들(search queries)로부터 복수의 검색 쿼리 스파이크들(search query spikes)을 식별하는 단계와;
    상기 검색 쿼리 스파이크들의 서브세트를 방송 비디오 프로그램에 상관(correlate)시키는 단계와, 상기 각각의 상관된 검색 쿼리 스파이크는 상기 비디오 프로그램 내 각 위치에 대응하며; 그리고
    상기 상관된 검색 쿼리 스파이크들에 대응하는 상기 위치들을 포함하는 상기 비디오 프로그램의 부분들을 함께 스티치(stitch)함으로써, 상기 비디오 프로그램의 스니펫(snippet)을 구성(construct)하는 단계를 포함하는 것을 특징으로 하는 비디오 프로그램 추출을 빌드하는 방법.
  2. 청구항 1에 있어서,
    상기 비디오 프로그램과 관련된 정보에 대한 사용자로부터의 검색 쿼리에 응답하여, 상기 사용자에게 상기 구성된 스니펫을 제공하는 단계를 더 포함하는 것을 특징으로 하는 비디오 프로그램 추출을 빌드하는 방법.
  3. 청구항 1에 있어서,
    상기 각각의 검색 쿼리 스파이크는 등가인(equvalant) 것으로서 식별된 하나 이상의 검색 쿼리들의 각각의 세트에 대응하며, 대응하는 스파이크 구간(spike period) 동안에 상기 각각의 세트로부터의 쿼리들을 제출하는 빈도는 평균 시간 동안에 상기 각각의 세트로부터의 쿼리들을 제출하는 빈도를 미리 정의된 임계량(threshold amount)만큼 초과하는 것을 특징으로 하는 비디오 프로그램 추출을 빌드하는 방법.
  4. 청구항 3에 있어서,
    제1 검색 쿼리로부터의 검색 용어들의 정렬된 시퀀스(ordered sequence)가 제2 검색 쿼리로부터의 검색 용어들의 정렬된 시퀀스와 실질적으로 동일한 경우, 상기 제1 검색 쿼리와 상기 제2 검색 쿼리가 등가인 것으로서 식별되는 것을 특징으로 하는 비디오 프로그램 추출을 빌드하는 방법.
  5. 청구항 3에 있어서,
    제1 검색 쿼리로부터의 검색 용어들을 사용하여 표현된 언어적인 개념(linguistic concept)이 제2 검색 쿼리로부터의 검색 용어들을 사용하여 표현된 언어적인 개념과 실질적으로 동일한 경우, 상기 제1 검색 쿼리와 상기 제2 검색 쿼리는 등가인 것으로서 식별되는 것을 특징으로 하는 비디오 프로그램 추출을 빌드하는 방법.
  6. 청구항 1 내지 5 중 어느 한 항에 있어서,
    상기 비디오 프로그램은 텔레비전으로 방송된 텔레비전 프로그램인 것을 특징으로 하는 비디오 프로그램 추출을 빌드하는 방법.
  7. 청구항 1 내지 5 중 어느 한 항에 있어서,
    검색 쿼리 스파이크를 방송 비디오 프로그램에 상관시키는 단계는 상기 비디오 프로그램 내 대응하는 각 위치에서, 상기 대응하는 검색 쿼리들로부터의 검색 용어들을 상기 비디오 프로그램의 자막들(subtitles)에 매칭(matching)시키는 것을 포함하는 것을 특징으로 하는 비디오 프로그램 추출을 빌드하는 방법.
  8. 청구항 1 내지 5 중 어느 한 항에 있어서,
    상기 비디오 프로그램의 상기 부분들은 상기 비디오 프로그램 내의 상기 부분들의 순서에 따라, 상기 구성된 스니펫에서 순서대로 정렬되는 것을 특징으로 하는 비디오 프로그램 추출을 빌드하는 방법.
  9. 청구항 1 내지 5 중 어느 한 항에 있어서,
    상기 상관된 검색 쿼리 스파이크들에 대응하는 상기 위치들을 포함하는 상기 비디오 프로그램의 상기 부분들을 각 위치 전과 후의 비디오 장면 경계들(video scene boundaries)까지 확장시키는 것을 특징으로 하는 비디오 프로그램 추출을 빌드하는 방법.
  10. 청구항 1 내지 5 중 어느 한 항에 있어서,
    복수의 각각의 방송 비디오 프로그램들에 대한 각각의 스니펫들을 구성하는 단계와, 상기 각각의 스니펫은 각각의 복수의 상기 검색 쿼리 스파이크들을 상기 각각의 비디오 프로그램에 상관시키는 것에 기초하고, 상기 복수의 방송 비디오 프로그램들은 미리 정의된 시간 동안 모두 방송되었으며;
    상기 미리 정의된 시간에 대한 하나의 비디오 요약을 형성하기 위해, 상기 복수의 방송 프로그램들에 대한 상기 스니펫들을 함께 스티치하는 단계를 더 포함하는 것을 특징으로 하는 비디오 프로그램 추출을 빌드하는 방법.
  11. 청구항 1 내지 5 중 어느 한 항에 있어서, 상기 각각의 상관된 검색 쿼리 스파이크에 대해, 상기 각각의 검색 쿼리 스파이크의 시간과 상기 비디오 프로그램의 상기 각 위치가 방송되었던 시간 사이의 시간 차(time difference)가 미리 정의된 지연시간(delay)보다 작은 것을 특징으로 하는 비디오 프로그램 추출을 빌드하는 방법.
  12. 비디오 프로그램 추출을 빌드하기 위한 서버 시스템으로서, 상기 서버 시스템은:
    하나 이상의 프로세서들과;
    메모리와; 그리고
    상기 하나 이상의 프로세서들에 의한 실행을 위해 구성되고 상기 메모리에 저장된 하나 이상의 프로그램들을 포함하며, 상기 하나 이상의 프로그램들은 명령어들을 포함하고, 상기 명령어들은:
    복수의 사용자들에 의해 제출된 검색 쿼리들로부터 복수의 검색 쿼리 스파이크들을 식별하고;
    상기 검색 쿼리 스파이크들의 서브세트를 방송 비디오 프로그램에 상관시키고, 상기 각각의 상관된 검색 쿼리 스파이크는 상기 비디오 프로그램 내 각 위치에 대응하며; 그리고
    상기 상관된 검색 쿼리 스파이크들에 대응하는 상기 위치들을 포함하는 상기 비디오 프로그램의 부분들을 함께 스티치함으로써, 상기 비디오 프로그램의 스니펫을 구성하는 것을 특징으로 하는 서버 시스템.
  13. 청구항 12에 있어서,
    상기 하나 이상의 프로그램들은 명령어들을 더 포함하고, 상기 명령어들은:
    상기 비디오 프로그램과 관련된 정보에 대한 사용자로부터의 검색 쿼리에 응답하여, 상기 사용자에게 상기 구성된 스니펫을 제공하는 것을 특징으로 하는 서버 시스템.
  14. 청구항 12에 있어서,
    상기 각각의 검색 쿼리 스파이크는 등가인 것으로서 식별된 하나 이상의 검색 쿼리들의 각각의 세트에 대응하며, 대응하는 스파이크 구간 동안에 상기 각각의 세트로부터의 쿼리들을 제출하는 빈도는 평균 시간 동안에 상기 각각의 세트로부터의 쿼리들을 제출하는 빈도를 미리 정의된 임계량만큼 초과하는 것을 특징으로 하는 서버 시스템.
  15. 청구항 12에 있어서,
    검색 쿼리 스파이크를 방송 비디오 프로그램에 상관시키는 상기 명령어들은 상기 비디오 프로그램 내 대응하는 각 위치에서, 상기 대응하는 검색 쿼리들로부터의 검색 용어들을 상기 비디오 프로그램의 자막들에 매칭시키는 명령어들을 포함하는 것을 특징으로 하는 서버 시스템.
  16. 청구항 12에 있어서,
    상기 비디오 프로그램의 상기 부분들은 상기 비디오 프로그램 내의 상기 부분들의 순서에 따라, 상기 구성된 스니펫에서 순서대로 정렬되는 것을 특징으로 하는 서버 시스템.
  17. 청구항 12에 있어서,
    상기 상관된 검색 쿼리 스파이크들에 대응하는 상기 위치들을 포함하는 상기 비디오 프로그램의 상기 부분들을 각 위치 전과 후의 비디오 장면 경계들까지 확장시키는 것을 특징으로 하는 서버 시스템.
  18. 청구항 12에 있어서,
    상기 하나 이상의 프로그램들은 명령어들을 더 포함하고, 상기 명령어들은:
    복수의 각각의 방송 비디오 프로그램들에 대한 각각의 스니펫들을 구성하고, 상기 각각의 스니펫은 각각의 복수의 상기 검색 쿼리 스파이크들을 상기 각각의 비디오 프로그램에 상관시키는 것에 기초하고 상기 복수의 방송 비디오 프로그램들은 미리 정의된 시간 동안 모두 방송되었으며;
    상기 미리 정의된 시간에 대한 하나의 비디오 요약을 형성하기 위해 상기 복수의 방송 프로그램들에 대한 상기 스니펫들을 함께 스티치하는 것을 특징으로 하는 서버 시스템.
  19. 청구항 12에 있어서, 상기 각각의 상관된 검색 쿼리 스파이크에 대해, 상기 각각의 검색 쿼리 스파이크의 시간과 상기 비디오 프로그램의 상기 각 위치가 방송되었던 시간 사이의 시간 차가 미리 정의된 지연시간보다 작은 것을 특징으로 하는 서버 시스템.
  20. 서버 시스템에 의한 실행을 위해 구성된 하나 이상의 프로그램들을 저장하는 비-일시적인 컴퓨터 판독가능한 저장 매체로서, 상기 서버 시스템은 하나 이상의 프로세서들 및 상기 하나 이상의 프로세서들에 의한 실행을 위해 구성된 상기 하나 이상의 프로그램들을 저장하는 메모리를 가지며, 상기 하나 이상의 프로그램들은 청구항 1 내지 11 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는 것을 특징으로 하는 비-일시적인 컴퓨터 판독가능한 저장 매체.
  21. 비디오 프로그램 추출을 빌드하기 위한 서버 시스템으로서, 상기 서버 시스템은:
    하나 이상의 프로세서들과;
    메모리와; 그리고
    상기 하나 이상의 프로세서들에 의한 실행을 위해 구성되고 상기 메모리에 저장된 하나 이상의 프로그램들을 포함하며, 상기 하나 이상의 프로그램들은 청구항 1 내지 11 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는 것을 특징으로 하는 서버 시스템.
KR1020167035070A 2014-05-20 2015-05-19 검색 쿼리들에 기초하여 비디오 프로그램 추출들을 생성하기 위한 시스템들 및 방법들 KR101903720B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462001007P 2014-05-20 2014-05-20
US62/001,007 2014-05-20
US14/335,851 2014-07-18
US14/335,851 US9535990B2 (en) 2014-05-20 2014-07-18 Systems and methods for generating video program extracts based on search queries
PCT/US2015/031621 WO2015179431A1 (en) 2014-05-20 2015-05-19 Systems and methods for generating video program extracts based on search queries

Publications (2)

Publication Number Publication Date
KR20170007799A true KR20170007799A (ko) 2017-01-20
KR101903720B1 KR101903720B1 (ko) 2018-10-04

Family

ID=53276317

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167035070A KR101903720B1 (ko) 2014-05-20 2015-05-19 검색 쿼리들에 기초하여 비디오 프로그램 추출들을 생성하기 위한 시스템들 및 방법들

Country Status (5)

Country Link
US (1) US9535990B2 (ko)
EP (2) EP3146443A1 (ko)
KR (1) KR101903720B1 (ko)
CN (1) CN106464986B (ko)
WO (1) WO2015179431A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210138455A (ko) * 2020-05-12 2021-11-19 쿠팡 주식회사 데이터베이스 쿼리 레이턴시를 감소시키기 위한 시스템 및 방법
KR20220116713A (ko) 2021-02-15 2022-08-23 한국전자통신연구원 비디오 의미 구간 검출 장치 및 이를 이용한 방법
KR20230032317A (ko) 2021-08-30 2023-03-07 한국전자통신연구원 비디오 의미 구간 검출 방법 및 시스템
US11908192B2 (en) 2018-05-29 2024-02-20 Samsung Electronics Co., Ltd. Electronic device and control method therefor

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3090562B1 (en) * 2013-12-30 2020-09-23 Telecom Italia S.p.A. Method and system for automatically selecting parts of a video and/or audio media content based on information obtained from social networks
US10511580B2 (en) 2014-03-31 2019-12-17 Monticello Enterprises LLC System and method for providing a social media shopping experience
US11080777B2 (en) * 2014-03-31 2021-08-03 Monticello Enterprises LLC System and method for providing a social media shopping experience
US11004139B2 (en) 2014-03-31 2021-05-11 Monticello Enterprises LLC System and method for providing simplified in store purchases and in-app purchases using a use-interface-based payment API
US9946769B2 (en) 2014-06-20 2018-04-17 Google Llc Displaying information related to spoken dialogue in content playing on a device
US9805125B2 (en) 2014-06-20 2017-10-31 Google Inc. Displaying a summary of media content items
US9838759B2 (en) 2014-06-20 2017-12-05 Google Inc. Displaying information related to content playing on a device
US10206014B2 (en) 2014-06-20 2019-02-12 Google Llc Clarifying audible verbal information in video content
US10349141B2 (en) 2015-11-19 2019-07-09 Google Llc Reminders of media content referenced in other media content
US11184300B2 (en) * 2015-11-23 2021-11-23 Verizon Media Inc. Encoding and distributing snippets of events based on near real time cues
US11388480B2 (en) 2015-11-30 2022-07-12 Sony Group Corporation Information processing apparatus, information processing method, and program
EP3408761A1 (en) * 2016-01-25 2018-12-05 Google LLC Media program moments guide
US10034053B1 (en) 2016-01-25 2018-07-24 Google Llc Polls for media program moments
US20180189399A1 (en) * 2016-12-29 2018-07-05 Google Inc. Systems and methods for identifying and characterizing signals contained in a data stream
US10140286B2 (en) * 2017-02-22 2018-11-27 Google Llc Optimized graph traversal
US20190090023A1 (en) * 2017-09-19 2019-03-21 Sling Media L.L.C. Intelligent filtering and presentation of video content segments based on social media identifiers
US11252477B2 (en) 2017-12-20 2022-02-15 Videokawa, Inc. Event-driven streaming media interactivity
US11109111B2 (en) 2017-12-20 2021-08-31 Flickray, Inc. Event-driven streaming media interactivity
CN109933691B (zh) * 2019-02-11 2023-06-09 北京百度网讯科技有限公司 用于内容检索的方法、装置、设备和存储介质
US11516539B2 (en) * 2021-03-01 2022-11-29 Comcast Cable Communications, Llc Systems and methods for providing contextually relevant information
US20220353584A1 (en) * 2021-04-30 2022-11-03 Rovi Guides, Inc. Optimal method to signal web-based subtitles

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961954B1 (en) * 1997-10-27 2005-11-01 The Mitre Corporation Automated segmentation, information extraction, summarization, and presentation of broadcast news
US20030163816A1 (en) * 2002-02-28 2003-08-28 Koninklijke Philips Electronics N.V. Use of transcript information to find key audio/video segments
US7542967B2 (en) 2005-06-30 2009-06-02 Microsoft Corporation Searching an index of media content
US8156114B2 (en) 2005-08-26 2012-04-10 At&T Intellectual Property Ii, L.P. System and method for searching and analyzing media content
US8132103B1 (en) * 2006-07-19 2012-03-06 Aol Inc. Audio and/or video scene detection and retrieval
US8396878B2 (en) 2006-09-22 2013-03-12 Limelight Networks, Inc. Methods and systems for generating automated tags for video files
US8196045B2 (en) * 2006-10-05 2012-06-05 Blinkx Uk Limited Various methods and apparatus for moving thumbnails with metadata
US20080186810A1 (en) 2007-02-06 2008-08-07 Kumaran O R Senthil System and Method for Audiovisual Content Search
US9286385B2 (en) 2007-04-25 2016-03-15 Samsung Electronics Co., Ltd. Method and system for providing access to information of potential interest to a user
US8176068B2 (en) 2007-10-31 2012-05-08 Samsung Electronics Co., Ltd. Method and system for suggesting search queries on electronic devices
US8122011B1 (en) 2008-03-12 2012-02-21 Google Inc. Identifying sibling queries
US8140562B1 (en) 2008-03-24 2012-03-20 Google Inc. Method and system for displaying real time trends
CN101887439B (zh) * 2009-05-13 2014-04-02 富士通株式会社 生成视频摘要的方法、装置、包含该装置的图像处理系统
BR112012020747A2 (pt) 2010-02-19 2016-04-26 Thomson Licensing geração automática de clipe junto a conjuntos periféricos de linha.
US8694533B2 (en) 2010-05-19 2014-04-08 Google Inc. Presenting mobile content based on programming context
KR20120010433A (ko) 2010-07-26 2012-02-03 엘지전자 주식회사 영상표시기기의 동작 방법
CN103097987A (zh) 2010-09-08 2013-05-08 索尼公司 提供视频剪辑的系统和方法及其创建
EP2479686B1 (en) 2011-01-24 2014-09-17 AOL Inc. Systems and methods for analyzing and clustering search queries
US10440402B2 (en) 2011-01-26 2019-10-08 Afterlive.tv Inc Method and system for generating highlights from scored data streams
US8839303B2 (en) 2011-05-13 2014-09-16 Google Inc. System and method for enhancing user search results by determining a television program currently being displayed in proximity to an electronic device
US20130070163A1 (en) 2011-09-19 2013-03-21 Sony Corporation Remote control with web key to initiate automatic internet search based on content currently displayed on tv
US20140101551A1 (en) * 2012-10-05 2014-04-10 Google Inc. Stitching videos into an aggregate video

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11908192B2 (en) 2018-05-29 2024-02-20 Samsung Electronics Co., Ltd. Electronic device and control method therefor
KR20210138455A (ko) * 2020-05-12 2021-11-19 쿠팡 주식회사 데이터베이스 쿼리 레이턴시를 감소시키기 위한 시스템 및 방법
US11210288B2 (en) 2020-05-12 2021-12-28 Coupang Corp. Systems and methods for reducing database query latency
US11681701B2 (en) 2020-05-12 2023-06-20 Coupang Corp. Systems and methods for reducing database query latency
KR20220116713A (ko) 2021-02-15 2022-08-23 한국전자통신연구원 비디오 의미 구간 검출 장치 및 이를 이용한 방법
KR20230032317A (ko) 2021-08-30 2023-03-07 한국전자통신연구원 비디오 의미 구간 검출 방법 및 시스템

Also Published As

Publication number Publication date
EP3146443A1 (en) 2017-03-29
EP3680791A1 (en) 2020-07-15
EP3680791B1 (en) 2024-05-08
KR101903720B1 (ko) 2018-10-04
CN106464986A (zh) 2017-02-22
US20150339382A1 (en) 2015-11-26
WO2015179431A1 (en) 2015-11-26
US9535990B2 (en) 2017-01-03
CN106464986B (zh) 2020-03-06

Similar Documents

Publication Publication Date Title
KR101903720B1 (ko) 검색 쿼리들에 기초하여 비디오 프로그램 추출들을 생성하기 위한 시스템들 및 방법들
US11743522B2 (en) Systems and methods that match search queries to television subtitles
US11924507B2 (en) Adapting search query processing according to locally detected video content consumption
US20220020058A1 (en) Synchronizing advertisements
US10405039B2 (en) System and methods for analyzing content engagement in conjunction with social media
US9396258B2 (en) Recommending video programs
US9621932B2 (en) Enhancing live broadcast viewing through display of filtered internet information streams
US9553922B1 (en) Media event based social networking interfaces
US20240031269A1 (en) Fusing online media monitoring data with secondary online data feeds to generate ratings data for online media exposure
US20070214480A1 (en) Method and apparatus for conducting media content search and management by integrating EPG and internet search systems

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant