Abstract:
A system and method for detecting and summarizing events based on data feeds from a plurality of sources. Such sources may include social media networks, text messages, news feeds among others. The system may receive raw information from such sources containing data related with possible events. Method for event detection may include pre-processing and normalizing data input from any source registered, this may also include; extracting and disambiguating events and entities, associate event and entities, correlate events and entities associated from a data input which results from a different data source, for validating/verifying an event. Subsequently, the validated/verified event may be stored in a local data storage and/or in a web-server.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This non-provisional patent application is related to U.S. Provisional Patent Application Ser. No. 61/910,825, entitled “Data Ingestion Module For Event Detection And Increased Situational Awareness,” filed Dec. 2, 2013, which is incorporated herein by reference in its entirety. 
         [0002]    This application is related U.S. patent application No. [QBS-EVDT-001-US], entitled “Event Detection Through Text Analysis Using Trained Event Template Models,” filed Dec. 2, 2014, which is hereby incorporated by reference in its entirety. 
     
    
     TECHNICAL FIELD 
       [0003]    The present disclosure relates in general to information data mining from social media sources, and more specifically to event detection, extraction and validation from media sources. 
       BACKGROUND 
       [0004]    The internet provides several sources of information which may be exploited. Internet news feeds and websites that allow users to interact with one another have exploded in popularity in the last few years. news feed channels such as CNN®, social networking websites sites such as Facebook® or LinkedIn° , and microblogging websites such as Twitter® enjoy widespread use. Millions of users post messages, images and videos on such websites on a daily, even hourly basis. Often, information gathered from these sources may refer to events taking place in real time. Such publicly accessible media may serve as a rich mine of information that may be used in different applications. Such information may be extracted in order to obtain an increased situational awareness about any event, such as, fire, earthquakes among others. This info may be useful for rescue teams and mission members. However, such information may be not accurate and exaggerated. Thus, rescue teams and mission members may not rely their decisions on this type of information. 
         [0005]    Currently, filtering and validation software may be applied to data feeds; this may reduce “noise” and may validate information. However, current systems and methods do not provide seamless processing and live display of information. In addition, information has to be organized and summarized in order to be suitable for first responders, mission members or anyone needing real-time situational awareness. This may consume time that is required for mission planning and response. 
         [0006]    Thus there is a need for a system and method capable of performing detection, extraction and validation of events found in one or more data sources, and effectively associate the extracted events with independent entities. Such a system or method may be able to seamlessly summarize and prioritize events based on the information received and may also provide live information displays of information. 
       SUMMARY 
       [0007]    A system and method for detecting events based on input data from a plurality of sources such as, social media, news feeds and/or a corpus of documents. The system may receive input from a plurality of sources through a plurality of ingestion modules, each of one may be optimized for a specific source. Ingestion modules may base their scanning or collecting of data streams on keywords, metadata, tags, relevant information attached (for pictures and videos), geographic location and time. Ingestion modules may provide live data streams to a cloud system, which may process such information filtering and summarizing such information in a seamless operation. The system may allow for the detection of events happening, and their proper association to disambiguated entities through text analysis of different sources. 
         [0008]    Processed data may be validated/verified and subsequently stored and distributed among any device able to establish a link with the cloud. Devices may be used by first responders and mission planners. Devices may include cell phones, tablets, laptops and the like. In addition, such devices may include an application or software that may display data processed live and seamless. Furthermore, devices may provide feedback to cloud in order to obtain more data streams from event. Such data may be processed as a new data ingestion. In addition, devices may be able to obtain processed data from a plurality of data stores, which may include web-servers, local storage among others. This feature ensures availability and reliability of the information. 
         [0009]    In one embodiment, a computer-implemented method comprises receiving, by a computer, from a plurality of data sources a plurality of data streams containing one or more events, wherein each respective data source comprises a server publishing a corresponding data stream; responsive to identifying, by the computer, one or more ingestion modules corresponding respectively to a set of one or more data streams of the plurality of data streams: determining, by the computer, whether each respective data stream in the set satisfies a set of one or more common criteria based on comparing against one or more data files containing data of one or more types stored in a database, wherein at least one data file is an event template modeling an event; and responsive to identifying, by the computer, a second set of one or more data streams not corresponding to the one or more ingestion modules: determining, by the computer, whether each respective data stream in the second set satisfies a second set one or more common criteria based on comparing each respective data stream in the second set against one or more data files containing data of one or more types stored in the database, wherein at least one data file is a second event template modeling a second event; and storing, by the computer, each respective data stream of the second set as a new event responsive to determining the respective data stream satisfies the second set of criteria. 
         [0010]    Additional features and advantages of an embodiment will be set forth in the description which follows, and in part will be apparent from the description. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in the exemplary embodiments in the written description and claims hereof as well as the appended drawings. 
         [0011]    It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]    The present disclosure can be better understood by referring to the following figures. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the disclosure. In the figures, reference numerals designate corresponding parts throughout the different views. 
           [0013]      FIG. 1  is a block diagram illustrating a data streams extraction from a plurality of sources by an ingestion module. 
           [0014]      FIG. 2  is block diagram illustrating manual training process for database used by an ingestion module. 
           [0015]      FIG. 3  is block diagram illustrating automatic training process for database used by an ingestion module. 
           [0016]      FIG. 4  is a flowchart illustrating workflow of ingestion module operation. 
       
    
    
     DEFINITIONS 
       [0017]    As used here, the following terms may have the following definitions: 
         [0018]    Entity extraction” refers to information processing methods for extracting information such as names, places, and organizations. 
         [0019]    “Data” refers to information containing text, images, videos, geographic locations among others. 
         [0020]    “Data Stream” refers to an individual bundle of data from a particular source or a continuous feed of information from a particular source. 
         [0021]    “Noise” refers to a plurality of not relevant, not related and useless data, which may be attached to data streams. 
         [0022]    “Features” is any information which is at least partially derived from a document. 
         [0023]    “Event Concept Store” refers to a database of Event template models. 
         [0024]    “Event” refers to one or more features characterized by at least its occurrence in time. 
         [0025]    “Module” refers to a computer or software components suitable for carrying out at least one or more tasks. 
       DETAILED DESCRIPTION 
       [0026]    The present disclosure is here described in detail with reference to embodiments illustrated in the drawings, which form a part here. Other embodiments may be used and/or other changes may be made without departing from the spirit or scope of the present disclosure. The illustrative embodiments described in the detailed description are not meant to be limiting of the subject matter presented here. 
         [0027]    Reference will now be made to the exemplary embodiments illustrated in the drawings, and specific language will be used here to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended. Alterations and further modifications of the inventive features illustrated here, and additional applications of the principles of the inventions as illustrated here, which would occur to one skilled in the relevant art and having possession of this disclosure, are to be considered within the scope of the invention. 
         [0028]    Various embodiments of the systems and methods disclosed here collect data from different sources in order to identify independent events using systems and methods to train customized and data source-specific event templates, and event models for different input data streams originating from various data sources, which may yield possibly high accuracy event detection. Ingestion modules executed by various nodes of an exemplary system may be customized for each type of data source, in an automated or manual fashion. Systems and methods may provide an event-based communication system, which may enable embodiments to gather and communicate event-related information between “ingestion modules,” which may then perform verification and validation of events detected by ingestion modules, by comparing detections of the same events (in parallel) at each of the other ingestion modules. Comparison of event detection results may be facilitated by embodiments implementing an event data normalization technique, which may produce a common event definition template (i.e., description schema) thus providing compatible data fields for comparing an event detected from different data sources by different ingestion modules of the system. 
       Data Streams Extraction 
       [0029]      FIG. 1  is a block diagram depicting an exemplary embodiment of data streams extraction  100 , which may include an ingestion module  102  for extracting data streams from a plurality of sources. Such sources may include social media, news sources, and/or any other sources that contain information related to events. 
         [0030]    Ingestion module  102  may collect, scan or receive data streams from a specific and single source such as a social media web page (e.g., Facebook® or Twitter®), news page, and online forums, among others. Furthermore, ingestion module  102  may be fed by a variety of sources, which may include a combination of web pages, social media, Short Message Service (“SMS”), Really Simple Syndication or Rich Site Summary (“RSS”) feeds, and similar networked electronic messaging services and protocols. Such sources may be Facebook®  108 , Twitter®  110 , an RSS feed from a news source  112 , and SMS feeds  114 . 
         [0031]    Ingestion module  102  may include one or more algorithms, one or more sets of instructions, one or more search protocols, and one or more search engines, for collecting data streams from a plurality of sources. 
         [0032]    Ingestion modules  102  may have access to one or more of databases  104  containing templates, models, search paths, definitions, instructions among others. Thus, ingestion module  102  may perform data pre-processing by comparing data streams with the stored templates; this may reduce noise and redundancy of data streams. 
         [0033]    Templates may define an event (e.g., kidnapping) in terms of semantic roles for the entities involved (e.g., perpetrator, victim, date time). Such databases  104  may be able to facilitate automated learning by ingestion module  102 . Thus, new information and corrections may be automatically updated in a database  104 . This automated training and correcting may be performed as a semi-supervised process, a supervised process, and/or an unsupervised process. The training process may allow human users to manually update templates, and event models, among others, as well as to check system when required. 
         [0034]    In the case of receiving data streams from a specific source, ingestion module  102  may be optimized in order to obtain data streams with high speed and quality. Thus, algorithms, search engines and databases  104  may be specifically focused to the data streams produced from the specific source. Templates and search engines may possess predefined specific search criteria. 
         [0035]    Ingestion module  102  may take keywords and/or metadata from data streams and then may compare them against models and/or templates in databases  104 . Ingestion module  102  may determine if a set of keywords and/or metadata pertains to a certain event by comparing them against all event models and/or templates in each database  104 . After comparison, ingestion module  102  may deliver data streams to data processing module  106 , which may perform data processing framework. 
       Database Learning Process 
       [0036]      FIG. 2  depicts training process  200  to build a database  208 . A plurality of documents  204  may be manually tagged by a person  202  in order to identify features pertaining to specific events and assign weights to those features. In this example, the features are keywords. In some embodiments the features may be images, sounds, or other identifying characteristics for determining an event. 
         [0037]    For example, an event model  206  may be “explosion”; a person can manually identify in a document  204  relating to an explosion the co-occurrence of keywords such as “bomb” and/or “fire”. The user may then assign a weighted value to each keyword, depending on the repetition or the co-occurrence of these keywords with others in a plurality of documents  204  related to explosions, and associate those with an event model  206  for “explosion” stored in database  208 . 
         [0038]      FIG. 3  depicts training process  300  to build a database  310 . A plurality of documents  304  may be automatically tagged by a computer software  302 , algorithm and/or set of instructions at ingestion module  102 . 
         [0039]    Training process  300  may be performed in order to identify features, which in this example are keywords, pertaining to specific events and assign weighted values to those keywords. 
         [0040]    In some embodiments, a person  308  may semi-supervise training process  300  by evaluating and correcting information tagged and assigned to specific events, this may add an extra layer of data reliability. 
         [0041]    In addition to the automatic training process  300 , person  308  may, in some embodiments, be able to manually tag other keywords in order to identify keywords pertaining to specific events and assign weights to those keywords. 
         [0042]    For example, an event model  306  may be associated with the event “explosion”; computer software  302  can automatically identify in a document  304  relating to an explosion the co-occurrence of keywords such as “bomb” and/or “fire”. Computer software  302  may then assign a weight to each word depending on the repetition or the co-occurrence of these keywords with others in a plurality of documents  304  related to explosions, and associate those with an event model  306  for explosion stored in database  310 . 
       Ingestion Module Operation 
       [0043]      FIG. 4  is a flowchart depicting ingestion module operation  400 , which may start at scan/receive data streams step  402 , when one or more ingestion modules  102  receive or scan for data streams from a plurality of sources. 
         [0044]    Scanning may be performed through active reading of publication in data stream sources; such sources may include social media web pages (e.g., Facebook®, Twitter®), blogs, and the like. Moreover, ingestion modules  102  may receive data streams from a plurality of data stream sources. This may be allowed through subscriptions, RSS delivery, SMS, e-mails, and the like. Ingestion modules  102  may be able to perform these two methods (scanning and receiving) at the same time and independently. 
         [0045]    Subsequently, in a step for determining whether a data stream source corresponds to a specific ingestion module, in check  404 , data streams scanned and received may be sent to a generic ingestion module  102  which may collect data streams from a plurality of sources, or data streams scanned and received may be sent to an optimized ingestion module  102 . 
         [0046]    An optimized ingestion module  102  may be customized for specific data stream sources, such as Facebook® or Twitter®, among others. A specific data stream source may be a single source or a group of sources gathered by common topic, type of data received (e.g., text, images, videos), and/or format of publication (e.g., limitation of characters), this may include groups of forums or blogs about an specific topic, news pages, and the like. 
         [0047]    If data streams do not correspond to a specific ingestion module  102 , then at analyze data streams based on common criteria step  406 , ingestion module  102  may authorize scanned/received data streams to be analyzed through common criteria set for any data stream source. 
         [0048]    The common criteria analysis may be performed at “data streams match with database” check  408 , by a comparison between templates, models, search paths, definitions, and/or instructions, among others, which may be previously stored in a database  104 . By comparing data streams with the stored templates, models, search paths, and the like, ingestion module  102  may perform data streams pre-processing by comparing, which may reduce noise and redundancy of data streams. 
         [0049]    Templates may define an event (e.g. kidnapping) in terms of semantic roles for the entities involved (e.g. perpetrator, victim, date time). Templates may take keywords and/or metadata from data streams and may establish a comparison with the database  104  template. For example, if a group of keywords such as, “building,” “ground moving,” “earthquake,” and “walls cracked” are scanned/received, then ingestion module  102  may compare such terms with the templates in database  104 , templates may be indexed by event, in this case, the event may be labeled as “earthquake”. 
         [0050]    Thus, by applying check  408  means that ingestion module  102  may avoid delivering data streams that are redundant or not related with the event or topic (noise) at “do not send data streams” step  410 , and the ingestion module operation  400  may end. 
         [0051]    If data streams match with templates in database  104 , then ingestion module  102  may send data streams  414  to data processing modules, data storages, and the like. Subsequently, ingestion module operation  400  may end. 
         [0052]    If, in check  404 , data streams correspond to a specific ingestion module  102 , then at “data streams meet specific criteria” check  412 , ingestion module  102  optimized for a specific data/source may perform an analysis to scanned/received data streams, which may be based on specific criteria set for the data streams source, such criteria may include type of vocabulary used, data format, limitation of characters, frequency of new data streams released and the like. 
         [0053]    An optimized ingestion module  102  may perform comparison between scanned/received data streams with the templates, models, and search paths, among others, that are stored in database  104 . Because there are specific criteria for the optimized ingestion module  102 , specific templates, models, and search paths, among others, may be employed in database  104  too. 
         [0054]    By comparing data streams with the stored specific templates, models, search paths, and the like, ingestion module  102  may perform data streams pre-processing by comparing, which may reduce noise and redundancy of data streams. 
         [0055]    Templates may define an event (e.g. kidnapping) in terms of semantic roles for the entities involved (e.g. perpetrator, victim, date time). Templates may take keywords and/or metadata from data streams and may establish a comparison with the database  104  template. 
         [0056]    For example, if a group of keywords such as, “building,” “ground moving,” “earthquake,” and “walls cracked,” are scanned/received from and a specific source, such as an RSS news feed, then optimized ingestion module  102  may compare such terms with the templates in database  104 , then templates may be indexed by event, in this case, the event may be labeled as “earthquake”. 
         [0057]    Thus, ingestion module  102  may avoid collecting data streams that are redundant or not related (noise) at “do not send data streams” step  410 , and the ingestion module operation  400  may end. 
         [0058]    If data streams match with templates in database  104 , then ingestion module  102  may send data streams  414  to data processing modules, data storages and the like. Subsequently, ingestion module operation  400  may end. 
         [0059]    The foregoing method descriptions and the process flow diagrams are provided merely as illustrative examples and are not intended to require or imply that the steps of the various embodiments must be performed in the order presented. As will be appreciated by one of skill in the art the steps in the foregoing embodiments may be performed in any order. Words such as “then,” “next,” etc. are not intended to limit the order of the steps; these words are simply used to guide the reader through the description of the methods. Although process flow diagrams may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function or the main function. 
         [0060]    The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention. 
         [0061]    Embodiments implemented in computer software may be implemented in software, firmware, middleware, microcode, hardware description languages, or any combination thereof. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc. 
         [0062]    The actual software code or specialized control hardware used to implement these systems and methods is not limiting of the invention. Thus, the operation and behavior of the systems and methods were described without reference to the specific software code being understood that software and control hardware can be designed to implement the systems and methods based on the description herein. 
         [0063]    When implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable or processor-readable storage medium. The steps of a method or algorithm disclosed herein may be embodied in a processor-executable software module which may reside on a computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable media includes both computer storage media and tangible storage media that facilitate transfer of a computer program from one place to another. A non-transitory processor-readable storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such non-transitory processor-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other tangible storage medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer or processor. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a non-transitory processor-readable medium and/or computer-readable medium, which may be incorporated into a computer program product. 
         [0064]    The preceding description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the following claims and the principles and novel features disclosed herein. 
         [0065]    While various aspects and embodiments have been disclosed, other aspects and embodiments are contemplated. The various aspects and embodiments disclosed are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.