Systems and methods for utilizing filters to reduce an incoming stream of textual messages to a smaller subset of potentially relevant textual messages, and using trained machine learning models to analyze and classify the content of such textual messages. Analyzed messages that belong to a relevant class as determined by the machine learning model are stored in a database, giving users the ability to determine and analyze trends from the subset of messages, such as adverse side effects caused by pharmaceuticals or the efficacy of pharmaceuticals. Relationships between the side effects caused by different pharmaceuticals can be used to predict potential candidates for drug repositioning.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A pharmacovigilance system for filtering and classifying social media textual messages that include pharmacological content, comprising: a plurality of cascading filters configured to receive a plurality of textual messages that contain at least one keyword of a plurality of keywords related to pharmaceuticals, wherein the plurality of textual messages are input into a first cascading filter, each of the plurality of cascading filters evaluates whether textual messages input into that filter satisfy a criterion of that filter and each of the plurality of cascading filters outputs a subset of textual messages that satisfy the criterion of that filter, so that a last cascading filter outputs a final subset of the plurality of textual messages; a feature extractor that receives the final subset of textual messages, extracts a vector of features from each textual message of the final subset, and outputs the final subset of textual messages and an associated vector of features for each message of the final subset; a classifier comprising a machine learning model that receives the vector of features, determines whether the textual message associated with each vector of features belongs to a particular class associated with the machine learning model, and provides an output of one or more textual messages that belong to that particular class to an indexed database of classified textual messages, wherein the particular class comprises messages related to adverse drug-related side effects; an indexed database of classified textual messages that stores the classified textual messages, a particular class associated with each of the classified textual messages, and metadata associated with each of the classified textual messages; and an application programming interface configured to access the indexed database and to provide stored classified textual messages and metadata associated with those classified textual messages to at least one customer application configured to allow customers to view the classified textual messages and metadata. 2. The system of claim 1, wherein the plurality of textual messages are user posts to at least one social media platform, and the plurality of textual messages are provided by the at least one social media platform. 3. The system of claim 1, wherein the plurality of textual messages comprises textual messages that contain at least one word that matches at least one morphological structure. 4. The system of claim 1, wherein the plurality of cascading filters comprises a filter that outputs original textual messages and discards textual messages that are copies of the original textual messages. 5. The system of claim 1, wherein the plurality of cascading filters comprises a filter that outputs textual messages written in a first language, and discards textual messages that are not written in that first language. 6. The system of claim 1, wherein the plurality of cascading filters comprises a filter that outputs textual messages written in a language that is a member of a group of languages, and discards textual messages that are written in a language that is not a member of that group of languages. 7. The system of claim 1, wherein the plurality of cascading filters comprises a filter that outputs textual messages that do not contain a hyperlink, and discards textual messages that contain hyperlinks. 8. The system of claim 1, wherein the plurality of cascading filters comprises a filter that outputs textual messages that contain at least one keyword from a list of keywords, and discards textual messages that do not contain any of the keywords in the list of keywords. 9. The system of claim 1, wherein the plurality of cascading filters comprises a filter that outputs textual messages that contain at least one word that matches at least one morphological structure, and discards textual messages that do not contain any words that match the at least one morphological structure. 10. The system of claim 1, comprising a database that stores the final subset of textual messages output by the plurality of cascading filters. 11. The system of claim 1, wherein the vector of features extracted from the textual message comprises one or more surface features comprising: a) the number of characters in the textual message divided by a maximum length limit of the textual message; b) the number of social media usernames in the textual message; c) the maximum number of times an alphanumeric character is repeated within a word in the textual message; d) whether the textual message contains at least one numerical character; e) whether the textual message contains at least one upper-case word; f) whether the textual message contains at least one title-case word; and g) if the textual message contains at least one word with mixed capitalization. 12. The system of claim 1, wherein the vector of features extracted from the textual message comprises one or more part-of-speech tag features comprising: a) whether the textual message contains verbs in both past and present tense; b) whether the textual message contains a wh-determiner, a wh-pronoun, a possessive wh-pronoun, or a wh-adverb; c) whether the textual message contains a comparative or superlative adverb; and d) a concatenation of all verb part-of-speech (POS) tags in the textual message in the alphabetical order of those verb POS tags. 13. The system of claim 1, wherein the vector of features extracted from the textual message comprises one or more gazetteer features comprising: a) whether the textual message contains at least one word or phrase listed in a gazetteer containing a list of words and phrases; b) the number of words and/or phrases in the textual message matching words or phrases in the gazetteer; and c) the percentage of the alphanumeric characters in the textual message that are contained in the words and/or phrases in the textual message matching words or phrases in the gazetteer. 14. The system of claim 13, wherein the gazetteer containing a list of words and phrases comprises: a) a user vocabulary gazetteer comprising words and phrases indicating abuse, humor, fiction, intake, efficacy, and patient feedback about a drug; b) a company gazetteer comprising words and phrases related to commercial spam, commercial pharmaceutical companies, financial and share price information, company news, and company designators; and c) a medical vocabulary gazetteer comprising words and phrases related to human body parts, adverse effect symptoms, side effect symptoms, adverse events, casuality indicators, clinical trials, medical professional roles, side effect triggers, and drugs. 15. The system of claim 1, wherein the vector of features extracted from the textual message comprises one or more sentiment features comprising: a) the number of words in the textual message having a negative sentiment value; b) the sum of the negative sentiment values of the words having a negative sentiment value; c) the average negative sentiment value of the words having a negative sentiment value; d) the number of words in the textual message having a positive sentiment value; e) the sum of the positive sentiment values of the words having a positive sentiment value; and f) the average positive sentiment value of the words having a positive sentiment value. 16. The system of claim 1, wherein the machine learning model is a support vector machine. 17. The system of claim 16, wherein the machine learning model has been trained using a set of training data, the set of training data comprises a plurality of sample textual messages, and the sample textual messages are each manually annotated as positive or negative examples of the particular class associated with the machine learning model. 18. The system of claim 1, wherein the classifier comprises a plurality of machine learning models, and each of the plurality of machine learning models is associated with and optimized for a particular class of textual messages. 19. The system of claim 18, wherein the plurality of machine learning models are cascading classifiers. 20. The system of claim 18, wherein the plurality of machine learning models are parallel-voting classifiers. 21. The system of claim 1, wherein the classifier comprises a plurality of machine learning models, and each of the plurality of machine learning models is optimized for a particular language. 22. The system of claim 1, wherein the indexed database comprises classified textual messages of a single particular class. 23. The system of claim 1, wherein the indexed database comprises classified textual messages of a plurality of classes. 24. The system of claim 1, wherein the metadata associated with the classified textual messages comprises: a) a time at which the textual message was posted on a social media platform; b) the geographical location from which the textual message was posted; c) at least one class to which the textual message belongs; and d) a gender of a composer of the textual message. 25. The system of claim 1, wherein the at least one customer application is configured to generate a computerized display that allows a customer to indicate whether the customer believes a particular classified textual message was properly classified. 26. The system of claim 1, wherein the at least one customer application is configured to generate one or more computerized displays comprising: a) one or more classified textual messages from the classified textual messages stored in the indexed database; b) a timeline displaying the time at which a plurality of classified textual messages were posted on at least one social media platform; c) a geographical map displaying the geographical locations from which a plurality of classified textual messages were posted; and d) a chart or graph indicating the number of classified textual messages that are associated with a specific class of a plurality of classes, wherein each of those classified textual messages contains a particular keyword or phrase. 27. A pharmacovigilance method for filtering and classifying social media textual messages that include pharmacological content, comprising: training at least one machine learning model to identify textual messages that are positive examples of a particular class associated with the at least one machine learning model, wherein the particular class comprises messages related to adverse drug-related side effects; receiving a plurality of textual messages containing at least one keyword from at least one source of textual messages; inputting the received plurality of textual messages into a plurality of cascading filters, filtering out textual messages that do not satisfy a respective criterion of each of those plurality of cascading filters, and outputting a final subset of textual messages that satisfy the criteria of all the cascading filters; extracting a vector of features from each of the final subset of textual messages, and associating each vector of features with the respective textual message from which it was extracted; inputting the vectors of features into the at least one trained machine learning model, and classifying the textual message associated with each vector of features as a positive or negative example of a message related to adverse drug-related side effects; indexing and storing one or more textual messages classified as a positive example and metadata associated with those one or more textual messages in an indexed database; and providing the one or more textual messages classified as a positive example of a message related to adverse drug-related side effects and the metadata associated with the one or more textual messages to a customer application configured to allow customers to view classified textual messages and metadata. 28. The method of claim 27, wherein training the at least one machine learning model comprises training the at least one machine learning model with a training set comprising a plurality of sample textual messages that have been manually annotated as negative or positive examples of the particular class associated with the at least one machine learning model. 29. The method of claim 27, wherein training the at least one machine learning model further comprises surrogate training of the at least one machine learning model using automatically selected sample textual messages, and wherein the automatically selected sample textual messages are automatically selected as likely positive examples of the particular class associated with the at least one machine learning model. 30. The method of claim 27, wherein training the at least one machine learning model comprises receiving feedback on whether the indexed and stored classified textual messages were properly classified. 31. The method of claim 27, wherein the at least one machine learning model comprises a support vector machine, and wherein training the at least one machine learning model comprises grid search optimization of the at least one support vector machine. 32. The method of claim 27, wherein receiving the plurality of textual messages from at least one source of textual messages comprises receiving a stream of textual messages from at least one social media platform. 33. The method of claim 27, wherein receiving the plurality of textual messages from at least one source of textual messages comprises receiving streams of textual messages from a plurality of different social media platforms. 34. The method of claim 27, wherein the received plurality of textual messages comprise textual messages that contain at least one keyword from a list of keywords. 35. The method of claim 27, wherein filtering out textual messages that do not satisfy a respective criterion of each of those plurality of cascading filters comprises at least one of: a) filtering out all textual messages that are copies of original textual messages; b) filtering out all textual messages that are not written in one or more particular languages; c) filtering out all textual messages that do not contain a hyperlink; and d) filtering out all textual messages that do not contain at least one word or phrase from a list of key words and phrases. 36. The method of claim 27, wherein extracting a vector of features comprises tokenizing and normalizing the textual message. 37. The method of claim 27, wherein extracting a vector of features comprises extracting one or more N-gram features comprising: a) unigrams containing only alphanumeric characters; and b) bigrams containing only alphanumeric characters. 38. The method of claim 27, wherein inputting the vectors of features into the at least one machine learning model comprises inputting the vectors of features into a single machine learning model. 39. The method of claim 27, wherein inputting the vectors of features into the at least one machine learning model comprises inputting the vectors of features into a plurality of machine learning models, and wherein the plurality of machine learning models comprise cascading machine learning models or parallel-voting machine learning models. 40. The method of claim 27, wherein the metadata associated with the one or more classified textual messages comprises: a) a time at which the textual message was posted on a social media platform; b) the geographical location from which the textual message was posted; c) at least one class to which the textual message belongs; and d) a gender of a composer of the textual message. 41. A system for determining candidates for drug repositioning, comprising: a set of cascading filters configured to receive a plurality of social media posts and to output a subset of filtered social media posts from the set of cascading filters; a classifier configured to receive the subset of filtered social media posts from the set of cascading filters and to output a subset of classified social media posts related to drug-related side effects from the classifier; a database configured to receive the subset of classified social media posts from the classifier and to store the subset of classified social media posts; a side-effect profile matrix generator configured to retrieve the subset of classified social media posts from the database, and to generate a side-effect profile matrix representing the side-effects associated with a plurality of drugs from the subset of classified social media posts; and a global statistical model configured to receive the side-effect profile matrix from the side-effect matrix generator and to output a correlation matrix comprising correlations between pairs of drugs from the plurality of drugs. 42. The system of claim 41, further comprising a graphical model generator configured to generate a graphical display of a side-effect network from the correlation matrix. 43. The system of claim 42, wherein the graphical display comprises a plurality of nodes and a plurality of edges between pairs of nodes, each node represents a drug, and each edge between a pair of nodes represents the correlation between a first side-effect profile of a first drug and a second side-effect profile of a second drug. 44. The system of claim 43, wherein a thickness of an edge between a pair of nodes represents the strength of the correlation between the first side-effect profile and the second side-effect profile. 45. A method for computing candidates for drug repositioning, comprising: receiving a plurality of drug-related side effect descriptions, each description comprising: a) a drug; and b) a side effect resulting from the drug; generating a side-effect matrix from the drug-related side effect descriptions; generating a sample covariance matrix from the side-effect matrix; shrinking the sample covariance matrix to create a shrunk covariance matrix; inverting the shrunk covariance matrix to create a precision matrix; normalizing and symmetrizing the precision matrix to create a partial correlation matrix; and ranking drug repositioning candidates from the partial correlation matrix. 46. The method of claim 45, wherein each row in the side-effect matrix represents a side effect, each column in the side-effect matrix represents a drug, and each cell in the side-effect matrix represents whether a particular side effect has been reported for a particular drug. 47. The method of claim 45, wherein each row in the partial correlation matrix represents a drug, each column in the partial correlation matrix represents a drug, and each cell in the partial correlation matrix represents the correlation calculated between a first drug and a second drug. 48. The method of claim 45, wherein shrinking the sample covariance matrix comprises applying a distribution-free, diagonal, unequal variance model. 49. The method of claim 45, wherein inverting the shrunk covariance matrix comprises using a graphical lasso. 50. The method of claim 45, further comprising generating a drug side-effect network from the partial correlation matrix using a relative entropy optimization-based method.