System for filtering displayed content at operating system (OS) level

By implementing a filtering model at the operating system level of the user device, the problem of application-independent content filtering in existing technologies is solved, achieving unified filtering and resource optimization across applications and protecting user privacy.

CN115315687BActive Publication Date: 2026-01-02GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080098486.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-03-13
Publication Date
2026-01-02
Estimated Expiration
2040-03-13

AI Technical Summary

Technical Problem

Existing technologies struggle to filter unsuitable content independently of the application at the operating system (OS) level, leading to filter leaks and resource waste, and user preference information is easily leaked.

Method used

A filtering model is implemented at the operating system level of the user's device. It uses machine learning models to analyze and filter inappropriate content, including images, videos, and audio, independently of application processing, and allows users to choose the filtering method.

Benefits of technology

It enables unified filtering across multiple applications, reduces filtering leaks and resource waste, protects user preference information, and reduces network traffic and processing load.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115315687B_ABST
    Figure CN115315687B_ABST
Patent Text Reader

Abstract

Methods, systems, and apparatus, for filtering content at an operating system level. In one aspect, a method includes accessing, at a user device, data comprising content items to be presented by an application executing on the user device; prior to presentation of the content by the application: for each content item, determining, at the user device and by a filtering model, whether the content item is to be presented by the application or filtered by the filtering model, for each content item determined to be presented by the application, allowing the application to present the content item, and for each content item determined to be filtered, preventing, by the filtering model, presentation of the content item by the application through a system-level filtering operation performed at an operating system level and separate from an application level at which the application is executing.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] Content filtering is performed for various reasons. For example, content can be filtered to prevent children from being exposed to content that is not suitable for viewing at a young age. Content can also be filtered to prevent "spoilers," i.e., revealing key plot events of a television show or movie. BACKGROUND

[0002] In the context of the Internet, filtering is often done on the service side and is often application specific. For example, a search engine can enable a "safe search" setting that prevents the provision of explicit search results to a user device running a browser. However, the "safe search" setting only applies to searches performed by the search engine, and does not prevent exposure to content from other websites if the user navigates to other websites.

[0003] As another example, an operating system can restrict the installation of certain applications, e.g., applications rated "PG-14" in an application store. However, if the application is not rated, the application can still be installed.

[0004] Most existing content filtering solutions apply to specific situations, but do not address the problem of filtering content independent of the website (in the case of a browser) or other environment (in the case of applications other than browsers). Furthermore, restricting the installation of specific applications does not achieve many filtering goals, as many generic applications (e.g., instant messaging applications, email applications) can still be installed and expose the user to undesirable content. SUMMARY

[0005] The present specification relates to a system and method of analyzing and filtering undesirable content on a user device before digital content is presented to a user on the user device. More specifically, the system and method described below analyze content to be presented on a user device at the user device and filter content of undesirable items before the content is presented to a user of the user device.

[0006] In embodiments, the filtering system operates at the operating system (OS) level on the user device, as opposed to operating at the application level for specific applications. As used in the present specification, operating at the OS level means operating with higher privileges of access than the following operations at the application level and / or the following operations performed by the operating system: where the operations handle content to be displayed. For example, data to be rendered on a screen display can be handled to identify content to be filtered. The entire content of the screen can be handled, or only certain content, e.g., only images, can be handled.

[0007] As yet another example, OS-level operations can access data being processed by multiple different applications, and can be operations that affect the presentation of data by multiple different applications. In contrast, application-level operations are operations that can only access data being processed by the application to which the operation belongs, and cannot affect other applications. Thus, by operating at the OS level, the filtering system is agnostic to the applications whose content the filtering system can filter.

[0008] One example method includes the following operations. The method accesses, at a user device, data including a plurality of content items to be presented by an application executing on the user device. The content items can be words, phrases, images, videos, and audio. Generally, the content items are being processed by the application for presentation by the application in a UI for text, images, and videos, and through an audio output system for audio.

[0009] Prior to presentation of the content by the application, the filtering model determines whether a content item is to be presented by the application or filtered by the filtering model. The nature of the determination depends on the content type and the filtering model. For example, for a text filter model, the text can be compared to a list of banned words and phrases; in contrast, if the filtering model considers semantic interpretation of sentences and paragraphs, then the entire sentence and paragraph can be filtered based on the determined semantic interpretation. Any appropriate filtering model can be used, depending on the robustness and sophistication of filtering desired, and depending on the type of content being filtered.

[0010] For each content item determined to be presented by the application, the filtering model allows the application to present the content item. In contrast, for each content item determined to be filtered, the filtering model filters the content item. More specifically, the filtering model prevents presentation of the content item by the application through system-level filtering operations that are executed at the operating system level and separate from the application level at which the application is executing. For example, this can be accomplished by presenting an opaque obscuration over filtered text, images, and videos, or by muting or beeping filtered audio.

[0011] In some implementations, the filtering elements that filter the content items are selectable, and a user can select them to allow the content items to be presented. The filtering model can take this into account and adjust its parameters for future filtering operations. For example, the opaque obscuring can be selectable and, once selected, removed to allow the filtered content to be presented. Similarly, when audio is suppressed, the filtering model can have the device declare that the audio is suppressed and declare what command to use if the user desires to hear the audio, e.g., "The song you are about to hear contains uncensored lyrics, and I will beep out the uncensored words so that you cannot hear them. However, if you do not find this type of content objectionable, just say 'let me hear it,' and I will not beep out the uncensored words."

[0012] In general, one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of: accessing, at a user device, data including a plurality of content items to be presented by an application executing on the user device; before the content is presented by the application: for each content item, determining, at the user device and by a filtering model, whether the content item is to be presented by the application or filtered by the filtering model, for each content item determined to be presented by the application, allowing the application to present the content item, and for each content item determined to be filtered, preventing presentation of the content item by the application by a system-level filtering operation performed at an operating system level and separate from an application level at which the application is executing. Other embodiments of this aspect include corresponding systems, apparatus, and computer programs, configured to perform the actions of the methods and encoded on computer storage devices.

[0013] Particular embodiments of the subject matter described in this specification can be implemented so as to realize one or more of the following advantages. By filtering at the OS level, the filtering processes described below can filter certain content across multiple applications and independent of each application. This reduces the likelihood of filtering leakage, which can otherwise occur when filtering is performed in a normative application. For example, filtering pornography within a search engine can prevent the pornography from being provided as a search result. However, if the user navigates to a site that hosts that content, or if the user receives the content via email or instant message, the same pornography can be provided. In contrast, operating system level filtering allows a user device to implement filtering processes for certain content across all applications that provide content for the user to consume.

[0014] The analysis and filtering of content is done independent of the application that presents the content. This addresses issues related to complexity and resources associated with separate filtering processes for each application. When filtering is done only at the application level, separate processes must be implemented in each application, and thus each application can consume additional processing resources (e.g., image, video, text, and audio processing) when determining whether to filter content. Implementing separate processes in each application can not be possible; for example, a device can not have control over the processing running on the application, and thus providing effective filtering presents a challenge.

[0015] Further, the filtering described below can be done solely on the user device, and thus the user's preferences need not be handled at the server level. This reduces the amount of network traffic required when a user changes his or her filtering preferences. For example, when a user desires to change his or her filtering preferences for a particular search result set, the search results need not be resent. Further, filtering done on the user device protects the user's information regarding filtering preferences from being revealed to third parties and used for other purposes (e.g., advertising) than filtering.

[0016] Additionally, filtering on the device reduces the resources required for content filtering when done on the server side, as content filtering such as video filtering is done only on the user's device that desires such filtering.

[0017] Another advantage is the ability to filter content received at the device in encrypted form. Because the content is decrypted by the application (e.g., chat application), the content is "in the clear" before presentation. Thus, circumventing filtering by encryption is defeated at the device. Further, the filtering process need not include encryption / decryption processing, thus simplifying content analysis and filtering.

[0018] The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims. BRIEF DESCRIPTION OF DRAWINGS

[0019] Figure 1 is a block diagram of an example user device showing the abstraction levels of the operating system.

[0020] Figure 2 is a block diagram of an example text application executing at the application level of the operating system.

[0021] Figure 3 is a flow diagram of an example process of filtering content generated for presentation to a user. DETAILED DESCRIPTION

[0022] User devices such as cellular phones, smart phones, PDAs, tablet computers have become very common and are a necessary part of our daily lives. Now, the vast majority of the population has access to one or more of these devices to access digital content through them. These devices are generally capable of performing a variety of tasks such as browsing the Internet, messaging, sending emails, downloading content, and executing different applications, among various other functions.

[0023] Most of the tasks performed by these devices expose the user to some kind of digital content. For example, a chat application allows a user to send digital content such as text messages, images, audio, and video to another user. A browser application allows access to digital content through Internet searches or digital advertisements. Other examples of such applications can include streaming video applications, online games, and cloud-based applications.

[0024] In all of the above cases where digital content is accessed by an application and presented to the user by the user device, there is always a risk that the user can be exposed to content that is not appropriate for the particular user (e.g., adult content for a child), or content that the user can not want to see (e.g., a spoiler), or content that can be filtered out from the presentation. The systems and methods described below allow the user device to filter such content by filtering simultaneously across multiple applications at the OS level.

[0025] These features and additional features will be described in more detail below.

[0026] Figure 1 is a block diagram of an example user device 100 showing the functionality of the user device 100 when presenting digital content to a user. The user device 100 has an application level 120 in which applications execute within the operating system of the user device 100. The operating system operates at an OS level 140, for example, a kernel mode or system level operations such as text handlers, video handlers, or audio handlers, while the applications operate at the application level 120 outside of the OS level 140, for example, a user mode with less than root mode privileges, or operations that occur within the application environment. Generally, an application operating at the application level 120 will only have access to data specific to that application, while a handler operating at the OS level 140 will have access to data of many applications operating at the application level 120.

[0027] As Figure 1As shown, the chat application 122, the browser application 124, the music application 126, and the video application 128 operate at the application level 120. The user device also includes an I / O system 160 that includes a display system 170 that renders application data for the applications. The I / O system 160 also includes a speaker system 180 that generates audio in dependence on the applications executing at the application level 120.

[0028] The applications executing at the application level 120 generate digital content items for presentation to the user on the user device 100. The content items can be each of an image, a set of video frames, text, and a continuous portion of audio (e.g., a one second increment of audio). When the user interacts with a particular application through the user device, the digital content of the particular application is presented directly to the user. For example, if the user is interacting with the browser application 124, the browser application 124 is rendered directly on the display system 170 within the I / O system 160 of the user device 100 along with the digital content of the browser application 124. Similarly, when the user interacts with the music application 126, the music is played directly using the speaker system 180 within the I / O system 160.

[0029] The filtering model 150 is implemented at the OS level 140. The filtering model 150 can receive as input digital content generated by the applications executing at the application level 120; process the input; and identify content to filter. In identifying content to filter, the filtering model 150 prevents the user device 100 from presenting the content to the user. How the filtering model 150 identifies content to filter, and how the content is actually filtered, will be described in more detail below.

[0030] The filtering model 150 operates on the user device 100 at the operating system (OS) level (or simply “system level”), as opposed to operating at the application level for a particular application. As used in this specification, operating at the OS level is operating with higher permissions of access than operating at the application level. For example, operating at the OS level can access data processed by multiple different applications, and can be an operation that affects the presentation of data by multiple different applications.

[0031] The filtering model 150 can be implemented as one or more machine learning models that include a plurality of parameters that have been trained to identify certain content, such as pornography, profanity, etc. For example, in some implementations, the filtering model 150 can be a collection of various models that are capable of interpreting different types of content, such as a skin detection model for videos, various object detection models, and word detection models. The filtering model 150 can process images, videos, text, and even audio to detect content to filter.

[0032] In some implementations, the filtering model 150 determines whether to filter content based on the user preferences 152. The preferences can specify what types of content, if any, are to be filtered. For example, the filtering model 150 can be able to detect multiple types of content - pornography, profanity, gore, etc. After being set by the user, the user preferences 152 can specify which types of content, if any, are to be filtered. Assuming the user desires to filter only pornography, then content identified as profanity or gore would not be filtered.

[0033] In some implementations and depending on the user preferences 152, upon determining that particular digital content is to be filtered, the particular digital content would not be presented to the user at all. In other implementations, the particular digital content can be processed and a modified, filtered version of the image presented to the user. For example, the particular digital content can be blurred, pixelated, mutated, or otherwise attenuated before being presented to the user.

[0034] These different operations are filtering operations performed by the filtering model 150 at the OS level. For example, the filtering model 150 can access a library of filtering operations, such as blurring for images and videos, muting for audio, and deletion or blurring for text. Thus, images and videos to be filtered are blurred, audio to be filtered is muted, and text to be filtered is deleted or blurred.

[0035] In some implementations, when filtered content is presented, the user can select the filtered content to reveal the content. For example, in the case of images or text, the user can select the blurred image or text, and the blurred content will be revealed. Alternatively, a particular user can be assigned an administrator role, and if the user is not an administrator, then the ability to reveal filtered content would not be available to the user. In some implementations, the filtering model 150 can update itself based on the user's action of viewing the digital content that was originally filtered.

[0036] Figure 2 is a block diagram illustrating an example chat application in which a sender is sending digital content from a user device 210 to a recipient at a user device 220. The two user devices 210 and 220 are connected by a network 230, enabling digital content to be transmitted from one device to the other. The network 230 includes a local area network (LAN), a wide area network (WAN), the Internet, or a combination thereof. In some implementations, the chat application and the network 230 can enable more than two user devices to communicate over the network, where multiple user devices can simultaneously send and receive digital content.

[0037] The sender uses the user device 210 to send digital content to the recipient on the user device 220. The sender first transmits the image 252 of the tree, which is transmitted over the network 230. In some implementations, the chat application can encrypt the image 252 so that the chat application on the recipient’s user device can decrypt it. When the chat application executing on the recipient’s user device 220 receives the encrypted image 252, the chat application decrypts the encrypted image 252 to recover the image 262. The chat application on the device 220 provides the image 262 to the filtering model 150. When the filtering model 150 determines that the image 262 will not be filtered, the image 262 is rendered on the display of the user device 220 to present to the recipient. More generally, the above example illustrates that any data received in encrypted form and then decrypted by the application can be inspected for filtering after decryption and before rendering.

[0038] The sender again uses the user device 210 to send the image 254 to the recipient over the network 230. After decryption, the chat application on the device 220 provides the image 264 to the filtering model 150. When the filtering model 150 determines that the image 264 will be filtered (e.g., the image depicts content that the user of the user device 220 has specified in the user preferences 152 to be filtered), the image 264 is rendered on the display along with an opaque layer 266 over the image so that the image is obscured from presentation to the recipient. As described above, in some implementations, the filtered content can be revealed. For example, in some implementations, the opaque layer 266 is selectable, and the user can select the opaque layer to see the image 264.

[0039] With respect to textual data, the filtering model 150 can process the textual data and detect text in the image, such as through optical character recognition. The filtering model 150 can include a semantic interpretation model to identify and extract meaningful textual data. Once the textual data is received, the semantic interpretation model will utilize a semantic detection algorithm to extract the meaning associated with the text. The filtering model 150 can then determine whether the semantic interpretation of the content item is a prohibited semantic interpretation, e.g., listed in a list of prohibited semantic interpretations. If so, the text can be filtered.

[0040] In some implementations, the filtering model 150 can further include a sentiment analysis model to determine the sentiment associated with the textual data. In some implementations, these models are based on machine learning algorithms that include a number of parameters that are tuned to learn the rules of natural language by training on a set of examples, such as a large corpus or collection of sentences, and perform statistical inference. After performing text analysis and extracting the meaning of the textual data, the filtering system determines whether to filter the textual data based on the user preferences. For example, based on the user preferences, textual content related to sex or a regulated substance can be filtered.

[0041] In some implementations, the model 150 can be trained to identify portions of text to filter. These portions can be identified by a content title or topic identifier. For example, an article can include a title "Spoiler Alert" indicating that the text after the title includes spoilers for a movie. For example, the model 150 can be trained to filter all text in an article after the "Spoiler Alert" title. Other text filters can include filtering based on words that match a list of forbidden words.

[0042] With respect to audio, the filtering model 150 can process audio to detect speech and other types of content (e.g., different styles of music, such as classical, country, jazz, metal, etc.). For example, a music application 126 executing within the application level 120 can use the speaker system 180 to play an audio song. A user can desire to filter out explicit lyrics. In such an implementation, the filtering model 150 will process the audio data to detect explicit words. Upon determining that a particular word in the song is explicit, and based on the user preference, the filtering system 150 can filter out the word, such as by muting the audio or adding a censor beep effect in place of the word when the music is played on the user device 100.

[0043] In other implementations, descriptors describing content can be employed to tag content, and the model 150 can determine content based on the tags.

[0044] Figure 3 is a flowchart of an example process 300 of filtering digital content generated by an application executing at an application level. The process 300 is implemented in a computer system, such as the user device 100 implementing the model 150.

[0045] Process 300 accesses digital content generated by an application executing at the application level for presentation to a user (310). Content filtering system 150 receives the digital content generated by the application as input. For example, chat application 122 executing in application level 120 receives text that needs to be presented to a user of user device. Chat application 122 generates digital content including an application-specific user interface with the received text for presentation to the user. In some implementations, instead of providing the digital content to I / O system 160 of user device 100, chat application 122 (and other applications at the application level) provides the digital content as input to filtering model 150. In other implementations, filtering model 150 can instead receive the digital content from the system level I / O process. For example, when model 150 is installed on a user device, the OS can provide the digital content to the model in a step before video rendering or audio output. In this way, model 150 captures content that has already been processed by the application for presentation by the application. Model 150 can then process the digital content and then, based on user preferences and detected content types, cause the user device to perform one or more filtering operations.

[0046] After filtering model 150 receives the digital content as input, process 300 determines whether to present or filter the digital content (320). If process 300 determines that the content is to be presented, the process presents the digital content to the user (330). For example, upon determining that digital content to be presented in the user interface of application 120 is not to be filtered, the digital content is provided as input to I / O system 160. I / O system 160 then renders the digital content on display system 170 for presentation to the user.

[0047] If the digital content is determined to be filtered, process 300 presents a selectable opaque layer over the digital content or portion of the digital content determined to be inappropriate (340). For example, after user device 210 receives image 254, and upon determining that image 254 is to be filtered, filtering system 150 presents a selectable opaque layer 266 over the image for presentation, obscuring the inappropriate content. Other filtering methods include not presenting the content at all, or blurring, pixelating, redacting, or otherwise attenuating it before presenting it to the user.

[0048] When an opaque layer is presented over filtered content, a user can desire to see the filtered content. Upon selection of the opaque layer, the user can be provided with an option to view the unaltered digital content. Based on the user’s action, the filtering system can update the user preferences (350). In some implementations, the user preferences can be independent of user feedback, where the user can specify filtering parameters that will not change based on user actions.

[0049] In situations in which the systems discussed here collect personal information about users, or can make use of personal information, the users can be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and / or how to receive content from a content server that can be more relevant to the user. In addition, certain data can be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user's identity can be treated so that no personally identifiable information can be determined for the user, or a user's geographic location can be generalized where location information is obtained (such as to a city, postal code, or state level), so that a particular location of a user cannot be determined. Thus, the user can have control over how information is collected about the user and used by a content server.

[0050] Embodiments of the subject matter and operations described in this specification can be implemented in a digital electronic circuit, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a computer storage medium for execution by, or to control the operation of, data processing apparatus.

[0051] The computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal. The computer storage medium can also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).

[0052] The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.

[0053] The term“data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing. The apparatus can include special purpose logic, for example, an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.

[0054] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and

[0055] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic

[0056] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0057] To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device used by the user; for example, by sending web pages to a web browser on a user’s user device in response to requests received from the web browser.

[0058] Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a user computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network ("LAN") and a wide area network ("WAN"), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0059] The computing system can include users and servers. A user and server are generally remote from each other and typically interact through a communication network. The relationship of user and server arises by virtue of computer programs running on the respective computers and having a user-server relationship to each other. In some embodiments, a server transmits data (e.g., an HTML page) to a user device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the user device). Data generated at the user device (e.g., a result of the user interaction) can be received from the user device at the server.

[0060] While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any features or of any claims hereof, but rather as descriptions of particular implementations of specific embodiments. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features can be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination and the claimed combination can be directed to a subcombination or variation of a subcombination.

[0061] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring such an order, nor that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing can be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated in a single software product or packaged into multiple software products.

[0062] Thus particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, actions recited in the claims can be performed in a different order and still achieve desirable results. Additionally, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve the desired results. In certain implementations, multitasking and parallel processing can be advantageous.

Claims

1. A computer-implemented method comprising: accessing, on a user device, data generated by applications executing on the user device at an application level, presented by an input / output system of the user device; wherein the accessing comprises capturing, from the applications, data generated by each application and to be provided by the applications to the input / output system, the data comprising content items that have been processed by the applications for presentation by the input / output system; prior to presentation of the content by the input / output system: for each content item, determining, at the user device and by a filtering model of system-level filtering operations executing at an operating system level and separate from the application level at which the applications are executing, whether the content item is to be presented by the input / output system or filtered by the filtering model, the filtering model being independent of each application; for each content item determined to be presented by the input / output system, allowing the input / output system to present the content item; and for each content item determined to be filtered, preventing presentation of the content item by the input / output system by the filtering model at the user device and by the system-level filtering operations executing at the operating system level and separate from the application level at which the applications are executing.

2. The computer-implemented method of claim 1, wherein, capturing, from the applications, the content items that have been processed by the applications for presentation by the input / output system comprises capturing content items that the applications have decrypted.

3. The computer-implemented method of claim 1, wherein, capturing, from the applications, the content items that have been processed by the applications for presentation by the input / output system comprises capturing text data to be presented by the applications in a graphical user interface, and each content item is one of a word or a phrase.

4. The computer-implemented method of claim 3, wherein, determining, at the user device and by the filtering model, whether the content item is to be presented by the input / output system or filtered by the filtering model comprises: determining whether the content item is a prohibited content item listed in a list of prohibited content items; and when the content item is determined to be a prohibited content item listed in the list of prohibited content items, determining that the content item is to be filtered by the filtering model.

5. The computer-implemented method of claim 3, wherein, determining, at the user device and by the filtering model, whether the content item is to be presented by the input / output system or filtered by the filtering model comprises: semantically interpreting content items according to a semantic interpretation model; determining whether the semantic interpretation of the content item is a prohibited semantic interpretation listed in a list of prohibited semantic interpretations; filtering content items of words and phrases determined to have a semantic interpretation determined to be a prohibited semantic interpretation listed in the list of prohibited semantic interpretations.

6. The computer-implemented method of claim 3, wherein, filtering, by the filtering model at the user device and by the system-level filtering operations executing at the operating system level and separate from the application level at which the applications are executing, presentation of the content items by the input / output system comprises: presenting an opaque layer only over the word or phrase determined to be filtered.

7. The computer-implemented method of claim 6, wherein: the opaque layer is selectable; and the opaque layer is selectable; and in response to selection of the opaque layer, the filtering model removes the opaque layer and presents the word or phrase determined to be filtered.

8. The computer-implemented method of claim 1, wherein, capturing, from the application, the content item that has been processed by the application for presentation by the input / output system includes capturing image or video data to be presented by the application in a graphical user interface.

9. The computer-implemented method of claim 8, wherein, determining, at the user device and by the filtering model, whether the content item is presented by the input / output system or filtered by the filtering model includes: determining a content item tag that describes a subject matter of the content of the image or video; based on the subject matter of the content item, determining whether the content item is a prohibited content item listed in a list of prohibited content items; when the content item is determined to be a prohibited content item listed in the list of prohibited content items, determining that the content item is to be filtered by the filtering model.

10. The computer-implemented method of claim 8, wherein, determining, at the user device and by the filtering model, whether the content item is presented by the input / output system or filtered by the filtering model includes: performing image processing on the image or video to determine a subject matter of the content of the image or video; based on the subject matter of the content item, determining whether the content item is a prohibited content item listed in a list of prohibited content items; when the content item is determined to be a prohibited content item listed in the list of prohibited content items, determining that the content item is to be filtered by the filtering model.

11. The computer-implemented method of claim 8, wherein, filtering, by the filtering model at the user device and by the system-level filtering operation performed at the operating system level and separate from an application level at which the application is executed, presentation of the content item by the input / output system includes: presenting an opaque layer over the image or video determined to be filtered.

12. The computer-implemented method of claim 11, wherein: the opaque layer is selectable; and in response to selection of the opaque layer, the filtering model removes the opaque layer and presents the image or video determined to be filtered.

13. The computer-implemented method of claim 1, wherein, capturing, from the application, the content item that has been processed by the application for presentation by the input / output system includes capturing audio data to be presented by the application through audio output.

14. The method of claim 1, wherein, the filtering model is a predefined model, and wherein: filtering, by the filtering model at the user device and by the system-level filtering operation performed at the operating system level and separate from an application level at which the application is executed, presentation of the content item by the input / output system includes: presenting a selectable opaque layer over content items determined to be filtered; in response to selection of the opaque layer: the filtering model removes the opaque layer and presents the content determined to be filtered; and updating the filtering model based on the selection.

15. A system for filtering displayed content, comprising: a user device including a data processing apparatus; and A non-transitory computer readable medium storing instructions executable by the data processing apparatus of a user device, and upon such execution causing the data processing apparatus to perform operations comprising: accessing, on a user device, data generated by applications executing on the user device at an application level, presented by an input / output system of the user device; wherein the accessing comprises capturing, from the applications, data generated by each application and to be provided by the applications to the input / output system, the data comprising content items that have been processed by the applications for presentation by the input / output system; prior to presentation of the content by the input / output system: for each content item, determining, at the user device and by a filtering model of system level filtering operations executing at an operating system level and separate from the application level at which the applications are executing, whether the content item is to be presented by the input / output system or filtered by the filtering model, the filtering model being independent of each application; for each content item determined to be presented by the input / output system, allowing the input / output system to present the content item; and for each content item determined to be filtered, preventing presentation of the content item by the input / output system by the filtering model at the user device and by the system level filtering operations executing at the operating system level and separate from the application level at which the applications are executing.

16. A non-transitory computer readable medium storing instructions executable by the data processing apparatus of a user device, and upon such execution causing the data processing apparatus to perform operations comprising: accessing, on a user device, data generated by applications executing on the user device at an application level, presented by an input / output system of the user device; wherein the accessing comprises capturing, from the applications, data generated by each application and to be provided by the applications to the input / output system, the data comprising content items that have been processed by the applications for presentation by the input / output system; prior to presentation of the content by the input / output system: for each content item, determining, at the user device and by a filtering model of system level filtering operations executing at an operating system level and separate from the application level at which the applications are executing, whether the content item is to be presented by the input / output system or filtered by the filtering model, the filtering model being independent of each application; for each content item determined to be presented by the input / output system, allowing the input / output system to present the content item; and for each content item determined to be filtered, preventing presentation of the content item by the input / output system by the filtering model at the user device and by the system level filtering operations executing at the operating system level and separate from the application level at which the applications are executing.

Citation Information

Patent Citations

  • Data content filter

    CN110785756A

  • Multimodal and real-time method for filtering sensitive media

    US20170289624A1