Providing tagging suggestions for images in social media platform
By receiving images in social media platforms, obtaining timestamps and geographic locations, and identifying members within predefined distances, and providing tagging suggestions, the problem of high computing resources of facial recognition algorithms in the prior art is solved and friends who cannot identify indirect contacts is achieved, and more efficient and accurate tagging suggestions are achieved.
Patent Information
- Application Number
- CN202411269386.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-09-15
- Filing Date
- 2024-09-11
- Publication Date
- 2025-03-18
AI Technical Summary
When providing image tagging suggestions for users, existing social media platforms rely on complex facial recognition comparison algorithms, resulting in high computing resources and inability to identify friends whose indirect contacts.
Provide a list of members as tag suggestions by receiving images, obtaining the image's timestamps and geographic locations, and identifying social media platform members within a predefined distance.
Eliminates the dependence on complex facial recognition algorithms, reduces the consumption of computing resources, and increases the number and accuracy of tag suggestions.
Smart Images

Figure CN119648804A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates generally to social media platforms, and more particularly, to providing tagging suggestions for images on social media platforms. Background Art
[0002] Social media networks are often used to share images and photos. Typically, after a user uploads an image to a social media platform, the user is presented with the option to tag the image. Tagging an image or photo involves linking another individual's name and associated social media profile to the image. A tag is essentially a clickable name that appears in the caption of a photo. When a user rolls their cursor over a photo in which users are tagged, the user will see the names of those users appear on the photo (usually on their faces).
[0003] Typically, when a user uploads an image to a social media platform, the social media platform identifies the face of the individual shown in the image and performs a facial recognition comparison algorithm between the user's direct contacts or friends and the face of the individual shown in the image. Based on the results of the facial recognition comparison algorithm, the social media platform then provides tagging recommendations to the user. Summary of the invention
[0004] Embodiments of the present invention relate to a computer-implemented method for providing tagging suggestions for an image in a social media platform. The computer-implemented method includes receiving an image from a first user of the social media platform, obtaining a timestamp corresponding to the time when the image was captured, and obtaining a geographic location corresponding to the location where the image was captured. The method also includes identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location when the image was captured, and providing a list of the one or more members to the first user as suggestions for tagging the image.
[0005] Embodiments of the present invention relate to a computer program product for providing tagging suggestions for images in a social media platform. The computer program product includes one or more computer-readable storage media having computer-readable program code stored together on the one or more computer-readable storage media. The computer-readable program code is executed by a processor of a computer system to cause the computer system to perform operations. The operations include receiving an image from a first user of a social media platform, obtaining a timestamp corresponding to the time when the image was captured, and obtaining a geographic location corresponding to the location where the image was captured. The operations also include identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location when the image was captured, and providing a list of the one or more members to the first user as suggestions for tagging the image.
[0006] Embodiments of the present invention relate to a computing system comprising a processor, a memory coupled to the processor, and one or more computer-readable storage media coupled to the processor. The one or more computer-readable storage media collectively contain instructions executed by the processor via the memory to cause the processor to perform operations. The operations include receiving an image from a first user of a social media platform, obtaining a timestamp corresponding to the time when the image was captured, and obtaining a geographic location corresponding to the location where the image was captured. The operations also include identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location when the image was captured, and providing a list of the one or more members to the first user as suggestions for tagging the image.
[0007] Additional technical features and benefits are achieved through the technology of the present invention. Embodiments and aspects of the present invention are described in detail herein and are considered part of the claimed subject matter. For a better understanding, reference is made to the detailed description and the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The details of the exclusive rights described herein are particularly pointed out and distinctly claimed in the claims appended hereto. The foregoing and other features and advantages of the embodiments of the present invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings, in which:
[0009] Figure 1 is a schematic diagram of a computing environment according to one or more embodiments of the present invention;
[0010] Figure 2 is a block diagram illustrating a system for providing tag suggestions for images in a social media platform according to one or more embodiments of the present invention;
[0011] Figure 3 is a schematic diagram illustrating a membership network of a social media platform according to one or more embodiments of the present invention;
[0012] Figure 4 is a flow chart illustrating a computer-implemented method for providing tag suggestions for images in a social media platform according to one or more embodiments of the present invention; and
[0013] Figure 5 is a flow chart illustrating a computer-implemented method for ranking a tag suggestion list for an image in a social media platform according to one or more embodiments of the invention.
[0014] The figures described here are illustrative. Without departing from the spirit of the present invention, many changes may be made to the figures or operations described therein. For example, actions may be performed in a different order, or actions may be added, deleted, or modified. In addition, the term "coupled" and its variations describe having a communication path between two elements, and do not imply a direct connection between elements without an intermediate element / connection between them. All of these changes are considered part of the specification. DETAILED DESCRIPTION
[0015] As described above, when a user uploads an image to a social media platform, the social media platform utilizes a facial recognition comparison algorithm to provide tag recommendations to the user. Tag recommendations are identified by comparing facial images of the user's direct contacts or friends with the face of the individual shown in the uploaded image. Typically, such facial recognition comparison algorithms are computationally complex and require considerable computing power to execute. The resources required to execute the facial recognition comparison algorithm increase with the number of the user's direct contacts or friends. In addition, indirect contacts or friends of friends shown in the uploaded image cannot be identified using such facial recognition comparison algorithms.
[0016] Embodiments of the present invention relate to a computer-implemented method for providing tagging suggestions for an image in a social media platform. The computer-implemented method includes receiving an image from a first user of the social media platform, obtaining a timestamp corresponding to the time when the image was captured, and obtaining a geographic location corresponding to the location where the image was captured. The method also includes identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location when the image was captured, and providing a list of the one or more members to the first user as suggestions for tagging the image. One technical benefit of utilizing timestamp and location data to generate tagging suggestions for an image is that it eliminates the need for the user to use computationally complex facial recognition algorithms.
[0017] Additionally or alternatively, in an embodiment of the present invention, a member of the social media platform is determined to be connected to the first user based on a pre-existing direct relationship between the first user and the member. As a result, the speed of identifying tag suggestions can be increased by reducing the number of records that need to be compared with the timestamp and geographic location of the image.
[0018] Additionally or alternatively, in an embodiment of the present invention, based on a pre-existing indirect relationship between the first user and a member of the social media platform, it is determined that the member is connected to the first user. As a result, the number of tag suggestions can be increased by considering indirectly related members of the social media platform.
[0019] Additionally or alternatively, in an embodiment of the invention, the list is an ordered list of one or more members, and wherein the order of the ordered list is determined based on the distance between each of the one or more members and the geographic location at the time the image was captured. As a result, tag suggestions can be presented such that the most likely candidates are presented to the user first.
[0020] Additionally or alternatively, in an embodiment of the present invention, the order is also determined based on the degree of separation of the first user from each of the one or more members.As a result, tag suggestions may be presented such that the most likely candidates are presented to the user first.
[0021] Additionally or alternatively, in an embodiment of the present invention, at least one of the timestamp and the geographic location is obtained from metadata of the image. As a result, the communication between the social media platform and the user device can be reduced, which will result in faster completion of the generation of the tag suggestion list.
[0022] Additionally or alternatively, in an embodiment of the present invention, at least one of the timestamp and the geographic location is obtained by querying a device used by the first user to send the image to the social media platform. As a result, the reliability of the timestamp data and the location data is increased.
[0023] Additionally or alternatively, in an embodiment of the present invention, the social media platform is configured to periodically obtain the location of electronic devices associated with each of the members of the social media platform. As a result, the social media platform can create and maintain a membership location history for performing generation of tagging suggestions.
[0024] Additionally or alternatively, in an embodiment of the present invention, the social media platform is configured to delete the location of the electronic device once a duration has passed since the location of the electronic device associated with each member of the social media platform was obtained. As a result, the size of the member location history is prevented from becoming too large.
[0025] Various aspects of the present disclosure are described by narrative text, flow charts, block diagrams of computer systems, and / or block diagrams of machine logic included in computer program product (CPP) embodiments. With respect to any flow chart, depending on the technology involved, the operations may be performed in an order different from the order shown in a given flow chart. For example, again depending on the technology involved, two operations shown in consecutive flow chart blocks may be performed in reverse order, as a single integrated step, simultaneously, or in a manner that at least partially overlaps in time.
[0026] Computer program product embodiments ("CPP embodiments" or "CPP") are terms used in this disclosure to describe any collection of one or more storage media (also referred to as "media") collectively included in a collection of one or more storage devices that collectively include machine-readable code corresponding to instructions and / or data for performing the computer operations specified in a given CPP claim. A "storage device" is any tangible device that can hold and store instructions for use by a computer processor. Without limitation, a computer-readable storage medium may be an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these media include: magnetic disks, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROM or flash memory), static random access memories (SRAM), compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, mechanical encoding devices (such as punch cards or pits / land formed in a major surface of a disk), or any suitable combination of the foregoing. Computer-readable storage media, as the term is used in this disclosure, should not be construed as storing in the form of transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides, light pulses through fiber optic cables, electrical signals transmitted through wires, and / or other transmission media. As will be appreciated by those skilled in the art, data is typically moved at certain occasional points in time during normal operation of the storage device, such as during access, defragmentation, or garbage collection, but this does not make the storage device transitory because the data is not transitory while it is stored.
[0027] The computing environment 100 includes an example of an environment for executing at least some of the computer codes involved in performing the methods of the present invention, such as providing tagging suggestions for images in a social media platform (block 150). In addition to block 150, the computing environment 100 includes, for example, a computer 101, a wide area network (WAN) 102, an end-user device (EUD) 103, a remote server 104, a public cloud 105, and a private cloud 106. In this embodiment, the computer 101 includes a processor set 110 (including processing circuits 120 and cache 121), a communication structure 111, a volatile memory 112, a permanent storage device 113 (including an operating system 122 and block 150, as described above), a peripheral device set 114 (including a user interface (UI), a device set 123, a storage device 124, and an Internet of Things (IoT) sensor set 135), and a network module 115. The remote server 104 includes a remote database 132. The public cloud 105 includes a gateway 130 , a cloud coordination module 131 , a host physical machine set 142 , a virtual machine set 143 , and a container set 144 .
[0028] Computer 101 may take the form of a desktop computer, laptop computer, tablet computer, smart phone, smart watch or other wearable computer, mainframe computer, quantum computer, or any other form of computer or mobile device now known or developed in the future that is capable of running programs, accessing a network, or querying a database such as remote database 132. As is well known in the art of computer technology, and depending on the technology, the performance of computer-implemented methods may be distributed among multiple computers and / or among multiple locations. On the other hand, in this presentation of computing environment 100, the detailed discussion focuses on a single computer, particularly computer 101, to keep the presentation as simple as possible. Computer 101 may be located in the cloud, even though it is not yet fully understood. Figure 1 1 is not shown in the cloud, on the other hand, computer 101 need not be in the cloud except to any extent that can be positively indicated.
[0029] Processor set 110 includes one or more computer processors of any type now known or developed in the future. Processing circuit 120 may be distributed over multiple packages, such as multiple cooperating integrated circuit chips. Processing circuit 120 may implement multiple processor threads and / or multiple processor cores. Cache 121 is a memory located in the processor chip package and is typically used for data or code that should be quickly accessed by threads or cores running on processor set 110. Cache memory is typically organized into multiple levels based on relative proximity to the processing circuit. Alternatively, some or all of the caches of the processor set may be located "off chip". In some computing environments, processor set 110 may be designed to work with qubits and perform quantum computing.
[0030] Computer readable program instructions are typically loaded onto computer 101 to cause processor set 110 of computer 101 to perform a series of operating steps to implement a computer-implemented method, such that the instructions so executed will instantiate the method specified in the flow chart and / or the narrative description of the computer-implemented method included in this document (collectively referred to as the "inventive method"). These computer readable program instructions are stored in various types of computer readable storage media, such as cache 121 and other storage media discussed below. The program instructions and related data are accessed by processor set 110 to control and direct the execution of the inventive method. In computing environment 100, at least some of the instructions for performing the inventive method may be stored in permanent storage device 113 in block 150.
[0031] The communication fabric 111 is the signal conduction paths that allow the various components of the computer 101 to communicate with each other. Typically, the fabric is made up of switches and conductive paths, such as those that make up a bus, a bridge, physical input / output ports, etc. Other types of signal communication paths may be used, such as fiber optic communication paths and / or wireless communication paths.
[0032] The volatile memory 112 is any type of volatile memory now known or developed in the future. Examples include dynamic random access memory (RAM) or static RAM. Typically, volatile memory is characterized by random access, but this is not required unless expressly stated. In the computer 101, the volatile memory 112 is located in a single package and is internal to the computer 101, but, alternatively or additionally, the volatile memory can be distributed in multiple packages and / or located externally relative to the computer 101.
[0033] Permanent storage 113 is any form of non-volatile storage for computers known now or developed in the future. The non-volatility of the memory means that the stored data is maintained regardless of whether power is supplied to the computer 101 and / or directly to the permanent storage 113. Permanent storage 113 can be a read-only memory (ROM), but usually at least a portion of the permanent memory allows the writing of data, the deletion of data, and the rewriting of data. Some common forms of permanent storage include disks and solid-state storage devices. Operating system 122 can take several forms, such as various known proprietary operating systems or operating systems of the open source portable operating system interface type using a kernel. The code included in block 150 is generally included in at least some of the computer codes involved in executing the method of the present invention.
[0034] The peripheral device set 114 includes a peripheral device set of the computer 101. The data communication connection between the peripheral devices and other components of the computer 101 can be implemented in various ways, such as a Bluetooth connection, a near field communication (NFC) connection, a connection made by a cable (such as a universal serial bus (USB) type cable), a plug-in type connection (e.g., a secure digital (SD) card), a connection made through a local area communication network, and even a connection made through a wide area network such as the Internet. In various embodiments, the UI device set 123 may include components such as display screens, speakers, microphones, wearable devices (such as goggles and smart watches), keyboards, mice, printers, touchpads, game controllers, and tactile devices. The storage device 124 is an external storage device, such as an external hard drive, or a pluggable storage device, such as an SD card. The storage device 124 can be permanent and / or volatile. In some embodiments, the storage device 124 can take the form of a quantum computing storage device for storing data in the form of quantum bits. In embodiments where the computer 101 needs to have a large amount of storage (e.g., where the computer 101 locally stores and manages a large database), the storage may be provided by a peripheral storage device designed to store very large amounts of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. The IoT sensor set 135 consists of sensors that can be used in IoT applications. For example, one sensor may be a thermometer, while another sensor may be a motion detector.
[0035] The network module 115 is a collection of computer software, hardware, and firmware that allows the computer 101 to communicate with other computers via the WAN 102. The network module 115 may include hardware such as a modem or a Wi-Fi signal transceiver, software for packetizing and / or depacketizing data transmitted over a communication network, and / or web browser software for transmitting data over the Internet. In some embodiments, the network control function and the network forwarding function of the network module 115 are executed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software defined networks (SDN)), the control function and the forwarding function of the network module 115 are executed on physically separated devices so that the control function manages several different network hardware devices. Computer-readable program instructions for executing the method of the present invention can typically be downloaded to the computer 101 from an external computer or an external storage device via a network adapter card or a network interface included in the network module 115.
[0036] WAN 102 is any wide area network (e.g., the Internet) capable of transmitting computer data over non-local distances by any technology now known or developed in the future for transmitting computer data. In some embodiments, the WAN may be replaced and / or supplemented by a local area network (LAN) designed to transmit data between devices located in a local area, such as a Wi-Fi network. A WAN and / or LAN typically includes computer hardware, such as copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and edge servers.
[0037] End-user device (EUD) 103 is any computer system used and controlled by an end-user (e.g., a customer of an enterprise operating computer 101), and may take any of the forms discussed above in connection with computer 101. EUD 103 typically receives useful and useful data from the operation of computer 101. For example, in the hypothetical case where computer 101 is designed to provide recommendations to an end-user, the recommendations would typically be transmitted from network module 115 of computer 101 to EUD 103 via WAN 102. In this manner, EUD 103 may display or otherwise present the recommendations to the end-user. In some embodiments, EUD 103 may be a client device, such as a thin client, a heavy client, a mainframe computer, a desktop computer, etc.
[0038] Remote server 104 is any computer system that provides at least some data and / or functionality to computer 101. Remote server 104 may be controlled and used by the same entity that operates computer 101. Remote server 104 represents a machine that collects and stores useful and useful data for use by other computers, such as computer 101. For example, in the hypothetical case where computer 101 is designed and programmed to provide recommendations based on historical data, then that historical data may be provided to computer 101 from remote database 132 of remote server 104.
[0039] The public cloud 105 is any computer system that can be used by multiple entities, which provides on-demand availability of computer system resources and / or other computer capabilities, particularly data storage (cloud storage) and computing capabilities, without direct active management by users. Cloud computing typically utilizes the sharing of resources to achieve consistency and economy of scale. The direct and active management of the computing resources of the public cloud 105 is performed by the computer hardware and / or software of the cloud coordination module 131. The computing resources provided by the public cloud 105 are typically implemented by virtual computing environments running on various computers that constitute the host physical machine set 142, which is the universe of physical computers in the public cloud 105 and / or available for the public cloud. Virtual computing environments (VCEs) typically take the form of virtual machines from the virtual machine set 143 and / or containers from the container set 144. It should be understood that these VCEs can be stored as images and can be transferred between various physical machine hosts as images or after instantiation of the VCE. The cloud coordination module 131 manages the transmission and storage of images, deploys new instantiations of VCEs, and manages active instantiations of VCE deployments. Gateway 130 is a collection of computer software, hardware, and firmware that allows public cloud 105 to communicate over WAN 102 .
[0040] Some further explanation of a virtualized computing environment (VCE) will now be provided. A VCE can be stored as an "image". A new active instance of the VCE can be instantiated from the image. Two common types of VCEs are virtual machines and containers. Containers are VCEs that use operating system-level virtualization. This refers to an operating system feature in which the kernel allows the existence of multiple isolated user space instances, called containers. From the perspective of the programs running in them, these isolated user space instances typically behave like actual computers. Computer programs running on a normal operating system can utilize all of the resources of that computer, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, programs running within a container can only use the contents of the container and the devices assigned to the container, a feature known as containerization.
[0041] The private cloud 106 is similar to the public cloud 105, except that the computing resources are only available to a single enterprise. Although the private cloud 106 is depicted as communicating with the WAN 102, in other embodiments, the private cloud can be completely disconnected from the Internet and can only be accessed through a local / private network. A hybrid cloud is a combination of multiple clouds of different types (e.g., private, community, or public cloud types), typically implemented by different vendors. Each of the multiple clouds remains a separate and discrete entity, but the larger hybrid cloud architecture is bound together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between the multiple constituent clouds. In this embodiment, the public cloud 105 and the private cloud 106 are both part of a larger hybrid cloud.
[0042] For example, one or more embodiments described herein may utilize machine learning techniques to perform prediction and / or classification tasks. In one or more embodiments, machine learning functionality may be implemented using an artificial neural network (ANN) that has the ability to be trained to perform a function. In machine learning and cognitive science, ANN is a family of statistical learning models inspired by the biological neural networks of animals, particularly the brain. ANN can be used to estimate or approximate systems and functions that depend on a large number of inputs. Convolutional neural networks (CNNs) are a class of deep feedforward ANNs that are particularly useful in tasks such as, but not limited to, analyzing visual images and natural language processing (NLP). Recurrent neural networks (RNNs) are another class of deep feedforward ANNs and are particularly useful in tasks such as, but not limited to, unsegmented connected handwriting recognition and speech recognition. Other types of neural networks are also known and can be used in accordance with one or more embodiments described herein.
[0043] ANNs can be implemented as so-called "neuromorphic" systems of interconnected processor elements that act as simulated "neurons" and exchange "messages" between each other in the form of electronic signals. Similar to the so-called "plasticity" of synaptic neurotransmitter connections that carry information between biological neurons, the connections in ANNs that carry electronic information between simulated neurons have digital weights corresponding to the strength or weakness of a given connection. The weights can be adjusted and tuned based on experience so that the ANN adapts to the input and is able to learn. For example, an ANN for handwriting recognition is defined by a set of input neurons that can be activated by pixels of an input image. After being weighted and transformed by a function determined by the network designer, the activation of these input neurons is then passed to other downstream neurons, which are often referred to as "hidden" neurons. The process is repeated until the output neuron is activated. The activated output neuron determines which character is input.
[0044] Containers are VCEs that use operating system-level virtualization. This refers to an operating system feature where the kernel allows the existence of multiple isolated userspace instances, called containers. These isolated userspace instances typically behave like actual computers from the perspective of the programs running in them. Computer programs running on a normal operating system can utilize all of that computer's resources, such as attached devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, programs running inside a container can only use the contents of the container and the devices assigned to the container, a feature known as containerization.
[0045] Reference now Figure 2 , a block diagram illustrating a system 200 for providing tagging suggestions for images in a social media platform according to one or more embodiments of the present invention is shown. As shown, the system 200 includes a plurality of user devices 210 communicating with a social media platform 220 via a communication network 205. The communication network 205 may include one or more private networks, public networks (such as the Internet), or a combination of public and private networks. In an exemplary embodiment, the social media platform 220 is included in a network such as Figure 1 In the illustrated computer 101 , in an exemplary embodiment, the plurality of user devices 210 may include a tablet computer, a smart phone, a personal computer, and the like.
[0046] In an exemplary embodiment, each user device 210 includes a camera 216 configured to capture images and a memory 217 configured to store the captured images. In one embodiment, the user device 210 includes a processor 219 configured to generate metadata for each image captured by the camera 216 and store the metadata in the memory 217 together with the image. In one embodiment, the metadata is attached to the image file of the captured image in the memory. The metadata may include the geographic location of the user device 210 obtained from a location sensor 214 such as a global positioning system (GPS) sensor. The metadata may also include a timestamp indicating the date and time when the camera 216 of the user device 210 captured the image. The user device 210 also includes a user interface 218, such as a touch screen display, which facilitates the operation of the user device 210.
[0047] In an exemplary embodiment, each user device 210 also includes a social media application 212 configured to communicate with a social media platform 220. Among other functions, the social media application 212 is configured to allow a user to upload an image to the social media platform 220. Once the user uploads the image to the social media platform 220 via the social media application 212, the social media application 212 is configured to obtain a list of tag suggestions from the social media platform 220 and present the list to the user via the user interface 218. Next, the social media application 212 is configured to receive a tag selection from the user via the user interface. The tag selection is received by the social media application 212 and then provided to the social media platform 220, which applies the selected tag to the image stored by the social media platform 220.
[0048] In an exemplary embodiment, social media platform 220 includes membership network 222, member location history 224, and tag suggestion engine 226. In an exemplary embodiment, membership network 222 is a structured graph including nodes representing members of social media platform 220 and edges representing connections between members of social media platform 220.
[0049] In an exemplary embodiment, the member location history 224 is a data structure configured to store geographic location data for each member of the social media platform 220. In an exemplary embodiment, the social media application 212 is configured to periodically obtain the location of the user device 210 via the location sensor 214, and provide the location of the user device 210 to the social media platform 220. The social media platform 220 is configured to store the received location data in the member location history 224. In an exemplary embodiment, the social media platform 220 is configured to automatically delete the location data in the member location history 224 after a predetermined period of time. For example, in one embodiment, the social media platform 220 is configured to store the location history of the members of the social media platform for only one week. As a result, the member location history 224 is constantly updated by adding newly received location data and deleting old location data.
[0050] In an exemplary embodiment, tag suggestion engine 226 is configured to generate a list of tag suggestions for an image uploaded by user device 210 to social media platform 220. In one embodiment, tag suggestion engine 226 is configured to obtain a timestamp corresponding to when the uploaded image was captured and a geographic location of user device 210 when the uploaded image was captured. In one embodiment, the timestamp and location data are obtained from metadata included in the uploaded image. In another embodiment, tag suggestion engine 226 is configured to communicate with social media application 212 to obtain the timestamp and location data from the user device.
[0051] The tag suggestion engine 226 is configured to generate a list of tag suggestions for images uploaded to the social media platform 220 by comparing the timestamp and location data of the uploaded image to the member location history 224 to identify members of the social media platform 220 who were within a predetermined distance from the location of the user device 210 when the uploaded image was captured. In an exemplary embodiment, the predetermined distance is a parameter set by an administrator of the social media platform 220. In one embodiment, the predetermined distance may be approximately fifty feet.
[0052] In an exemplary embodiment, once members of the social media platform 220 that were within a predetermined distance from the location of the user device 210 when the uploaded image was captured are identified, the tag suggestion engine 226 is configured to determine the degree of connectivity between the member associated with the user device and the identified member. The degree of connection represents the strength of the connection between two members of the social media platform and is obtained based on the membership network 222. In one embodiment, there is a first-level connection between two members that are directly connected to each other (i.e., the two members are friends of each other). Similarly, there is a second-level connection between two members that are not directly connected to each other but share one or more common connections (i.e., the two members are friends of friends). In an exemplary embodiment, the tag suggestion engine 226 is configured to sort the list of tag suggestions based at least in part on the degree of connectivity between the member associated with the user device 210 and the identified member within a predetermined distance.
[0053] Reference now Figure 3 , a schematic diagram illustrating a membership network 300 of a social media platform according to one or more embodiments of the present invention is shown. As shown, the membership network 300 of the social media platform includes a plurality of nodes, each node corresponding to members 302-1 to 302-10, collectively referred to herein as members 302, and each node is connected to at least one other node via an edge 304. Each edge 304 represents a direct connection between two members 302. For example, member 302-1 is directly connected to member 304-4, in other words, member 302-1 has a first-level connection with member 304-4, and similarly, member 302-1 is indirectly connected to member 304-2, in other words, member 302-1 has a second-level connection with member 304-2.
[0054] Reference now Figure 4 , a flowchart illustrating a computer-implemented method 400 for providing tagging suggestions for an image in a social media platform according to one or more embodiments of the present invention is shown. In an exemplary embodiment, the method 400 is performed by a computer such as Figure 2 A social media platform 220 such as the one shown executes.
[0055] At block 402, method 400 begins by receiving an image from a first user of a social media platform. Next, method 400 includes obtaining a timestamp corresponding to when the image was captured, as shown in block 404. At block 406, method 400 includes obtaining a geographic location corresponding to where the image was captured. In an exemplary embodiment, the image provided to the social media platform by the first user includes metadata, which includes a timestamp and a geographic location. In other embodiments, the timestamp and geographic location are obtained by the social media platform via a social media application installed on a user device associated with the first user. In some embodiments, the social media platform is configured to verify the geographic location of the image by comparing the location of the first user obtained from the member location history 224 with the timestamp corresponding to the image.
[0056] As shown in block 408, method 400 also includes identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location when the image was captured. In one embodiment, the member is determined to be connected to the first user based on a pre-existing direct relationship between the first user and the member of the social media platform. In another embodiment, the member is determined to be connected to the first user based on a pre-existing indirect relationship between the first user and the member of the social media platform. Method 400 also includes providing a list of one or more members to the first user as suggestions for tagging the image, as shown in block 410. In an exemplary embodiment, the list is an ordered list of one or more members, wherein the order is determined at least in part based on the distance between each of the one or more members and the geographic location when the image was captured. In one embodiment, the order of the list is further determined based on the degree of separation of the first user and each of the one or more members.
[0057] Reference now Figure 5 , a flowchart illustrating a computer-implemented method 500 for sorting a list of tag suggestions for an image in a social media platform according to one or more embodiments of the present invention is shown. In an exemplary embodiment, the method 500 is performed by a computer such as Figure 2 A social media platform 220 such as the one shown executes.
[0058] At block 502, method 500 includes obtaining a list of members of a social media platform that are connected to a first user and are within a predefined distance (D) of a geographic location when an image is captured. max In one embodiment, the predefined distance (D) from the geographic location is set by the administrator of the social media platform. max ). For example, D maxIt may be fifty feet. Next, as indicated at block 504, method 500 includes identifying a degree of connectivity (Deg.) between each member on the list and the first user. Method 500 also includes identifying a distance (D) between each member on the list and the first user's location when the image was captured. act ), as shown in block 506. Next, as shown in block 508, method 500 includes calculating a tag suggestion score for each member on the list based on the connectivity and the distance. In one embodiment, the tag suggestion score is calculated as (1 / Deg.)-(D act / D max ). For example, a first level connection located ten feet away from the first user would have a tag suggestion score of .8 calculated based on 1 / 1-(10 / 50), and a second level connection located twenty feet away from the first user would have a tag suggestion score of .1 calculated based on 1 / 2-(20 / 50). In an exemplary embodiment, another method for calculating tag suggestion scores may also be used. The method 500 ends at block 510 by providing the first user with an ordered list of one or more members in descending order based on the tag suggestion scores.
[0059] Various embodiments of the present invention are described herein with reference to the relevant drawings. Without departing from the scope of the present invention, alternative embodiments of the present invention may be designed. In the following description and accompanying drawings, various connections and positional relationships (e.g., above, below, adjacent, etc.) are described between elements. Unless otherwise indicated, these connections and / or positional relationships may be direct or indirect, and the present invention is not intended to be limited in this respect. Therefore, the coupling of entities may refer to direct or indirect coupling, and the positional relationship between entities may be direct or indirect positional relationship. In addition, various tasks and process steps described herein may be incorporated into a more comprehensive program or process with additional steps or functionality not described in detail herein.
[0060] The following definitions and abbreviations are used to interpret the claims and specification. As used herein, the terms "comprises," "including," "having," "containing," or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a composition, mixture, process, method, article, or apparatus that includes a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such composition, mixture, process, method, article, or apparatus.
[0061] Additionally, the term "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or design described herein as "exemplary" is not necessarily to be construed as being preferred or advantageous over other embodiments or designs. The terms "at least one" and "one or more" may be understood to include any integer greater than or equal to one, i.e., one, two, three, four, etc. The term "plurality" may be understood to include any integer greater than or equal to two, i.e., two, three, four, five, etc. The term "connected" may include both indirect "connections" and direct "connections."
[0062] The terms "about," "substantially," "approximately," and variations thereof are intended to include the degree of error associated with the measurement of a particular quantity based on the equipment available at the time this application was filed. For example, "about" may include a range of ±8% or 5% or 2% of a given value.
[0063] The description of various embodiments of the present invention has been given for the purpose of illustration, but it is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements existing in the market, or to enable other persons of ordinary skill in the art to understand the embodiments described herein.
Claims
1. A computer-implemented method for providing tag suggestions for an image in a social media platform, the computer-implemented method comprising: receiving the image from a first user of the social media platform; obtaining a timestamp corresponding to a time when the image was captured; obtaining a geographic location corresponding to where the image was captured; identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location when the image was captured; as well as The list of the one or more members is provided to the first user as suggestions for tagging the image.
2. The computer-implemented method of claim 1 , wherein: Based on a pre-existing direct relationship between the first user and a member of the social media platform, it is determined that the member is connected to the first user.
3. The computer-implemented method of claim 1 , wherein: Based on a pre-existing indirect relationship between the first user and a member of the social media platform, it is determined that the member is connected to the first user.
4. The computer-implemented method of claim 1 , wherein: The list is an ordered list of the one or more members, and wherein an order of the ordered list is determined based on a distance between each of the one or more members and the geographic location when the image was captured.
5. The computer-implemented method of claim 4, wherein: The order is also determined based on a degree of separation of the first user from each of the one or more members.
6. The computer-implemented method of claim 1 , wherein: At least one of the timestamp and the geographic location is obtained from metadata of the image.
7. The computer-implemented method of claim 1 , wherein: At least one of the timestamp and the geographic location is obtained by querying a device used by the first user to send the image to the social media platform.
8. The computer-implemented method of claim 1 , wherein: The social media platform is configured to periodically obtain a location of an electronic device associated with each of the members of the social media platform.
9. The computer-implemented method of claim 8, wherein: The social media platform is configured to delete the location of the electronic device once a duration has elapsed from obtaining the location of the electronic device associated with each member of the social media platform.
10. A computer program product having one or more computer-readable storage media, the computer-readable storage media having computer-readable program code stored collectively on the one or more computer-readable storage media, the computer-readable program code being executed by a processor of a computer system to cause the computer system to perform operations comprising: receiving an image from a first user of the social media platform; obtaining a timestamp corresponding to a time when the image was captured; obtaining a geographic location corresponding to where the image was captured; identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location when the image was captured; as well as The list of the one or more members is provided to the first user as suggestions for tagging the image.
11. The computer program product according to claim 10, wherein: Based on a pre-existing direct relationship between the first user and a member of the social media platform, it is determined that the member is connected to the first user.
12. The computer program product of claim 10, wherein: Based on a pre-existing indirect relationship between the first user and a member of the social media platform, it is determined that the member is connected to the first user.
13. The computer program product of claim 10, wherein: The list is an ordered list of the one or more members, and wherein an order of the ordered list is determined based on a distance between each of the one or more members and the geographic location when the image was captured.
14. The computer program product of claim 13, wherein: The order is also determined based on a degree of separation of the first user from each of the one or more members.
15. The computer program product of claim 10, wherein: At least one of the timestamp and the geographic location is obtained from metadata of the image.
16. The computer program product of claim 10, wherein: At least one of the timestamp and the geographic location is obtained by querying a device used by the first user to send the image to the social media platform.
17. The computer program product of claim 10, wherein: The social media platform is configured to periodically obtain a location of an electronic device associated with each of the members of the social media platform.
18. The computer program product of claim 17, wherein: The social media platform is configured to delete the location of the electronic device once a duration has elapsed from obtaining the location of the electronic device associated with each member of the social media platform.
19. A computing system comprising: processor; a memory coupled to the processor; as well as one or more computer-readable storage media coupled to the processor, the one or more computer-readable storage media collectively containing instructions executable by the processor via the memory to cause the processor to perform operations comprising: receiving an image from a first user of the social media platform; obtaining a timestamp corresponding to a time when the image was captured; obtaining a geographic location corresponding to where the image was captured; identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location when the image was captured; and The list of the one or more members is provided to the first user as suggestions for tagging the image.
20. The computer system of claim 19, wherein: Based on a pre-existing direct relationship between the first user and a member of the social media platform, it is determined that the member is connected to the first user.
21. A system comprising modules respectively configured to perform the steps of the method according to any one of claims 1 to 9.