<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.0 20040830//EN" "http://dtd.nlm.nih.gov/publishing/2.0/journalpublishing.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="2.0">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">JMIR</journal-id>
      <journal-id journal-id-type="nlm-ta">J Med Internet Res</journal-id>
      <journal-title>Journal of Medical Internet Research</journal-title>
      <issn pub-type="epub">1438-8871</issn>
      <publisher>
        <publisher-name>JMIR Publications</publisher-name>
        <publisher-loc>Toronto, Canada</publisher-loc>
      </publisher>
    </journal-meta>
    <article-meta>
    <article-id pub-id-type="publisher-id">v20i11e11141</article-id>
    <article-id pub-id-type="pmid">30425030</article-id>
    <article-id pub-id-type="doi">10.2196/11141</article-id>
    <article-categories>
      <subj-group subj-group-type="heading">
        <subject>Original Paper</subject>
      </subj-group>
      <subj-group subj-group-type="article-type">
        <subject>Original Paper</subject>
      </subj-group>
    </article-categories>
    <title-group>
      <article-title>Automatic Classification of Online Doctor Reviews: Evaluation of Text Classifier Algorithms</article-title>
    </title-group>
    <contrib-group>
      <contrib contrib-type="editor">
        <name>
          <surname>Eysenbach</surname>
          <given-names>Gunther</given-names>
        </name>
      </contrib>
    </contrib-group>
    <contrib-group>
      <contrib contrib-type="reviewer">
        <name>
          <surname>Tkáč</surname>
          <given-names>Michal</given-names>
        </name>
      </contrib>
      <contrib contrib-type="reviewer">
        <name>
          <surname>Hao</surname>
          <given-names>Haijing</given-names>
        </name>
      </contrib>
      <contrib contrib-type="reviewer">
        <name>
          <surname>Shen</surname>
          <given-names>Lining</given-names>
        </name>
      </contrib>
    </contrib-group>
    <contrib-group>
      <contrib contrib-type="author" id="contrib1" corresp="yes">
      <name name-style="western">
        <surname>Rivas</surname>
        <given-names>Ryan</given-names>
      </name>
      <degrees>BS</degrees>
      <xref rid="aff1" ref-type="aff">1</xref>
      <address>
        <institution>Department of Computer Science and Engineering</institution>
        <institution>University of California, Riverside</institution>
        <addr-line>363 Winston Chung Hall</addr-line>
        <addr-line>900 University Avenue</addr-line>
        <addr-line>Riverside, CA, 92521</addr-line>
        <country>United States</country>
        <phone>1 951 827 2838</phone>
        <email>rriva002@ucr.edu</email>
      </address>  
      <ext-link ext-link-type="orcid">http://orcid.org/0000-0001-5590-0274</ext-link></contrib>
      <contrib contrib-type="author" id="contrib2">
        <name name-style="western">
          <surname>Montazeri</surname>
          <given-names>Niloofar</given-names>
        </name>
        <degrees>PhD</degrees>
        <xref rid="aff1" ref-type="aff">1</xref>
        <ext-link ext-link-type="orcid">http://orcid.org/0000-0002-9755-598X</ext-link>
      </contrib>
      <contrib contrib-type="author" id="contrib3">
        <name name-style="western">
          <surname>Le</surname>
          <given-names>Nhat XT</given-names>
        </name>
        <degrees>BS</degrees>
        <xref rid="aff1" ref-type="aff">1</xref>
        <ext-link ext-link-type="orcid">http://orcid.org/0000-0001-9406-8716</ext-link>
      </contrib>
      <contrib contrib-type="author" id="contrib4">
        <name name-style="western">
          <surname>Hristidis</surname>
          <given-names>Vagelis</given-names>
        </name>
        <degrees>PhD</degrees>
        <xref rid="aff1" ref-type="aff">1</xref>
        <ext-link ext-link-type="orcid">http://orcid.org/0000-0001-8679-4988</ext-link>
      </contrib>
    </contrib-group>
    <aff id="aff1">
    <label>1</label>
    <institution>Department of Computer Science and Engineering</institution>
    <institution>University of California, Riverside</institution>  
    <addr-line>Riverside, CA</addr-line>
    <country>United States</country></aff>
    <author-notes>
      <corresp>Corresponding Author: Ryan Rivas 
      <email>rriva002@ucr.edu</email></corresp>
    </author-notes>
    <pub-date pub-type="collection"><month>11</month><year>2018</year></pub-date>
    <pub-date pub-type="epub">
      <day>12</day>
      <month>11</month>
      <year>2018</year>
    </pub-date>
    <volume>20</volume>
    <issue>11</issue>
    <elocation-id>e11141</elocation-id>
    <!--history from ojs - api-xml-->
    <history>
      <date date-type="received">
        <day>30</day>
        <month>5</month>
        <year>2018</year>
      </date>
      <date date-type="rev-request">
        <day>26</day>
        <month>7</month>
        <year>2018</year>
      </date>
      <date date-type="rev-recd">
        <day>21</day>
        <month>8</month>
        <year>2018</year>
      </date>
      <date date-type="accepted">
        <day>4</day>
        <month>9</month>
        <year>2018</year>
      </date>
    </history>
    <!--(c) the authors - correct author names and publication date here if necessary. Date in form ', dd.mm.yyyy' after jmir.org-->
    <copyright-statement>©Ryan Rivas, Niloofar Montazeri, Nhat XT Le, Vagelis Hristidis. Originally published in the Journal of Medical Internet Research (http://www.jmir.org), 12.11.2018.</copyright-statement>
    <copyright-year>2018</copyright-year>
    <license license-type="open-access" xlink:href="https://creativecommons.org/licenses/by/4.0/">
      <p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work, first published in the Journal of Medical Internet Research, is properly cited. The complete bibliographic information, a link to the original publication on http://www.jmir.org/, as well as this copyright and license information must be included.</p>
    </license>  
    <self-uri xlink:href="http://www.jmir.org/2018/11/e11141/" xlink:type="simple"/>
    <abstract>
      <sec sec-type="background">
        <title>Background</title>
        <p>An increasing number of doctor reviews are being generated by patients on the internet. These reviews address a diverse set of topics (features), including wait time, office staff, doctor’s skills, and bedside manners. Most previous work on automatic analysis of Web-based customer reviews assumes that (1) product features are described unambiguously by a small number of keywords, for example, <italic>battery</italic> for phones and (2) the opinion for each feature has a positive or negative sentiment. However, in the domain of doctor reviews, this setting is too restrictive: a feature such as <italic>visit duration</italic> for doctor reviews may be expressed in many ways and does not necessarily have a positive or negative sentiment.</p>
      </sec>
      <sec sec-type="objective">
        <title>Objective</title>
        <p>This study aimed to adapt existing and propose novel text classification methods on the domain of doctor reviews. These methods are evaluated on their accuracy to classify a diverse set of doctor review features.</p>
      </sec>
      <sec sec-type="methods">
        <title>Methods</title>
        <p>We first manually examined a large number of reviews to extract a set of features that are frequently mentioned in the reviews. Then we proposed a new algorithm that goes beyond bag-of-words or deep learning classification techniques by leveraging natural language processing (NLP) tools. Specifically, our algorithm automatically extracts dependency tree patterns and uses them to classify review sentences.</p>
      </sec>
      <sec sec-type="results">
        <title>Results</title>
        <p>We evaluated several state-of-the-art text classification algorithms as well as our dependency tree–based classifier algorithm on a real-world doctor review dataset. We showed that methods using deep learning or NLP techniques tend to outperform traditional bag-of-words methods. In our experiments, the 2 best methods used NLP techniques; on average, our proposed classifier performed 2.19% better than an existing NLP-based method, but many of its predictions of specific opinions were incorrect.</p>
      </sec>
      <sec sec-type="conclusions">
        <title>Conclusions</title>
        <p>We conclude that it is feasible to classify doctor reviews. Automatically classifying these reviews would allow patients to easily search for doctors based on their personal preference criteria.</p>
      </sec>
    </abstract>
    <kwd-group>
      <kwd>patient satisfaction</kwd>
      <kwd>patient reported outcome measures</kwd>
      <kwd>quality indicators, health care</kwd>
      <kwd>supervised machine learning</kwd>
    </kwd-group></article-meta>
  </front>
  <body>
    <sec sec-type="introduction">
      <title>Introduction</title>
      <sec>
        <title>Background</title>
        <p>The problem of automatic reviews analysis and classification has attracted much attention because of its importance in ecommerce applications [<xref ref-type="bibr" rid="ref1">1</xref>-<xref ref-type="bibr" rid="ref3">3</xref>]. Recently, there has been an increase in the number of sites where users rate doctors. Several works have analyzed the content and scores of such reviews, mostly by examining a subset of them through qualitative and quantitative analysis [<xref ref-type="bibr" rid="ref4">4</xref>-<xref ref-type="bibr" rid="ref9">9</xref>] or by applying text-mining techniques to characterize trends [<xref ref-type="bibr" rid="ref10">10</xref>-<xref ref-type="bibr" rid="ref12">12</xref>]. However, not much work has studied how to automatically classify doctor reviews.</p>
        <p>In this study, our objective was to automatically summarize the content of a textual doctor review by extracting the features it mentions and the opinion of the reviewer for each of these features; for example, to estimate if the reviewer believes that the wait time or the visit time is long or if the doctor is in favor of complementary medicine methods. We explore the feasibility of reaching this objective by defining a broader definition of the review classification problem that addresses challenges in the domain of doctor reviews and examining the performance of several machine learning algorithms in classifying doctor review sentences.</p>
        <p>Previous work on customer review analysis focused on automated extraction of features and the polarity (also referred as opinion or sentiment) of statements about those features [<xref ref-type="bibr" rid="ref2">2</xref>,<xref ref-type="bibr" rid="ref13">13</xref>,<xref ref-type="bibr" rid="ref14">14</xref>]. Specifically, these works tackle the problem in 2 steps: first they extract the features using rules, and then, for each feature, they estimate the polarity using hand-crafted rules or supervised machine learning methods. This works well if (1) the features are <italic>basic</italic>, such as the battery of a phone, which are generally described by a single keyword, for example, <italic>the battery of the camera is poor</italic>, and (2) the opinion is objectively positive or negative but does not support more subjective features like visit time, where for some patients it is positive to be longer, and for some, it is negative. In other words, statements about features in product reviews tend to be more straightforward and unambiguously positive or negative, whereas reviews on service, such as doctor reviews, are often less so, as there may be many ways to express an opinion on some aspect of the service.</p>
        <p>In our study, the features may be more complex, for example, the <italic>visit time</italic> feature can be expressed by different phrases such as “spends time with me,” “takes his time,” “not rushed,” and so on. As another example, “appointment scheduling” can be expressed in many different ways, for example, “I was able to schedule a visit within days” or “The earliest appointment I could make is in a month.” Other complex classes include <italic>staff</italic> or <italic>medical skills</italic>.</p>
        <p>Furthermore, in our study, what is positive for one user may be negative for another. For example, consider the sentence “Dr. Chan is very fast so there is practically no wait time and you are in and out within 20 minutes.” The sentiment in this sentence is positive, but a short visit implied by <italic>in and out within 20 minutes</italic> may be negative for some patients. Instead, what we want to measure is long visit time versus short visit time. This is different from work on detecting transition of sentiment [<xref ref-type="bibr" rid="ref15">15</xref>] because it is not enough to detect the <italic>true</italic> sentiment, but we must also associate it with a class (long visit time vs short visit time).</p>
        <p>To address this variation of the review classification problem, we created a labeled dataset consisting of 5885 sentences from 1017 Web-based doctor reviews. We identified several classes of doctor review opinions and labeled each sentence according to the presence and polarity of these opinion classes. Note that our definition of polarity is broader than in previous work as it is not strictly positive and negative but rather takes the subjectivity of patient opinions into account (eg, complementary medicine is considered good by some and bad by others).</p>
        <p>We adapt existing and propose new classifiers to classify doctor reviews. In particular, we consider 3 diverse types of classifiers:</p>
        <list list-type="order">
          <list-item>
            <p>Bag-of-words classifiers such as Support Vector Machine (SVM) [<xref ref-type="bibr" rid="ref16">16</xref>,<xref ref-type="bibr" rid="ref17">17</xref>] and Random Forests [<xref ref-type="bibr" rid="ref18">18</xref>] that leverage the statistical properties of the review text, such as the frequency of each word.</p>
          </list-item>
          <list-item>
            <p>Deep learning methods such as Convolutional Neural Network (CNN) [<xref ref-type="bibr" rid="ref19">19</xref>], which also consider the proximity of the words.</p>
          </list-item>
          <list-item>
            <p>Natural Language Processing (NLP)–based classifiers, which leverage the dependency tree of a review sentence [<xref ref-type="bibr" rid="ref20">20</xref>]. Specifically, we consider an existing NLP-based classifier [<xref ref-type="bibr" rid="ref21">21</xref>] and propose a new one, the Dependency Tree-Based Classifier (DTC).</p>
          </list-item>
        </list>
        <p>DTC generates the dependency tree for each sentence in a review and applies a set of rules to extract dependency tree–matching patterns. These patterns are then ranked by their accuracy on the training set. Finally, the sentences of a new review are classified based on the highest-ranking matching pattern. This is in contrast to the work by Matsumoto et al [<xref ref-type="bibr" rid="ref21">21</xref>], which treats dependency tree patterns as features in an SVM classifier.</p>
        <p>The results of our study show that classifying doctor reviews to identify patient opinions is feasible. The results also show that DTC generally outperforms all other implemented text classification techniques.</p>
        <p>Here is a summary of our contributions:</p>
        <list list-type="order">
          <list-item>
            <p>We propose a broader definition for the review classification problem in the domain of doctor reviews, where the features can be complex entities and the polarity is not strictly positive or negative.</p>
          </list-item>
          <list-item>
            <p>We evaluated a diverse set of 5 state-of-the-art classification techniques on a labeled dataset of doctor reviews containing a set of commonly used and useful features.</p>
          </list-item>
          <list-item>
            <p>We propose a novel decision tree–based classifier and show that it outperforms the other methods; we have published the code on the Web [<xref ref-type="bibr" rid="ref22">22</xref>].</p>
          </list-item>
        </list>
      </sec>
      <sec>
        <title>Literature Review</title>
        <p>In this section, we review research in fields related to this study, which we organize into 5 categories:</p>
        <list list-type="bullet">
          <list-item>
            <p>Quantitative and qualitative analysis of doctor review ratings and content</p>
          </list-item>
          <list-item>
            <p>The application of text mining techniques to describe trends in doctor reviews</p>
          </list-item>
          <list-item>
            <p>Feature and polarity extraction in customer reviews</p>
          </list-item>
          <list-item>
            <p>Application of dependency tree patterns to sentiment analysis</p>
          </list-item>
          <list-item>
            <p>Recent work in text classification</p>
          </list-item>
        </list>
        <sec>
          <title>Doctor Review Analysis</title>
          <p>Several previous works have analyzed Web-based doctor reviews. Gao et al described trends in doctor reviews over time to identify which characteristics influence Web-based ratings [<xref ref-type="bibr" rid="ref4">4</xref>]. They found that obstetricians or gynecologists and long-time graduates were more likely to be reviewed than other physicians, recent graduates, board-certified physicians, highly rated medical school graduates, and doctors without malpractice claims received higher ratings, and reviews were generally positive. Segal et al compared doctor review statistics with surgeon volume [<xref ref-type="bibr" rid="ref5">5</xref>]. They found that high-volume surgeons could be differentiated from low-volume surgeons by analyzing the number of numerical ratings, the number of text reviews, the proportion of positive reviews, and the proportion of critical reviews. López et al performed a qualitative content analysis of doctor reviews [<xref ref-type="bibr" rid="ref6">6</xref>]. They found that most reviews were positive and identified 3 overarching domains in the reviews they analyzed: interpersonal manner, technical competence, and system issues. Hao analyzed Good Doctor Online, an online health community in China, and found that gynecology-obstetrics-pediatrics doctors were the most likely to be reviewed, internal medicine doctors were less likely to be reviewed, and most reviews were positive [<xref ref-type="bibr" rid="ref7">7</xref>]. Smith and Lipoff conducted a qualitative analysis of dermatology practice reviews from Yelp and ZocDoc [<xref ref-type="bibr" rid="ref8">8</xref>]. They found that both the average review scores and the proportion of reviews with 5 out of 5 stars from ZocDoc were higher than those from Yelp. They also found that high-scoring reviews and low-scoring reviews had similar content (eg, physician competency, staff temperament, and scheduling) but opposite valence. Daskivich et al analyzed health care provider ratings across several specialties and found that allied health providers (eg, providers who are neither doctors nor nurses) had higher patient satisfaction scores than physicians, but these scores were also the most skewed [<xref ref-type="bibr" rid="ref9">9</xref>]. They also concluded that specialty-specific percentile ranks might be necessary for meaningful interpretation of provider ratings by consumers.</p>
        </sec>
        <sec>
          <title>Text Mining of Doctor Reviews</title>
          <p>Other previous papers have employed text-mining techniques to characterize trends in doctor reviews. Wallace et al designed a probabilistic generative model to capture latent sentiment across aspects of care [<xref ref-type="bibr" rid="ref10">10</xref>]. They showed that including their model’s output in regression models improves correlations with state-level quality measures. Hao and Zhang used topic modeling to extract common topics among 4 specialties in doctor reviews collected from Good Doctor Online [<xref ref-type="bibr" rid="ref11">11</xref>]. They identified 4 popular topics across the 4 specialties: the experience of finding doctors, technical skills or bedside manner, patient appreciation, and description of symptoms. Similarly, Hao et al used topic modeling to compare reviews between Good Doctor Online and the US doctor review website RateMDs [<xref ref-type="bibr" rid="ref12">12</xref>]. Although they found similar topics between the 2 sites, they also found differences that reflect differences between the 2 countries’ health care systems. These works differ from ours in that they use text-mining techniques to analyze doctor reviews in aggregate, while our goal is to identify specific topics in individual reviews.</p>
        </sec>
        <sec>
          <title>Customer Review Feature and Polarity Extraction</title>
          <p>As discussed earlier in the Introduction, these works operate on a more limited problem setting where the features are usually expressed by a single keyword, and the sentiment is strictly positive or negative. Hu and Liu extracted opinions of features in customer reviews with a 4-step algorithm [<xref ref-type="bibr" rid="ref2">2</xref>]. This algorithm consists of applying association rule mining to identify features, pruning uninteresting and redundant features, identifying infrequent features, and finally determining semantic orientation of each opinion sentence. Popescu and Etzioni created an unsupervised system for feature and opinion extraction from product reviews [<xref ref-type="bibr" rid="ref3">3</xref>]. After finding an explicit feature in a sentence, they applied manually crafted extraction rules to the sentence and extracted the heads of potential opinion phrases. This method only works when features are explicit.</p>
        </sec>
        <sec>
          <title>Sentiment Analysis With Dependency Trees</title>
          <p>There are number of existing works that use dependency trees or patterns for sentiment analysis. A key difference is that our method does not always capture sentiment but the various class labels (eg, short or long) for each class (eg, visit time). Hence, we cannot rely on external sentiment training data or on hard-coded sentiment rules, but we must use our own training data.</p>
          <p>Agarwal et al used several hand-crafted rules to extract dependency tree patterns from sentences [<xref ref-type="bibr" rid="ref23">23</xref>]. They combined this information with the semantic information present in the Massachusetts Institute of Technology Media Lab ConceptNet ontology and employed the extracted concepts to train a machine learning model to learn concept patterns in the text, which were then used to classify documents into positive and negative categories. An important difference from our method is that their dependency patterns generally consist of only 2 words in certain direct relations, while our patterns can contain several more in both direct and indirect relations.</p>
          <p>Wawer induced dependency patterns by using target-sentiment (T-S) pairs and recording the dependency paths between T and S words in the dependency tree of sentences in their corpus [<xref ref-type="bibr" rid="ref24">24</xref>]. These patterns were supplemented with conditional random fields to identify targets of opinion words. In contrast to our patterns, which can represent a subtree of 2 or more words, the patterns in this work are generated from the shortest path between the T and S words.</p>
          <p>Matsumoto et al’s work [<xref ref-type="bibr" rid="ref21">21</xref>] is the closest work to our proposed method, which we experimentally compare in the Results section. They extract frequent word subsequences and dependency subtrees from the training data and use them as features in an SVM sentiment classifier. Their patterns involve frequent words and only include direct relations, whereas our patterns involve high-information gain words and consider indirect relations. Pak and Paroubek follow a similar strategy of extracting dependency tree patterns based on predefined rules and using them as features for an SVM classifier [<xref ref-type="bibr" rid="ref25">25</xref>]. Matsumoto et al perform better on the common datasets they considered.</p>
        </sec>
        <sec>
          <title>Text Classification</title>
          <p>Machine learning algorithms are commonly used for text classification. Kennedy et al used a random forest classifier to identify harassment in posts from Twitter, Reddit, and The Guardian [<xref ref-type="bibr" rid="ref26">26</xref>]. Posts were represented through several features such as term frequency-inverse document frequency (TF-IDF) of unigrams, bigrams, and short character sequences; URL and hashtag token counts; source (whether the post was from Twitter); and sentiment polarity. Gambäck and Sikdar used a CNN to classify hate speech in Twitter posts [<xref ref-type="bibr" rid="ref27">27</xref>]. The CNN model was tested with multiple feature embeddings, including random values and word vectors generated with Word2Vec [<xref ref-type="bibr" rid="ref28">28</xref>]. Lix et al used an SVM classifier to determine patient’s alcohol use using text in electronic medical records [<xref ref-type="bibr" rid="ref29">29</xref>]. Unigrams and bigrams in these records were represented using a bag-of-words model.</p>
        </sec>
      </sec>
      <sec>
        <title>Problem Definition</title>
        <p>Given a text dataset with a set of classes <italic>c</italic><sub><italic>1</italic> </sub>, <italic>c</italic><sub><italic>2</italic> </sub>, …, <italic>c</italic><sub><italic>m</italic> </sub> that represent features previously identified by a domain expert, each class <italic>c</italic><sub><italic>i</italic> </sub> can take 3 values (polarity):</p>
        <list list-type="bullet">
          <list-item>
            <p><italic>c</italic><sub><italic>i</italic> </sub><sup><italic>0</italic> </sup>:Neutral. The sentence is not relevant to the class.</p>
          </list-item>
          <list-item>
            <p><italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup>, <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup>:Yes or no. Note that to avoid confusion, we do not say positive or negative, as for some classes such as <italic>visit time</italic> in doctor reviews, some patients prefer when their visit time is long and some prefer short. In this example, “Yes” could arbitrarily be mapped to <italic>long</italic> and “No” to <italic>short</italic>.</p>
          </list-item>
        </list>
        <p>As another example, class <italic>c</italic><sub><italic>8</italic> </sub> from the doctor review dataset is <italic>wait time</italic> or the time spent waiting to see a doctor. It has 3 possible values: <italic>c</italic><sub><italic>8</italic> </sub><sup><italic>x</italic> </sup>, <italic>c</italic><sub><italic>8</italic> </sub><sup><italic>y</italic> </sup>, or <italic>c</italic><sub><italic>8</italic> </sub><sup><italic>0</italic> </sup>. A sentence with class label <italic>c</italic><sub><italic>8</italic> </sub><sup><italic>x</italic> </sup> expresses the opinion that the time spent waiting to see the doctor is short. Examples of <italic>c</italic><sub><italic>8</italic> </sub><sup><italic>x</italic> </sup> include “I got right in to see Dr. Watkins,” “I’ve never waited more than five minutes to see him,” and “Wait times are very short once you arrive for an appointment.” A sentence with class label <italic>c</italic><sub><italic>8</italic> </sub><sup><italic>y</italic> </sup> expresses the opinion that the time spent waiting to see the doctor is long. Examples of <italic>c</italic><sub><italic>8</italic> </sub><sup><italic>y</italic> </sup> include “There is always over an hour wait even with an appointment,” “My biggest beef is with the wait time,” and “The wait time was terrible.” A sentence with class label <italic>c</italic><sub><italic>8</italic> </sub><sup><italic>0</italic> </sup> makes no mention of wait time. Such sentences may have <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> or <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup> labels from other classes, for example, “This doctor lacks affect and a caring bedside manner” and “His staff, especially his nurse Lucy, go far above what their job requires,” or they may instead not be relevant to any class, such as “Dr. Kochar had been my primary care physician for seven years” and “I’ll call to reschedule everything.” A sentence may take labels from more than one class.</p>
        <p>In this study, given a training set <italic>T</italic> of review sentences with class labels from classes <italic>c</italic><sub><italic>1</italic> </sub>, <italic>c</italic><sub><italic>2</italic> </sub>, …, <italic>c</italic><sub><italic>m</italic> </sub>, we build a classifier for each class <italic>c</italic><sub><italic>i</italic> </sub> to classify new sentences to one of the possible values of <italic>c</italic><sub><italic>i</italic> </sub>. Specifically, we build <italic>m</italic> training sets <italic>T</italic><sub><italic>i</italic> </sub> corresponding to each class. Each sentence in <italic>T</italic><sub><italic>i</italic> </sub> is assigned a class label <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup>, <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup>, or <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>0</italic> </sup>.</p>
      </sec>
    </sec>
    <sec sec-type="methods">
      <title>Methods</title>
      <sec>
        <title>Doctor Reviews Dataset</title>
        <p>We crawled Vitals [<xref ref-type="bibr" rid="ref30">30</xref>], a popular doctor review website, to collect 1,749,870 reviews. Each author read approximately 200 reviews and constructed a list of features. Afterward, through discussions, we merged these lists into a single list of 13 features, which we represent by classes as described in the problem definition (<xref ref-type="table" rid="table1">Table 1</xref>).</p>
        <p>To further filter these classes, we selected 600 random reviews to label. We labeled these reviews using WebAnno, a Web-based annotation tool [<xref ref-type="bibr" rid="ref31">31</xref>] (<xref ref-type="fig" rid="figure1">Figure 1</xref>). Specifically, each sentence was tagged (labeled) with 0 or more classes from <xref ref-type="table" rid="table1">Table 1</xref> by 2 of the authors. The union of these labels was used as the set of ground-truth class labels of each sentence; that is, if at least one of the labelers labeled a sentence as <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup>, that sentence is labeled <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> in our dataset.</p>
        <p>We found that some of these classes were underrepresented. For each underrepresented class, we used relevant keywords to find and label more reviews from the collected set of reviews, for example, <italic>wait</italic> for wait time and <italic>listen</italic> for information sharing, which resulted in a total of <italic>1017 reviews</italic> (417 in addition to the original 600). These 1017 reviews are our labeled dataset used in our experiments.</p>
        <table-wrap position="float" id="table1">
          <label>Table 1</label>
          <caption>
            <p>Description of initial opinion classes. For each class, a sentence that does not mention the class is labeled <italic>c</italic><sub><italic>i</italic> </sub><sup><italic/></sup>.</p>
          </caption>
          <table width="671" cellpadding="7" cellspacing="0" border="1" rules="groups" frame="hsides">
            <col width="141"/>
            <col width="238"/>
            <col width="249"/>
            <thead>
              <tr valign="top">
                <td>Class</td>
                <td><italic>c<sub>i</sub><sup>x</sup></italic></td>
                <td><italic>c<sub>i</sub><sup>y</sup></italic></td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td>Appointment scheduling</td>
                <td>Easy to schedule an appointment</td>
                <td>Hard to schedule an appointment</td>
              </tr>
              <tr valign="top">
                <td>Bedside manner</td>
                <td>Friendly and caring</td>
                <td>Rude and uncaring</td>
              </tr>
              <tr valign="top">
                <td>Complementary medicine</td>
                <td>Promotes complementary medicine</td>
                <td>No promotion of complementary medicine</td>
              </tr>
              <tr valign="top">
                <td>Cost</td>
                <td>Inexpensive and billing is simple</td>
                <td>Expensive and billing problems</td>
              </tr>
              <tr valign="top">
                <td>Information sharing</td>
                <td>Answers questions and good explanations</td>
                <td>Does not answer questions and poor explanations</td>
              </tr>
              <tr valign="top">
                <td>Joint decision making</td>
                <td>Treatment plan accounts for patient opinions</td>
                <td>Treatment plan made without patient input</td>
              </tr>
              <tr valign="top">
                <td>Medical skills</td>
                <td>Effective treatment and correct diagnoses</td>
                <td>Ineffective treatment and misdiagnoses conditions</td>
              </tr>
              <tr valign="top">
                <td>Psychological support</td>
                <td>Addresses stress and anxiety</td>
                <td>Does not address stress and anxiety</td>
              </tr>
              <tr valign="top">
                <td>Self-management</td>
                <td>Encourages active management of care</td>
                <td>Does not encourage self-management of care</td>
              </tr>
              <tr valign="top">
                <td>Staff</td>
                <td>Staff is friendly and helpful</td>
                <td>Staff is rude and unhelpful</td>
              </tr>
              <tr valign="top">
                <td>Technology</td>
                <td>Uses email, Web-based appointments, and electronic health records</td>
                <td>Does not use email and Web-based appointments</td>
              </tr>
              <tr valign="top">
                <td>Visit time</td>
                <td>Spends substantial time with patients</td>
                <td>Spends very little time with patients</td>
              </tr>
              <tr valign="top">
                <td>Wait time</td>
                <td>Short time spent waiting to see the doctor</td>
                <td>Long time spent waiting to see the doctor</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <fig id="figure1" position="float">
          <label>Figure 1</label>
          <caption>
            <p>Screenshot of WebAnno’s annotation interface with an annotated review.</p>
          </caption>
          <graphic xlink:href="jmir_v20i11e11141_fig1.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
        </fig>
        <table-wrap position="float" id="table2">
          <label>Table 2</label>
          <caption>
            <p>Frequency of each class label in the doctor review dataset.</p>
          </caption>
          <table width="671" cellpadding="8" cellspacing="0" border="1" rules="groups" frame="hsides">
            <col width="151"/>
            <col width="152"/>
            <col width="152"/>
            <col width="151"/>
            <thead>
              <tr valign="top">
                <td>Class</td>
                <td>Frequency of <italic>c<sub>i</sub><sup>x</sup></italic></td>
                <td>Frequency of <italic>c<sub>i</sub><sup>y</sup></italic></td>
                <td>Frequency of <italic>c<sub>i</sub><sup>0</sup></italic></td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td><italic>c</italic><sub><italic>1</italic> </sub>: appointment scheduling</td>
                <td>51</td>
                <td>84</td>
                <td>5750</td>
              </tr>
              <tr valign="top">
                <td><italic>c</italic><sub><italic>2</italic> </sub>: bedside manner</td>
                <td>569</td>
                <td>341</td>
                <td>4975</td>
              </tr>
              <tr valign="top">
                <td><italic>c</italic><sub><italic>3</italic> </sub>: cost</td>
                <td>25</td>
                <td>261</td>
                <td>5599</td>
              </tr>
              <tr valign="top">
                <td><italic>c</italic><sub><italic>4</italic> </sub>: information sharing</td>
                <td>316</td>
                <td>136</td>
                <td>5433</td>
              </tr>
              <tr valign="top">
                <td><italic>c</italic><sub><italic>5</italic> </sub>: medical skills</td>
                <td>481</td>
                <td>232</td>
                <td>5172</td>
              </tr>
              <tr valign="top">
                <td><italic>c</italic><sub><italic>6</italic> </sub>: staff</td>
                <td>262</td>
                <td>368</td>
                <td>5255</td>
              </tr>
              <tr valign="top">
                <td><italic>c</italic><sub><italic>7</italic> </sub>: visit time</td>
                <td>143</td>
                <td>79</td>
                <td>5663</td>
              </tr>
              <tr valign="top">
                <td><italic>c</italic><sub><italic>8</italic> </sub>: wait time</td>
                <td>48</td>
                <td>199</td>
                <td>5638</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p>Following this, we found that some classes such as complementary medicine and joint decision making were still underrepresented, which we define as having less than 2% of the dataset’s sentences labeled <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> or <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup>, so we omitted them from the dataset. The final dataset consists of 5885 sentences and 8 opinion classes. These classes and the frequency of each of their labels are shown in <xref ref-type="table" rid="table2">Table 2</xref>.</p>
      </sec>
      <sec>
        <title>Background on Dependency Trees</title>
        <p>In this section, we describe dependency trees and the semgrex tool that we used for defining matching patterns. Dependency trees capture the grammatical relations between words in a sentence and are produced using a dependency parser and a dependency language. In a dependency tree, each word in a sentence corresponds to a node in the tree and is in one or more syntactic relations between the word or node exactly one other word or node. A dependency tree is a triple <italic>T</italic> = 〈<italic>N</italic>, <italic>E</italic>, <italic>R</italic> 〉, where</p>
        <list list-type="bullet">
          <list-item>
            <p><italic>N</italic> is the set of nodes in <italic>T</italic> where each node <italic>n</italic> ∊ <italic>N</italic> is a tuple containing one or more string attributes describing a word in the sentence <italic>T</italic> was built from, such as <italic>word</italic>, <italic>lemma</italic>, or <italic>POS</italic> (part of speech)</p>
          </list-item>
          <list-item>
            <p><italic>E</italic> is the set of edges in <italic>T</italic> where each edge <italic>e</italic> ∊ <italic>E</italic> is a triple <italic>e</italic> = 〈<italic>n</italic><sub><italic>g</italic> </sub>, <italic>r</italic>, <italic>n</italic><sub><italic>d</italic> </sub>〉, where</p>
            <list list-type="bullet">
              <list-item>
                <p><italic>n</italic><sub><italic>g</italic> </sub> ∊ <italic>N</italic> is the governor or parent in relation <italic>r</italic></p>
              </list-item>
              <list-item>
                <p><italic>r</italic> is a syntactic relation between the words represented by <italic>n</italic><sub><italic>g</italic> </sub> and <italic>n</italic><sub><italic>d</italic> </sub></p>
              </list-item>
              <list-item>
                <p><italic>n</italic><sub><italic>d</italic> </sub> ∊ <italic>N</italic> is the dependent or child in relation <italic>r</italic></p>
              </list-item>
            </list>
          </list-item>
          <list-item>
            <p><italic>R</italic> ∊ <italic>N</italic> is the root node of <italic>T</italic></p>
          </list-item>
        </list>
        <p><xref ref-type="fig" rid="figure2">Figure 2</xref> shows a sample dependency tree for the sentence “there are never long wait times.” The string representation of this tree, including the parts of speech for its words, is as follows:</p>
        <p>[are/VBP expl&#62;there/EX neg&#62;never/RB nsubj&#62;[times/NNS compound&#62;[wait/NN amod&#62;long/JJ]]]</p>
        
        <fig id="figure2" position="float">
          <label>Figure 2</label>
          <caption>
            <p>A dependency tree for the sentence "There are never long wait times".</p>
          </caption>
          <graphic xlink:href="jmir_v20i11e11141_fig2.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
        </fig>
        
        <p>To match patterns against dependency trees, we used Stanford semgrex utility [<xref ref-type="bibr" rid="ref32">32</xref>]. In the following, we explain some of the basics of semgrex patterns that help the reader understand patterns presented in this study using descriptions and examples from the Chambers et al study [<xref ref-type="bibr" rid="ref32">32</xref>]. Semgrex patterns are composed of nodes and relations between them. Nodes are represented as <italic>{attr1:value1;attr2:value2;…}</italic> where attributes (attr) are regular strings such as <italic>word</italic>, <italic>lemma,</italic> and <italic>pos,</italic> and values can be strings or regular expressions marked by “/”s. For example, <italic>{lemma:run;pos:/VB.*/}</italic> means any verb form of the word <italic>run</italic>. Similar to “.” in regular expressions, <italic>{}</italic> means any node in the graph. Relations in a semgrex have 2 parts: the relation symbol, which can be either <italic>&#60;</italic> or <italic>&#62;</italic> and optionally the relation type (ie, <italic>nsubj</italic> and <italic>dobj</italic>). In general, <italic>A&#60;reln B</italic> means <italic>A</italic> is the dependent of a relation (<italic>reln)</italic> with <italic>B</italic>, whereas <italic>A&#62;reln B</italic> means <italic>A</italic> is the governor of a <italic>reln</italic> with <italic>B</italic>. Indirect relations can be specified by the symbols <italic>&#62;&#62;</italic> and <italic>&#60;&#60;</italic>. For example, <italic>A&#60;&#60;reln B</italic> means there is some node in a dep-&#62;gov chain from <italic>A</italic> that is the dependent of a <italic>reln</italic> with <italic>B</italic>. Relations can be strung together with or without using the symbol <italic>&#38;</italic>. All relations are relative to first node in string. For example, <italic>A&#62;nsubj B&#62;dobj D</italic> means <italic>A</italic> is a node that is the governor of both an <italic>nsubj</italic> relation with <italic>B</italic> and a <italic>dobj</italic> relation with <italic>D</italic>. Nodes can be grouped with parentheses. For example, <italic>A&#62;nsubj (B&#62;dobj D)</italic> means <italic>A</italic> is the governor of an <italic>nsubj</italic> relation with <italic>B</italic>, whereas <italic>B</italic> is the governor of a <italic>dobj</italic> relation with <italic>D</italic>. A sample pattern that matches the tree in <xref ref-type="fig" rid="figure2">Figure 2</xref> can be:</p>
        <disp-formula>{} &#62;neg {} &#62;&#62; ({word:wait} &#62; {word:long})</disp-formula>
        <p>Using the Stanford CoreNLP Java library [<xref ref-type="bibr" rid="ref33">33</xref>], our proposed classifier builds a dependency tree from a given sentence and determines whether any of a list of semgrex patterns matches any part of the tree.</p>
      </sec>
      <sec>
        <title>Proposed Dependency Tree–Based Classifier</title>
        <p>Our DTC algorithm is trained on a labeled dataset of sentences as described in the Problem Definition section. On a high level, given a sentence in training dataset <italic>T</italic>, the classifier generates a dependency tree using the Stanford Neural Network Dependency Parser [<xref ref-type="bibr" rid="ref34">34</xref>] and extracts semgrex patterns from the dependency tree. These patterns are assigned the same class as the training sentence. When classifying a new sentence, the classifier generates the sentence’s dependency tree and assigns a class label to the sentence based on which patterns from the training set match the dependency tree.</p>
        <p>In more detail, the classifier’s training algorithm generates a sorted list of semgrex patterns, each with an associated class label, from a training dataset <italic>T</italic> and integer parameters <italic>n</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup>, <italic>n</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup>, and <italic>m</italic>. Parameters <italic>n</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> and <italic>n</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup> are the maximum number of terms (words or phrases) that will be used to generate patterns of classes <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> and <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup>, respectively. In this study, we only use words, as dependency trees capture relations between words rather than phrases.</p>
        
        <p>The pattern extraction algorithm described in the Pattern Extraction section below receives as input 2 sets <italic>W</italic><sup><italic>x</italic> </sup> and <italic>W</italic><sup><italic>y</italic> </sup> of high-information gain words, for the “Yes” (<italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup>) and “No” (<italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup>) class labels, respectively, from where we pick nodes for the generated patterns. The intuition is that high-information gain words are more likely to allow a pattern to differentiate between the class labels. Considering all words would be computationally too expensive, and it does not offer any significant advantage as we have seen in our experiments. The information gain for <italic>W</italic><sup><italic>x</italic> </sup> is determined by a logical copy of training dataset <italic>T</italic> in which class labels other than <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> are given a new class label <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup><italic>'</italic>, as the words in <italic>W</italic><sup><italic>x</italic> </sup> will be used to identify sentences of class <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup>. This process is repeated for <italic>W</italic><sup><italic>y</italic> </sup>. Parameter <italic>m</italic> is the maximum number of these selected words that can be in a single pattern.</p>
        <p>The final list of (semgrex pattern <italic>p</italic> and class label <italic>c'</italic>) pairs is sorted by the weighted accuracy of the pair on the training data, which we define below.</p>
        <graphic xlink:href="jmir_v20i11e11141_fig6.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
        <p>We define <italic>Accuracy</italic><sub><italic>c</italic> </sub>(<italic>p</italic>, <italic>T</italic>) as the ratio of training instances in <italic>T</italic> with class label <italic>c</italic> that were correctly handled by pattern <italic>p</italic>. Pattern <italic>p</italic>, which was paired with class label <italic>'</italic>, is correct if it matches an instance with class label <italic>c'</italic> or it does not match an instance without class label <italic>c'</italic>, but it is incorrect if it matches an instance without class label <italic>c'</italic> or it does not match an instance with class label <italic>c'</italic>. &#124;<italic>c</italic><sub><italic>i</italic> </sub>&#124; is the number of class labels in class <italic>c</italic><sub><italic>i</italic> </sub>, which is 3 for all of the classes in this study. Intuitively, weighted accuracy treats all class labels with equal importance regardless of their frequency, so patterns that perform well on sentences of often low-frequency class labels <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> and <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup> are assigned higher rank than they would otherwise. The training algorithm is shown in <xref ref-type="boxed-text" rid="box1">Textbox 1</xref>.</p>
        
        
        
        
        <p>Given a to-be-classified sentence, we compute its dependency tree <italic>t</italic> and find the highest ranked (pattern <italic>p</italic> and class label <italic>c</italic>) pair where <italic>p</italic> matches <italic>t</italic>. Then the sentence is classified as <italic>c</italic>. If no pattern matches the sentence, we provide 2 possibilities: the sentence can be classified as the most common class label in <italic>T</italic> or it can be classified by a <italic>backup</italic> classifier trained on <italic>T</italic>.</p>
        <sec>
          <title>Parameters Setting</title>
          <p>In all experiments, we use <italic>n</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup>=<italic>n</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup>=30, as intuitively it is unlikely that there are more than 30 words for a class that can participate in a discriminative semgrex pattern. We set <italic>m</italic> to 4 for all experiments, because for <italic>m</italic>&#62;4, it becomes too computationally expensive to compute all patterns.</p>
        </sec>
        <sec>
          <title>Pattern Extraction in the Dependency Tree Classifier Algorithm</title>
          <sec>
            <title>Overview</title>
            <p>Given a dependency tree, we now describe how to extract patterns. Note that we repeat the pattern extraction for the “Yes” and “No” class labels, using <italic>W</italic><sup><italic>x</italic> </sup> and <italic>W</italic><sup><italic>y</italic> </sup>, respectively (<italic>W</italic> in this section refers to <italic>W</italic><sup><italic>x</italic> </sup> or <italic>W</italic><sup><italic>y</italic> </sup>). We extract semgrex patterns from a dependency tree <italic>t</italic> with class label <italic>c</italic> using a set of high-information gain words <italic>W</italic> and a maximum number of words <italic>m</italic>. The algorithm returns a set of patterns extracted from <italic>t</italic> made from up to <italic>m</italic> words in <italic>W</italic>.</p>
            <p>The rationale for only working with high-information gain words is that we want to generate high-information gain patterns. We also want to preserve negations as they have a great impact to the accuracy of the patterns. If a low information gain word is negated, we replace it by a wildcard (*), which we found to be a good balance for these 2 goals. Each pattern <italic>p</italic> is associated with <italic>c</italic> such that a new sentence that matches <italic>p</italic> is classified as <italic>c</italic>. <xref ref-type="boxed-text" rid="box2">Textbox 2</xref> describes the pattern extraction algorithm.</p>
            
            <boxed-text id="box1" position="float">
          <title>The dependency tree classifier’s training algorithm.</title>
          
          <list list-type="order">
          	<list-item>
            	<p>train(<italic>T</italic>, <italic>n</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup>, <italic>n</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup>, <italic>m</italic>):</p>
            </list-item>
          	<list-item>
            	<p>   <italic>P</italic>=list of semgrex patterns used for classification, initially empty</p>
            </list-item>
          	<list-item>
            	<p>   for each class label <italic>c</italic> in {<italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup>, <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup>}:</p>
            </list-item>
          	<list-item>
            	<p>      <italic>D</italic>=set of dependency trees for sentences in <italic>T</italic> with class label <italic>c</italic></p>
            </list-item>
          	<list-item>
            	<p>      <italic>T</italic><sub><italic>c</italic> </sub>=copy of <italic>T</italic> with all non-<italic>c</italic> class labels given a new class label <italic>c'</italic></p>
            </list-item>
          	<list-item>
            	<p>      <italic>W</italic>=set of top <italic>n</italic><sub><italic>c</italic></sub> words <italic>w</italic> in <italic>T</italic><sub><italic>c</italic> </sub> by information gain</p>
            </list-item>
          	<list-item>
            	<p>      for each tree <italic>t</italic> in <italic>D</italic>:</p>
            </list-item>
          	<list-item>
            	<p>         add all semgrex patterns from extract(<italic>W</italic>, <italic>t</italic>, <italic>c</italic>, <italic>m</italic>) to <italic>P</italic></p>
            </list-item>
          	<list-item>
            	<p>   test each pattern in <italic>P</italic> on <italic>T</italic></p>
            </list-item>
          	<list-item>
            	<p>   sort <italic>P</italic> by the weighted accuracy of each semgrex pattern tested on <italic>T</italic> in descending order</p>
            </list-item>
          	<list-item>
            	<p>   return <italic>P</italic></p>
            </list-item>
		</list>
        
        </boxed-text>
          
            <boxed-text id="box2" position="float">
              <title>Pattern extraction algorithm.</title>
              
              <list list-type="order">
          	<list-item>
            	<p>extract(<italic>W</italic>, <italic>t</italic>, <italic>c</italic>, <italic>m</italic>):</p>
            </list-item>
          	<list-item>
            	<p>   <italic>P</italic>=set of patterns, initially empty</p>
            </list-item>
          	<list-item>
            	<p>   <italic>S</italic>=stack of (tree, word set) pairs, initially empty</p>
            </list-item>
          	<list-item>
            	<p>   for each combination <italic>C</italic> of words in <italic>W</italic> with &#124;<italic>C</italic> &#124;==min(&#124;<italic>W</italic>&#124;, <italic>m</italic>)</p>
            </list-item>
          	<list-item>
            	<p>      <italic>S</italic>.push((<italic>t</italic>, <italic>C</italic>))</p>
            </list-item>
          	<list-item>
            	<p>   while <italic>S</italic> is not empty:</p>
            </list-item>
          	<list-item>
            	<p>      (<italic>t'</italic>, <italic>C</italic>)=S.pop()</p>
            </list-item>
          	<list-item>
            	<p>      <italic>t'</italic>=prune(<italic>t'</italic>, <italic>C</italic>)</p>
            </list-item>
          	<list-item>
            	<p>      <italic>n</italic>=root of <italic>t'</italic></p>
            </list-item>
          	<list-item>
            	<p>      while <italic>n</italic>==* and <italic>n</italic> has exactly 1 child:</p>
            </list-item>
          	<list-item>
            	<p>         <italic>n</italic>=child of <italic>n</italic></p>
            </list-item>
          	<list-item>
            	<p>      <italic>t'</italic>=subtree of <italic>t'</italic> with root <italic>n</italic></p>
            </list-item>
          	<list-item>
            	<p>      remove each “*” node <italic>n'</italic> in <italic>t'</italic> with exactly 1 child <italic>c'</italic>, and make the parent of <italic>n'</italic> the parent of <italic>c'</italic> with an <italic>indirect</italic> relation</p>
            </list-item>
          	<list-item>
            	<p>      add (pattern(<italic>t'</italic>), <italic>c</italic>) to <italic>P</italic></p>
            </list-item>
          	<list-item>
            	<p>      for each combination <italic>C'</italic> of non-* words in <italic>t'</italic> with &#124;<italic>C'</italic>&#124; &#62; 1:</p>
            </list-item>
          	<list-item>
            	<p>         <italic>S</italic>.push((<italic>t'</italic>, <italic>C'</italic>))</p>
            </list-item>
          	<list-item>
            	<p>   return <italic>P</italic></p>
            </list-item>
		</list>
              
              <p/>
              <p/>
              
              <list list-type="order">
          	<list-item>
            	<p>prune(<italic>t</italic>, <italic>W</italic>):</p>
            </list-item>
          	<list-item>
            	<p>   <italic>t'</italic>=copy of <italic>t</italic></p>
            </list-item>
          	<list-item>
            	<p>   recursively prune from <italic>t'</italic> leaves that do not start with any word in <italic>W</italic> and are not in a negation relation</p>
            </list-item>
          	<list-item>
            	<p>   for each node <italic>n</italic> in <italic>t'</italic>:</p>
            </list-item>
          	<list-item>
            	<p>      if <italic>n</italic> does not start with any word in <italic>W</italic>:</p>
            </list-item>
          	<list-item>
            	<p>         <italic>n</italic>=*</p>
            </list-item>
          	<list-item>
            	<p>   return <italic>t'</italic></p>
            </list-item>
		</list>
            </boxed-text>
            
            </sec>
          <sec>
            <title>Details</title>
            <p>The algorithm first creates a copy <italic>t'</italic> of <italic>t</italic> for each combination <italic>C</italic> of <italic>m</italic> words in <italic>W</italic> and pushes each (<italic>t'</italic>, <italic>C</italic>) pair onto a stack. For each (<italic>t'</italic>, <italic>C</italic>) popped from the stack, we execute the following steps:</p>
            <list list-type="order">
              <list-item>
                <p>Create initial subtree: Prune <italic>t'</italic> to keep only words in <italic>C</italic>, negations, and intermediate “*” nodes connecting them.</p>
              </list-item>
              <list-item>
                <p>Remove unimportant nodes: Eliminate “*” nodes from <italic>t'</italic> starting with the root if it is a “*” node and has exactly 1 child (the child becomes the new root of <italic>t'</italic> and this repeats until the root no longer meets these criteria). Subsequently, remove each “*” node <italic>n'</italic> in <italic>t'</italic> with exactly 1 child and add an indirect relation edge from the parent of <italic>n'</italic> to the child of <italic>n'.</italic></p>
              </list-item>
              <list-item>
                <p>Add subpatterns: If (<italic>pattern</italic>(<italic>t'</italic>), <italic>c</italic>) is not already in <italic>P</italic>, add (<italic>pattern</italic>(<italic>t'</italic>), <italic>c</italic>) to the set of patterns <italic>P</italic>, and then push(<italic>t'</italic>, <italic>c'</italic>) onto the stack for each combination <italic>C'</italic> of 2 or more non-* words in <italic>t'</italic>.</p>
              </list-item>
            </list>
            <p>The algorithm then moves on to the next item on the stack. Once the stack is empty, we return the resulting set of patterns and their associated class labels.</p>
            <p>The <italic>prune</italic>(<italic>t</italic>, <italic>w</italic>) procedure recursively removes leaf nodes that do not start with any word in <italic>W</italic> and are not in a negation relation with their parents. Intermediate nodes that connect the remaining nodes and do not start with any word in <italic>W</italic> are replaced by *. The pattern(<italic>t</italic>) procedure converts a dependency tree <italic>t</italic> to its semgrex format representation. Each “*” node is represented by an empty node <italic>{}</italic>, and most relations are represented by the generic <italic>&#62;</italic> or <italic>&#62;&#62;</italic> relations (for direct and indirect relations, respectively), which match any type of relation. An exception to this is the negation relation, which is preserved in the semgrex pattern as the <italic>&#62;neg</italic> token.</p>
            
          </sec>
          <sec>
            <title>Example</title>
            <p>Consider a sentence from the doctor review dataset class <italic>c</italic><sub><italic>8</italic> </sub> (wait time), “I arrived to my appointment on time and waited in his waiting room for over an hour,” which has class label <italic>c</italic><sub><italic>8</italic> </sub><sup><italic>y</italic> </sup> (long wait). The dependency tree generated from this sentence is shown in <xref ref-type="fig" rid="figure3">Figure 3</xref>.</p>
            
            <fig id="figure3" position="float">
              <label>Figure 3</label>
              <caption>
                <p>Dependency tree for the sentence "I arrived to my appointment on time and waited in his waiting room for over an hour".</p>
              </caption>
              <graphic xlink:href="jmir_v20i11e11141_fig4.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
            </fig>
            
            <p>Among the patterns extracted from this tree are:</p>
            <list list-type="order">
              <list-item>
                <p>{} &#62; {word:/time.*/} &#62;&#62; {word:/hour.*/}</p>
              </list-item>
              <list-item>
                <p>{word:/arrived.*/} &#62; {word:/time.*/}</p>
              </list-item>
              <list-item>
                <p>{} &#62; {word:/time.*/} &#62; ({} &#62; {word:/room.*/} &#62; {word:/hour.*/})</p>
              </list-item>
              <list-item>
                <p>{word:/arrived.*/} &#62;&#62; {word:/hour.*/}</p>
              </list-item>
            </list>
            <p>Pattern 1 means that some node has a direct descendant <italic>time</italic> and an indirect descendant <italic>hour</italic>. Pattern 2 means that <italic>time</italic> is a direct descendant of <italic>arrived</italic>. Pattern 3 means that some node has 2 direct descendants; 1 is <italic>time</italic> and the other is some other node that has direct descendants <italic>room</italic> and <italic>hour</italic>. Finally, pattern 4 means that <italic>hour</italic> is an indirect descendant of <italic>arrived</italic>.</p>
            
          </sec>
        </sec>
      </sec>
    </sec>
    <sec sec-type="results">
      <title>Results</title>
      <sec>
        <title>Classifiers Employed</title>
        <p>We consider 3 types of classifiers:</p>
        <list list-type="order">
          <list-item>
            <p><italic>Statistical bag-of-words classifiers</italic>, which view the documents as bags of keywords:</p> 
            
            <list list-type="bullet">
          	<list-item>
            	<p>Random Forests (<italic>RF)</italic>: RF, as implemented in Scikit-learn by Pedregosa et al [<xref ref-type="bibr" rid="ref35">35</xref>]. Documents are represented with TF-IDF using n grams of 1 to 3 words, a minimum document frequency of 3%, up to 1000 features, stemming, and omission of stop words. The classifier uses 2000 trees. All other parameters are given their default values from [<xref ref-type="bibr" rid="ref35">35</xref>].</p>
            </list-item>
          	<list-item>
            	<p><italic>SVM</italic>: C-support vector classifier as implemented in Scikit-learn by Pedregosa et al [<xref ref-type="bibr" rid="ref35">35</xref>], which is based on the implementation from the study by Chang and Lin [<xref ref-type="bibr" rid="ref36">36</xref>]. Documents are represented with TF-IDF using the same parameters as with random forest. The parameters for the classifier are given their default values from Scikit-learn by Pedregosa et al [<xref ref-type="bibr" rid="ref35">35</xref>].</p>
            </list-item>
		</list>
        
          </list-item>
          <list-item>
            <p><italic>Deep learning classifiers:</italic></p> 
            
            <list list-type="bullet">
          	<list-item>
            	<p><italic>CNN</italic> or <italic>CNN-W</italic> (CNN with Word2Vec): We use 2 variants of the CNN implementation by Britz [<xref ref-type="bibr" rid="ref37">37</xref>]. Both use the default parameters. The first variant is initialized with a random uniform distribution, as in the CNN implementation by Britz [<xref ref-type="bibr" rid="ref37">37</xref>]. The second is initialized with values from the Word2Vec model implementation from Gensim by Rehurek and Sojka [<xref ref-type="bibr" rid="ref38">38</xref>].</p>
            </list-item>
          	<list-item>
            	<p><italic>D2V-NN</italic> (Doc2Vec Nearest Neighbor): A nearest neighbor classifier that uses the Doc2Vec model [<xref ref-type="bibr" rid="ref39">39</xref>] implementation from Gensim by Rehurek and Sojka [<xref ref-type="bibr" rid="ref38">38</xref>]. Documents are converted to paragraph vectors and classified according to the nearest neighbor using cosine similarity as the distance function.</p>
            </list-item>
		</list>
        
            <p/>
            <p/>
            <p>For CNN-W and D2V-NN, the Word2Vec and Doc2Vec models, respectively, are trained on an unlabeled set of 8,977,322 sentences from the collected doctor reviews that were not used to create the labeled dataset.</p>
          </list-item>
          <list-item>
            <p><italic>NLP classifiers</italic>, which exploit the dependency trees of a review’s sentences:</p>
            <list list-type="bullet">
          	<list-item>
            	<p><italic>Matsumoto</italic>: We implemented the method described in the study by Matsumoto et al [<xref ref-type="bibr" rid="ref21">21</xref>] using the best-performing combination of features from their experiment using the Internet Movie Database dataset from the study of Pang and Lee [<xref ref-type="bibr" rid="ref40">40</xref>], that is, unigrams, bigrams, frequent subsequences, and lemmatized frequent subtrees. For POS tagging before the step in frequent subsequence generation that splits sentences into clauses, our implementation uses the Stanford parser [<xref ref-type="bibr" rid="ref41">41</xref>]. We use the dependency parser by Chen and Manning [<xref ref-type="bibr" rid="ref34">34</xref>] to generate dependency trees for frequent subtree generation. For the SVM, we use the implementation from Pedregosa et al’s Scikit-learn with a linear kernel and all other parameters given their default values from [<xref ref-type="bibr" rid="ref35">35</xref>]. All parameters related to frequent subsequence and subtree generation are the same as described in the study by Matsumoto et al [<xref ref-type="bibr" rid="ref21">21</xref>].</p>
            </list-item>
            <list-item><p><italic>DTC</italic>: As described in the Methods section.</p></list-item>
		</list>
        
          </list-item>
        </list>
      </sec>
      <sec>
        <title>Variants of Dependency Tree Classifier</title>
        <p>We consider the following variants of our DTC text classifier:</p>
        <p><italic>DTC</italic>: as described above, with sentences not matching any pattern classified as the most common class label in the training data.</p>
        <p><italic>DTC</italic><sub><italic>RF</italic> </sub>: Sentences not matching any pattern are classified by a random forests classifier trained on the training data for each class.</p>
        <p><italic>DTC</italic><sub><italic>CNN-W</italic> </sub>: Sentences not matching any pattern are classified by a CNN-W text classifier (as defined above) trained on the training data for each class.</p>
      </sec>
      <sec>
        <title>Experiments</title>
        <p>We performed experiments with the classifiers on each class of the doctor review dataset using 10-fold cross validation. To evaluate their performance, we use weighted accuracy. For a trained classifier <italic>C</italic> and dataset <italic>D</italic> of class <italic>c</italic><sub><italic>i</italic> </sub>, we define this as shown below.</p>
        <graphic xlink:href="jmir_v20i11e11141_fig5.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
        <p><italic>Accuracy</italic><sub><italic>c</italic> </sub>(<italic>C</italic>, <italic>D</italic>) is the ratio of sentences in <italic>D</italic> with class label <italic>c</italic> that were classified correctly by <italic>C</italic>. As before, &#124;<italic>c</italic><sub><italic>i</italic> </sub>&#124; is 3, the number of class labels in class <italic>c</italic><sub><italic>i</italic> </sub>. We use weighted accuracy in our experiments as it places more importance on less frequent class labels, whereas regular accuracy is often above 90% because of the high number of instances labeled <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>0</italic> </sup> for each <italic>c</italic><sub><italic>i</italic> </sub>.</p>
        <p>The results of our experiments are shown below. In <xref ref-type="table" rid="table3">Table 3</xref>, we see that DTC<sub>CNN-W</sub> has better weighted accuracy than at least 4 baselines in each class. On average, it performs 2.19% better than the second-best method, the Matsumoto classifier ([57.05%-55.83%]/55.83%=2.19%). We also observe that both the deep learning classifiers (CNN, CNN-W, and D2V-NN) and NLP classifiers (Matsumoto and DTC variants) tend to perform better than the bag-of-words classifiers (RF and SVM). This is expected as the deep learning and NLP classifiers take advantage of information in sentences such as word order and syntactic structure that cannot be expressed by a bag-of-words vector.</p>
        
        <p>Next, we further examine the performance of the top 3 classifiers, CNN-W, Matsumoto, and DTC<sub>CNN-W</sub>. <xref ref-type="table" rid="table4">Table 4</xref> shows the ratio of review sentences with class label <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> or <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup> that were classified correctly in our experiments. Note that this is the <italic>Accuracy</italic><sub><italic>c</italic> </sub>(<italic>C</italic>, <italic>D</italic>) measure described above. DTC<sub>CNN-W</sub> generally outperforms the other classifiers with this measure; notable exceptions are <italic>c</italic><sub><italic>6</italic> </sub><sup><italic>y</italic> </sup> (bad staff), <italic>c</italic><sub><italic>7</italic> </sub><sup><italic>x</italic> </sup> (long visit time), and <italic>c</italic><sub><italic>8</italic> </sub><sup><italic>y</italic> </sup> (long wait time), where substantial numbers of sentences with these class labels were misclassified with the opposite label: 26.98% of <italic>c</italic><sub><italic>6</italic> </sub><sup><italic>y</italic> </sup> sentences were misclassified as <italic>c</italic><sub><italic>6</italic> </sub><sup><italic>x</italic> </sup> (good staff), 38.03% of <italic>c</italic><sub><italic>7</italic> </sub><sup><italic>x</italic> </sup> sentences were misclassified as <italic>c</italic><sub><italic>7</italic> </sub><sup><italic>y</italic> </sup> (short visit time), and 43.22% of <italic>c</italic><sub><italic>8</italic> </sub><sup><italic>y</italic> </sup> sentences were misclassified as <italic>c</italic><sub><italic>8</italic> </sub><sup><italic>x</italic> </sup> (short wait time). Finally, <xref ref-type="table" rid="table5">Table 5</xref> shows the ratio of review sentences classified as <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> or <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup> (ie, a classifier predicted their class labels as <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> or <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup>) that were classified correctly. By this measure, DTC<sub>CNN-W</sub> performs poorly compared with CNN-W and Matsumoto. Although the DTC algorithm’s semgrex patterns classify more sentences as <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> or <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup>, many of these classifications are incorrect. In the next section, we discuss reasons for some of these misclassifications.</p>
        <table-wrap position="float" id="table3">
          <label>Table 3</label>
          <caption>
            <p>Weighted accuracy of classifiers on doctor review dataset.</p>
          </caption>
          <table width="672" cellpadding="7" cellspacing="0" border="1" rules="groups" frame="hsides">
            <col width="66"/>
            <col width="52"/>
            <col width="51"/>
            <col width="52"/>
            <col width="51"/>
            <col width="51"/>
            <col width="51"/>
            <col width="51"/>
            <col width="51"/>
            <col width="51"/>
            <thead>
              <tr valign="top">
                <td>Classifier</td>
                <td><italic>c<sub>1</sub></italic> (%)</td>
                <td><italic>c<sub>2</sub></italic> (%)</td>
                <td><italic>c<sub>3</sub></italic> (%)</td>
                <td><italic>c<sub>4</sub></italic> (%)</td>
                <td><italic>c<sub>5</sub></italic> (%)</td>
                <td><italic>c<sub>6</sub></italic> (%)</td>
                <td><italic>c<sub>7</sub></italic> (%)</td>
                <td><italic>c<sub>8</sub></italic> (%)</td>
                <td>Average (%)</td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td>CNN<sup>a</sup></td>
                <td>42.06</td>
                <td>56.69</td>
                <td>42.75</td>
                <td>51.45</td>
                <td>47.81</td>
                <td>61.42</td>
                <td>55.38</td>
                <td>60.93</td>
                <td>52.31</td>
              </tr>
              <tr valign="top">
                <td>CNN-W<sup>b</sup></td>
                <td>49.89</td>
                <td><italic>59.68<sup>c</sup></italic></td>
                <td>44.30</td>
                <td>53.53</td>
                <td>49.71</td>
                <td>64.04</td>
                <td>54.29</td>
                <td>63.51</td>
                <td>54.87</td>
              </tr>
              <tr valign="top">
                <td>D2V-NN<sup>d</sup></td>
                <td>38.83</td>
                <td>45.16</td>
                <td>38.00</td>
                <td>42.25</td>
                <td>41.44</td>
                <td>42.19</td>
                <td>41.04</td>
                <td>43.64</td>
                <td>41.57</td>
              </tr>
              <tr valign="top">
                <td>Matsumoto</td>
                <td>45.76</td>
                <td>59.63</td>
                <td>45.89</td>
                <td>53.40</td>
                <td>49.89</td>
                <td><italic>66.45</italic></td>
                <td>57.24</td>
                <td><italic>68.36</italic></td>
                <td>55.83</td>
              </tr>
              <tr valign="top">
                <td>RF<sup>e</sup></td>
                <td>40.78</td>
                <td>42.00</td>
                <td>34.76</td>
                <td>37.29</td>
                <td>41.62</td>
                <td>52.88</td>
                <td>45.65</td>
                <td>51.66</td>
                <td>43.33</td>
              </tr>
              <tr valign="top">
                <td>SVM<sup>f</sup></td>
                <td>33.33</td>
                <td>35.77</td>
                <td>33.33</td>
                <td>33.33</td>
                <td>33.33</td>
                <td>48.94</td>
                <td>33.33</td>
                <td>48.07</td>
                <td>37.43</td>
              </tr>
              <tr valign="top">
                <td>DTC<sup>g</sup></td>
                <td>51.72</td>
                <td>50.48</td>
                <td>41.27</td>
                <td>47.23</td>
                <td>38.49</td>
                <td>54.31</td>
                <td><italic>60.90</italic></td>
                <td>65.91</td>
                <td>51.29</td>
              </tr>
              <tr valign="top">
                <td>DTC<sub>RF</sub></td>
                <td><italic>54.00</italic></td>
                <td>46.64</td>
                <td>39.19</td>
                <td>47.29</td>
                <td>40.20</td>
                <td>56.15</td>
                <td>60.57</td>
                <td>58.05</td>
                <td>50.26</td>
              </tr>
              <tr valign="top">
                <td>DTC<sub>CNN-W</sub></td>
                <td>53.89</td>
                <td>59.37</td>
                <td><italic>48.66</italic></td>
                <td><italic>57.98</italic></td>
                <td><italic>50.77</italic></td>
                <td>61.43</td>
                <td>56.63</td>
                <td>67.67</td>
                <td><italic>57.05</italic></td>
              </tr>
            </tbody>
          </table>
          <table-wrap-foot>
            <fn id="table3fn1">
              <p><sup>a</sup>CNN: Convolutional Neural Network.</p>
            </fn>
            <fn id="table3fn2">
              <p><sup>b</sup>CNN-W: Convolutional Neural Network with Word2Vec.</p>
            </fn>
            <fn id="table3fn3">
              <p><sup>c</sup>The highest value for each <italic>c</italic><sub><italic>i</italic> </sub> is italicized for emphasis.</p>
            </fn>
            <fn id="table3fn4">
              <p><sup>d</sup>D2V-NN: Doc2Vec Nearest Neighbor.</p>
            </fn>
            <fn id="table3fn5">
              <p><sup>e</sup>RF: Random Forests.</p>
            </fn>
            <fn id="table3fn6">
              <p><sup>f</sup>SVM: Support Vector Machine.</p>
            </fn>
            <fn id="table3fn7">
              <p><sup>g</sup>DTC: dependency tree classifier.</p>
            </fn>
          </table-wrap-foot>
        </table-wrap>
        
        <table-wrap position="float" id="table4">
          <label>Table 4</label>
          <caption>
            <p>Per-label accuracy of top 3 classifiers on doctor review dataset for each <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> and <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup>.</p>
          </caption>
          <table width="1000" cellpadding="5" cellspacing="0" border="1" rules="groups" frame="hsides">
            <col width="30"/>
            <col width="170"/>
            <col width="100"/>
            <col width="100"/>
            <col width="100"/>
            <col width="100"/>
            <col width="100"/>
            <col width="100"/>
            <col width="100"/>
            <col width="100"/>
            <thead>
              <tr valign="top">
                <td colspan="2">Label and classifier</td>
                <td><italic>c<sub>1</sub></italic> (%)</td>
                <td><italic>c<sub>2</sub></italic> (%)</td>
                <td><italic>c<sub>3</sub></italic> (%)</td>
                <td><italic>c<sub>4</sub></italic> (%)</td>
                <td><italic>c<sub>5</sub></italic> (%)</td>
                <td><italic>c<sub>6</sub></italic> (%)</td>
                <td><italic>c<sub>7</sub></italic> (%)</td>
                <td><italic>c<sub>8</sub></italic> (%)</td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td colspan="10"><bold><italic>c<sub>1</sub><sup>x</sup></italic></bold></td>
                </tr>
              <tr valign="top">
                <td><break/></td>
                <td>CNN-W<sup>a</sup></td>
                <td>31.37%</td>
                <td>57.22%</td>
                <td>0.00%</td>
                <td>47.62%</td>
                <td>40.54%</td>
                <td>60.69%</td>
                <td>45.07%</td>
                <td>40.85%</td>
              </tr>
              <tr valign="top">
                <td><break/></td>
                <td>Matsumoto</td>
                <td>13.73%</td>
                <td>57.04%</td>
                <td><italic>4.00%</italic><sup>b</sup></td>
                <td>48.57%</td>
                <td>41.16%</td>
                <td>59.16%</td>
                <td><italic>52.11%</italic></td>
                <td>47.89%</td>
              </tr>
              <tr valign="top">
                <td><break/></td>
                <td>DTC<sup>c</sup><sub>CNN-W</sub></td>
                <td><italic>33.33%</italic></td>
                <td><italic>59.69%</italic></td>
                <td><italic>4.00%</italic></td>
                <td><italic>51.11%</italic></td>
                <td><italic>48.02%</italic></td>
                <td><italic>64.89%</italic></td>
                <td>39.44%</td>
                <td><italic>71.83%</italic></td>
              </tr>
              <tr valign="top">
                <td colspan="10"><bold><italic>c<sub>1</sub><sup>y</sup></italic></bold></td>
              </tr>
              <tr valign="top">
                <td><break/></td>
                <td>CNN-W</td>
                <td>19.05%</td>
                <td>27.35%</td>
                <td>34.48%</td>
                <td>15.44%</td>
                <td>13.36%</td>
                <td>35.42%</td>
                <td>18.99%</td>
                <td>50.75%</td>
              </tr>
              <tr valign="top">
                <td><break/></td>
                <td>Matsumoto</td>
                <td>23.81%</td>
                <td>27.65%</td>
                <td>35.00%</td>
                <td>13.24%</td>
                <td>12.93%</td>
                <td><italic>43.32%</italic></td>
                <td>20.25%</td>
                <td><italic>57.79%</italic></td>
              </tr>
              <tr valign="top">
                <td><break/></td>
                <td>DTC<sub>CNN-W</sub></td>
                <td><italic>33.33%</italic></td>
                <td><italic>48.24%</italic></td>
                <td><italic>47.51%</italic></td>
                <td><italic>38.97%</italic></td>
                <td><italic>25.00%</italic></td>
                <td>27.52%</td>
                <td><italic>35.44%</italic></td>
                <td>35.68%</td>
              </tr>
            </tbody>
          </table>
          <table-wrap-foot>
            <fn id="table4fn1">
              <p><sup>a</sup>CNN-W: Convolutional Neural Network with Word2Vec.</p>
            </fn>
            <fn id="table4fn2">
              <p><sup>b</sup>For each <italic>c</italic><sub><italic>i</italic> </sub>, the highest value for both <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> and <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup> are italicized for emphasis.</p>
            </fn>
            <fn id="table4fn3">
              <p><sup>c</sup>DTC: dependency tree classifier.</p>
            </fn>
          </table-wrap-foot>
        </table-wrap>
        <table-wrap position="float" id="table5">
          <label>Table 5</label>
          <caption>
            <p>Ratio of sentences classified by the top 3 classifiers as <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> or <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup> that were classified correctly.</p>
          </caption>
          <table width="1000" cellpadding="5" cellspacing="0" border="1" rules="groups" frame="hsides">
            <col width="30"/>
            <col width="170"/>
            <col width="100"/>
            <col width="100"/>
            <col width="100"/>
            <col width="100"/>
            <col width="100"/>
            <col width="100"/>
            <col width="100"/>
            <col width="100"/>
            <thead>
              <tr valign="top">
                <td colspan="2">Label and classifier</td>
                <td><italic>c<sub>1</sub></italic> (%)</td>
                <td><italic>c<sub>2</sub></italic> (%)</td>
                <td><italic>c<sub>3</sub></italic> (%)</td>
                <td><italic>c<sub>4</sub></italic> (%)</td>
                <td><italic>c<sub>5</sub></italic> (%)</td>
                <td><italic>c<sub>6</sub></italic> (%)</td>
                <td><italic>c<sub>7</sub></italic> (%)</td>
                <td><italic>c<sub>8</sub></italic> (%)</td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td colspan="10"><bold><italic>c<sub>1</sub><sup>x</sup></italic></bold></td>
                </tr>
              <tr valign="top">
                <td><break/></td>
                <td>CNN-W<sup>a</sup></td>
                <td>34.78%</td>
                <td><italic>60.19%</italic><sup>b</sup></td>
                <td>0.00%</td>
                <td>62.50%</td>
                <td>50.26%</td>
                <td>66.81%</td>
                <td>57.14%</td>
                <td>65.91%</td>
              </tr>
              <tr valign="top">
                <td><break/></td>
                <td>Matsumoto</td>
                <td><italic>46.67%</italic></td>
                <td>43.40%</td>
                <td><italic>50.00%</italic></td>
                <td><italic>66.23%</italic></td>
                <td><italic>55.31%</italic></td>
                <td><italic>71.10%</italic></td>
                <td><italic>67.27%</italic></td>
                <td><italic>77.27%</italic></td>
              </tr>
              <tr valign="top">
                <td><break/></td>
                <td>DTC<sup>c</sup><sub>CNN-W</sub></td>
                <td>16.04%</td>
                <td>41.66%</td>
                <td>10.00%</td>
                <td>20.69%</td>
                <td>22.58%</td>
                <td>43.59%</td>
                <td>23.73%</td>
                <td>21.52%</td>
              </tr>
              <tr valign="top">                
                <td colspan="10"><bold><italic>c<sub>1</sub><sup>y</sup></italic></bold></td>
              </tr>
              <tr valign="top">
                <td><break/></td>
                <td>CNN-W</td>
                <td>40.00%</td>
                <td><italic>41.52%</italic></td>
                <td>50.56%</td>
                <td>22.83%</td>
                <td><italic>28.70%</italic></td>
                <td>41.27%</td>
                <td>29.41%</td>
                <td>59.06%</td>
              </tr>
              <tr valign="top">
                <td><break/></td>
                <td>Matsumoto</td>
                <td><italic>58.82%</italic></td>
                <td>34.18%</td>
                <td><italic>56.52%</italic></td>
                <td><italic>34.62%</italic></td>
                <td>25.64%</td>
                <td><italic>49.53%</italic></td>
                <td><italic>53.33%</italic></td>
                <td><italic>70.99%</italic></td>
              </tr>
              <tr valign="top">
                <td><break/></td>
                <td>DTC<sub>CNN-W</sub></td>
                <td>10.98%</td>
                <td>13.50%</td>
                <td>28.57%</td>
                <td>13.38%</td>
                <td>14.25%</td>
                <td>22.90%</td>
                <td>14.29%</td>
                <td>29.96%</td>
              </tr>
            </tbody>
          </table>
          <table-wrap-foot>
            <fn id="table5fn1">
              <p><sup>a</sup>CNN-W: Convolutional Neural Network with Word2Vec.</p>
            </fn>
            <fn id="table5fn2">
              <p><sup>b</sup>For each <italic>c</italic><sub><italic>i</italic> </sub>, the highest value for both <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>x</italic> </sup> and <italic>c</italic><sub><italic>i</italic> </sub><sup><italic>y</italic> </sup> are italicized for emphasis.</p>
            </fn>
            <fn id="table5fn3">
              <p><sup>c</sup>DTC: dependency tree classifier.</p>
            </fn>
          </table-wrap-foot>
        </table-wrap>
      </sec>
    </sec>
    <sec sec-type="discussion">
      <title>Discussion</title>
      <sec>
        <title>Anecdotal Examples</title>
        <p>In this section, we show some specific patterns generated by our algorithm along with some actual review sentences that match these patterns. The semgrex pattern <italic>{} &#62;neg {} &#62;&#62; ({word:/wait.*/} &#62; {word:/long.*/})</italic> was generated from a sentence with class label <italic>c</italic><sub><italic>8</italic> </sub><sup><italic>x</italic> </sup> (short wait) in class <italic>c</italic><sub><italic>8</italic> </sub> (wait time) in the doctor review dataset. It consists of a node that has 2 descendants: another generic node in a direct negation relation and <italic>wait</italic> in an indirect relation. The word <italic>wait</italic> has 1 direct descendant, the word <italic>long</italic>. The following is an example of a correctly matched sentence: “You are known by name and never have to wait long.” This is an incorrectly matched one: “As a patient, I was not permitted to complain to the doctor about the long wait, placed on hold and never coming back to answer call.” We see that it contains the words <italic>long</italic> and <italic>wait</italic>, as well as a negation (the word <italic>never</italic>); however, the negation is not semantically related to the <italic>long wait</italic> the author mentioned. Providing additional training data to the classifier may prevent such misclassifications by finding a pattern (or improving the rank of an existing pattern) that more appropriately makes such distinctions.</p>
      </sec>
      <sec>
        <title>Limitations</title>
        <p>In addition to the incorrect handling of negation described above, another limitation of our algorithm is that some sentences of a particular class can be sufficiently similar to sentences from another class, which may lead to misclassifications. Some examples of this can be seen in class <italic>c</italic><sub><italic>6</italic> </sub> (staff). Specifically, some sentences referring to a doctor (rather than staff members) were incorrectly classified as <italic>c</italic><sub><italic>6</italic> </sub><sup><italic>x</italic> </sup> (good staff) or <italic>c</italic><sub><italic>6</italic> </sub><sup><italic>y</italic> </sup> (bad staff). For example, “Dr. Fang provides the very best medical care available anywhere in the profession” and “Dr. Overlock treated me with the utmost respect,” which clearly refer to doctors rather than staff and should have been classified as <italic>c</italic><sub><italic>6</italic> </sub><sup><italic>0</italic> </sup> (no mention of staff). The DTC algorithm generated some patterns for <italic>c</italic><sub><italic>6</italic> </sub><sup><italic>x</italic> </sup> that focus on positive statements for a person but miss the requirement that this person is staff. In the case of the above sentences, they were matched by <italic>{} &#62;&#62; {word:/dr.*/} &#62;&#62; {word:/best.*/}</italic> and <italic>{} &#62;&#62; {word:/with.*/} &#62;&#62; {word:/dr.*/},</italic> respectively, which both erroneously include the word <italic>dr</italic>. More work is needed to address such tricky issues.</p>
      </sec>
      <sec>
        <title>Conclusions</title>
        <p>In this paper, we study the doctor reviews classification problem. We evaluate several existing classifiers and 1 new classifier. A key challenge of the problem is that features may be complex entities, for which polarity is not necessarily compatible with traditional positive or negative sentiment. Our proposed classifier, DTC, uses dependency trees generated from review sentences and automatically generates patterns that are then used to classify new reviews. In our experiments on a real-world doctor review dataset, we found that DTC outperforms other text classification methods. Future work may build upon the DTC classifier by also incorporating other NLP structures, such as discourse trees [<xref ref-type="bibr" rid="ref42">42</xref>], to better capture the semantics of the reviews.</p>
      </sec>
    </sec>
  </body>
  <back>
    <glossary>
      <title>Abbreviations</title>
      <def-list>
        <def-item>
          <term id="abb1">Attr</term>
          <def>
            <p>attribute</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb2">CNN</term>
          <def>
            <p>Convolutional Neural Network</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb3">CNN-W</term>
          <def>
            <p>Convolutional Neural Network initialized with values from a Word2Vec model</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb4">D2V-NN</term>
          <def>
            <p>nearest neighbor classifier that uses the Doc2Vec model</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb5">DTC</term>
          <def>
            <p>dependency tree classifier</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb6">NLP</term>
          <def>
            <p>natural language processing</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb7">POS</term>
          <def>
            <p>part of speech</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb8">RF</term>
          <def>
            <p>random forests</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb9">S</term>
          <def>
            <p>sentiment</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb10">SVM</term>
          <def>
            <p>Support Vector Machine</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb11">TF-IDF</term>
          <def>
            <p>term frequency-inverse document frequency</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb12">T</term>
          <def>
            <p>target</p>
          </def>
        </def-item>
      </def-list>
    </glossary>
    <ack>
      <p>This project was partially supported by the National Science Foundation grants IIS-1447826 and IIS-1619463.</p>
    </ack>
    <fn-group>
      <fn fn-type="con">
        <p>RR built crawlers for collecting doctor reviews, labeled the doctor review dataset, researched related work, built the dependency tree classifier (DTC) algorithm, conducted the experiments, and wrote the manuscript. NM researched related work and wrote the pattern extraction algorithm. NXTL researched related work and provided guidance in building the DTC algorithm and conducting experiments. VH conceived the study, labeled the doctor review dataset, and provided coordination and guidance in the experiments and writing of the manuscript.</p>
      </fn>
      <fn fn-type="conflict">
        <p>None declared.</p>
      </fn>
    </fn-group>
    <ref-list>
      <ref id="ref1">
        <label>1</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Ding</surname>
            <given-names>X</given-names>
          </name>
          <name name-style="western">
            <surname>Liu</surname>
            <given-names>B</given-names>
          </name>
          <name name-style="western">
            <surname>Yu</surname>
            <given-names>PS</given-names>
          </name>
        </person-group>
        <article-title>A holistic lexicon-based approach to opinion mining</article-title>
        <year>2008</year>  
        <month>02</month>  
        <day>11</day>  
        <conf-name>2008 International Conference on Web Search and Data Mining</conf-name>
        <conf-date>February 11-12, 2008</conf-date>
        <conf-loc>Palo Alto, CA, USA</conf-loc>
        <publisher-loc>New York, NY, USA</publisher-loc>
        <publisher-name>Association for Computing Machinery</publisher-name>
        <fpage>231</fpage>  
        <lpage>240</lpage>  
        <pub-id pub-id-type="doi">10.1145/1341531.1341561</pub-id></nlm-citation>
      </ref>
      <ref id="ref2">
        <label>2</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Hu</surname>
            <given-names>M</given-names>
          </name>
          <name name-style="western">
            <surname>Liu</surname>
            <given-names>B</given-names>
          </name>
        </person-group>
        <article-title>Mining and summarizing customer reviews</article-title>
        <year>2004</year>  
        <month>08</month>  
        <day>22</day>  
        <conf-name>Tenth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining</conf-name>
        <conf-date>August 22-25, 2004</conf-date>
        <conf-loc>Seattle, WA, USA</conf-loc>
        <publisher-loc>New York, NY, USA</publisher-loc>
        <publisher-name>Association for Computing Machinery</publisher-name>
        <fpage>168</fpage>  
        <lpage>177</lpage>  
        <pub-id pub-id-type="doi">10.1145/1014052.1014073</pub-id></nlm-citation>
      </ref>
      <ref id="ref3">
        <label>3</label>
        <nlm-citation citation-type="book">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Popescu</surname>
            <given-names>AM</given-names>
          </name>
          <name name-style="western">
            <surname>Etzioni</surname>
            <given-names>O</given-names>
          </name>
        </person-group>
        <article-title>Extracting product features and opinions from reviews</article-title>
        <source>Natural Language Processing and Text Mining</source>  
        <year>2007</year>  
        <publisher-loc>London</publisher-loc>
        <publisher-name>Springer</publisher-name>
        <fpage>9</fpage>  
        <lpage>28</lpage> </nlm-citation>
      </ref>
      <ref id="ref4">
        <label>4</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Gao</surname>
            <given-names>GG</given-names>
          </name>
          <name name-style="western">
            <surname>McCullough</surname>
            <given-names>JS</given-names>
          </name>
          <name name-style="western">
            <surname>Agarwal</surname>
            <given-names>R</given-names>
          </name>
          <name name-style="western">
            <surname>Jha</surname>
            <given-names>AK</given-names>
          </name>
        </person-group>
        <article-title>A changing landscape of physician quality reporting: analysis of patients' online ratings of their physicians over a 5-year period</article-title>
        <source>J Med Internet Res</source>  
        <year>2012</year>  
        <month>02</month>  
        <day>24</day>  
        <volume>14</volume>  
        <issue>1</issue>  
        <fpage>e38</fpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="http://www.jmir.org/2012/1/e38/"/>
        </comment>  
        <pub-id pub-id-type="doi">10.2196/jmir.2003</pub-id>
        <pub-id pub-id-type="medline">22366336</pub-id>
        <pub-id pub-id-type="pii">v14i1e38</pub-id>
        <pub-id pub-id-type="pmcid">PMC3374528</pub-id></nlm-citation>
      </ref>
      <ref id="ref5">
        <label>5</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Segal</surname>
            <given-names>J</given-names>
          </name>
          <name name-style="western">
            <surname>Sacopulos</surname>
            <given-names>M</given-names>
          </name>
          <name name-style="western">
            <surname>Sheets</surname>
            <given-names>V</given-names>
          </name>
          <name name-style="western">
            <surname>Thurston</surname>
            <given-names>I</given-names>
          </name>
          <name name-style="western">
            <surname>Brooks</surname>
            <given-names>K</given-names>
          </name>
          <name name-style="western">
            <surname>Puccia</surname>
            <given-names>R</given-names>
          </name>
        </person-group>
        <article-title>Online doctor reviews: do they track surgeon volume, a proxy for quality of care?</article-title>
        <source>J Med Internet Res</source>  
        <year>2012</year>  
        <month>04</month>  
        <day>10</day>  
        <volume>14</volume>  
        <issue>2</issue>  
        <fpage>e50</fpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="http://www.jmir.org/2012/2/e50/"/>
        </comment>  
        <pub-id pub-id-type="doi">10.2196/jmir.2005</pub-id>
        <pub-id pub-id-type="medline">22491423</pub-id>
        <pub-id pub-id-type="pii">v14i2e50</pub-id>
        <pub-id pub-id-type="pmcid">PMC3376525</pub-id></nlm-citation>
      </ref>
      <ref id="ref6">
        <label>6</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>López</surname>
            <given-names>A</given-names>
          </name>
          <name name-style="western">
            <surname>Detz</surname>
            <given-names>A</given-names>
          </name>
          <name name-style="western">
            <surname>Ratanawongsa</surname>
            <given-names>N</given-names>
          </name>
          <name name-style="western">
            <surname>Sarkar</surname>
            <given-names>U</given-names>
          </name>
        </person-group>
        <article-title>What patients say about their doctors online: a qualitative content analysis</article-title>
        <source>J Gen Intern Med</source>  
        <year>2012</year>  
        <month>01</month>  
        <day>04</day>  
        <volume>27</volume>  
        <issue>6</issue>  
        <fpage>685</fpage>  
        <lpage>92</lpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="http://europepmc.org/abstract/MED/22215270"/>
        </comment>  
        <pub-id pub-id-type="doi">10.1007/s11606-011-1958-4</pub-id>
        <pub-id pub-id-type="medline">22215270</pub-id>
        <pub-id pub-id-type="pmcid">PMC3358396</pub-id></nlm-citation>
      </ref>
      <ref id="ref7">
        <label>7</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Hao</surname>
            <given-names>H</given-names>
          </name>
        </person-group>
        <article-title>The development of online doctor reviews in China: an analysis of the largest online doctor review website in China</article-title>
        <source>J Med Internet Res</source>  
        <year>2015</year>  
        <month>06</month>  
        <day>01</day>  
        <volume>17</volume>  
        <issue>6</issue>  
        <fpage>e134</fpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="http://www.jmir.org/2015/6/e134/"/>
        </comment>  
        <pub-id pub-id-type="doi">10.2196/jmir.4365</pub-id>
        <pub-id pub-id-type="medline">26032933</pub-id>
        <pub-id pub-id-type="pii">v17i6e134</pub-id>
        <pub-id pub-id-type="pmcid">PMC4526894</pub-id></nlm-citation>
      </ref>
      <ref id="ref8">
        <label>8</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Smith</surname>
            <given-names>R</given-names>
          </name>
          <name name-style="western">
            <surname>Lipoff</surname>
            <given-names>J</given-names>
          </name>
        </person-group>
        <article-title>Evaluation of dermatology practice online reviews: lessons from qualitative analysis</article-title>
        <source>JAMA Dermatol</source>  
        <year>2016</year>  
        <month>02</month>  
        <volume>152</volume>  
        <issue>2</issue>  
        <fpage>153</fpage>  
        <lpage>157</lpage>  
        <pub-id pub-id-type="doi">10.1001/jamadermatol.2015.3950</pub-id>
        <pub-id pub-id-type="medline">26606326</pub-id>
        <pub-id pub-id-type="pii">2471624</pub-id></nlm-citation>
      </ref>
      <ref id="ref9">
        <label>9</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Daskivich</surname>
            <given-names>T</given-names>
          </name>
          <name name-style="western">
            <surname>Luu</surname>
            <given-names>M</given-names>
          </name>
          <name name-style="western">
            <surname>Noah</surname>
            <given-names>B</given-names>
          </name>
          <name name-style="western">
            <surname>Fuller</surname>
            <given-names>G</given-names>
          </name>
          <name name-style="western">
            <surname>Anger</surname>
            <given-names>J</given-names>
          </name>
          <name name-style="western">
            <surname>Spiegel</surname>
            <given-names>B</given-names>
          </name>
        </person-group>
        <article-title>Differences in online consumer ratings of health care providers across medical, surgical, and allied health specialties: observational study of 212,933 providers</article-title>
        <source>J Med Internet Res</source>  
        <year>2018</year>  
        <month>05</month>  
        <day>09</day>  
        <volume>20</volume>  
        <issue>5</issue>  
        <fpage>e176</fpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="http://www.jmir.org/2018/5/e176/"/>
        </comment>  
        <pub-id pub-id-type="doi">10.2196/jmir.9160</pub-id>
        <pub-id pub-id-type="medline">29743150</pub-id>
        <pub-id pub-id-type="pii">v20i5e176</pub-id>
        <pub-id pub-id-type="pmcid">PMC5980486</pub-id></nlm-citation>
      </ref>
      <ref id="ref10">
        <label>10</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Wallace</surname>
            <given-names>BC</given-names>
          </name>
          <name name-style="western">
            <surname>Paul</surname>
            <given-names>MJ</given-names>
          </name>
          <name name-style="western">
            <surname>Sarkar</surname>
            <given-names>U</given-names>
          </name>
          <name name-style="western">
            <surname>Trikalinos</surname>
            <given-names>TA</given-names>
          </name>
          <name name-style="western">
            <surname>Dredze</surname>
            <given-names>M</given-names>
          </name>
        </person-group>
        <article-title>A large-scale quantitative analysis of latent factors and sentiment in online doctor reviews</article-title>
        <source>J Am Med Inform Assoc</source>  
        <year>2014</year>  
        <month>06</month>  
        <day>10</day>  
        <volume>21</volume>  
        <issue>6</issue>  
        <fpage>1098</fpage>  
        <lpage>1103</lpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="http://europepmc.org/abstract/MED/24918109"/>
        </comment>  
        <pub-id pub-id-type="doi">10.1136/amiajnl-2014-002711</pub-id>
        <pub-id pub-id-type="medline">24918109</pub-id>
        <pub-id pub-id-type="pii">amiajnl-2014-002711</pub-id>
        <pub-id pub-id-type="pmcid">PMC4215053</pub-id></nlm-citation>
      </ref>
      <ref id="ref11">
        <label>11</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Hao</surname>
            <given-names>H</given-names>
          </name>
          <name name-style="western">
            <surname>Zhang</surname>
            <given-names>K</given-names>
          </name>
        </person-group>
        <article-title>The voice of Chinese health consumers: a text mining approach to web-based physician reviews</article-title>
        <source>J Med Internet Res</source>  
        <year>2016</year>  
        <month>05</month>  
        <day>10</day>  
        <volume>18</volume>  
        <issue>5</issue>  
        <fpage>e108</fpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="http://www.jmir.org/2016/5/e108/"/>
        </comment>  
        <pub-id pub-id-type="doi">10.2196/jmir.4430</pub-id>
        <pub-id pub-id-type="medline">27165558</pub-id>
        <pub-id pub-id-type="pii">v18i5e108</pub-id>
        <pub-id pub-id-type="pmcid">PMC4879326</pub-id></nlm-citation>
      </ref>
      <ref id="ref12">
        <label>12</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Hao</surname>
            <given-names>H</given-names>
          </name>
          <name name-style="western">
            <surname>Zhang</surname>
            <given-names>K</given-names>
          </name>
          <name name-style="western">
            <surname>Wang</surname>
            <given-names>W</given-names>
          </name>
          <name name-style="western">
            <surname>Gao</surname>
            <given-names>G</given-names>
          </name>
        </person-group>
        <article-title>A tale of two countries: international comparison of online doctor reviews between China and the United States</article-title>
        <source>Int J Med Inform</source>  
        <year>2017</year>  
        <month>03</month>  
        <volume>99</volume>  
        <fpage>37</fpage>  
        <lpage>44</lpage>  
        <pub-id pub-id-type="doi">10.1016/j.ijmedinf.2016.12.007</pub-id>
        <pub-id pub-id-type="medline">28118920</pub-id>
        <pub-id pub-id-type="pii">S1386-5056(16)30275-1</pub-id></nlm-citation>
      </ref>
      <ref id="ref13">
        <label>13</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Zhai</surname>
            <given-names>Z</given-names>
          </name>
          <name name-style="western">
            <surname>Liu</surname>
            <given-names>B</given-names>
          </name>
          <name name-style="western">
            <surname>Xu</surname>
            <given-names>H</given-names>
          </name>
          <name name-style="western">
            <surname>Jia</surname>
            <given-names>P</given-names>
          </name>
        </person-group>
        <article-title>Clustering product features for opinion mining</article-title>
        <year>2011</year>  
        <month>02</month>  
        <day>09</day>  
        <conf-name>Fourth ACM International Conference on Web Search and Data Mining</conf-name>
        <conf-date>February 9-12, 2011</conf-date>
        <conf-loc>Hong Kong, China</conf-loc>
        <publisher-loc>New York, NY, USA</publisher-loc>
        <publisher-name>Association for Computing Machinery</publisher-name>
        <fpage>347</fpage>  
        <lpage>354</lpage>  
        <pub-id pub-id-type="doi">10.1145/1935826.1935884</pub-id></nlm-citation>
      </ref>
      <ref id="ref14">
        <label>14</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Liu</surname>
            <given-names>Q</given-names>
          </name>
          <name name-style="western">
            <surname>Gao</surname>
            <given-names>Z</given-names>
          </name>
          <name name-style="western">
            <surname>Liu</surname>
            <given-names>B</given-names>
          </name>
          <name name-style="western">
            <surname>Zhang</surname>
            <given-names>Y</given-names>
          </name>
        </person-group>
        <article-title>Automated rule selection for aspect extraction in opinion mining</article-title>
        <year>2015</year>  
        <month>07</month>  
        <day>25</day>  
        <conf-name>The 24th International Conference on Artificial Intelligence</conf-name>
        <conf-date>July 25-31, 2015</conf-date>
        <conf-loc>Buenos Aires, Argentina</conf-loc>
        <publisher-name>AAAI Press</publisher-name>
        <fpage>1291</fpage>  
        <lpage>1297</lpage> </nlm-citation>
      </ref>
      <ref id="ref15">
        <label>15</label>
        <nlm-citation citation-type="book">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Polanyi</surname>
            <given-names>L</given-names>
          </name>
          <name name-style="western">
            <surname>Zaenen</surname>
            <given-names>A</given-names>
          </name>
        </person-group>
        <article-title>Contextual valence shifters</article-title>
        <source>Computing Attitude and Affect in Text: Theory and Applications. The Information Retrieval Series, vol 20</source>  
        <year>2006</year>  
        <publisher-loc>Dordrecht</publisher-loc>
        <publisher-name>Springer</publisher-name>
        <fpage>1</fpage>  
        <lpage>10</lpage> </nlm-citation>
      </ref>
      <ref id="ref16">
        <label>16</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Boser</surname>
            <given-names>BE</given-names>
          </name>
          <name name-style="western">
            <surname>Guyon</surname>
            <given-names>IM</given-names>
          </name>
          <name name-style="western">
            <surname>Vapnik</surname>
            <given-names>VN</given-names>
          </name>
        </person-group>
        <article-title>A training algorithm for optimal margin classifiers</article-title>
        <year>1992</year>  
        <month>07</month>  
        <day>01</day>  
        <conf-name>Fifth Annual Workshop on Computational Learning Theory</conf-name>
        <conf-date>July 27-29, 1992</conf-date>
        <conf-loc>Pittsburgh, PA, USA</conf-loc>
        <publisher-loc>New York, NY, USA</publisher-loc>
        <publisher-name>Association for Computing Machinery</publisher-name>
        <fpage>144</fpage>  
        <lpage>152</lpage>  
        <pub-id pub-id-type="doi">10.1145/130385.130401</pub-id></nlm-citation>
      </ref>
      <ref id="ref17">
        <label>17</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Cortes</surname>
            <given-names>C</given-names>
          </name>
          <name name-style="western">
            <surname>Vapnik</surname>
            <given-names>V</given-names>
          </name>
        </person-group>
        <article-title>Support-vector networks</article-title>
        <source>Mach Learn</source>  
        <year>1995</year>  
        <month>9</month>  
        <volume>20</volume>  
        <issue>3</issue>  
        <fpage>273</fpage>  
        <lpage>297</lpage>  
        <pub-id pub-id-type="doi">10.1007/BF00994018</pub-id></nlm-citation>
      </ref>
      <ref id="ref18">
        <label>18</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Breiman</surname>
            <given-names>L</given-names>
          </name>
        </person-group>
        <article-title>Random forests</article-title>
        <source>Mach Learn</source>  
        <year>2001</year>  
        <month>10</month>  
        <volume>45</volume>  
        <issue>1</issue>  
        <fpage>5</fpage>  
        <lpage>32</lpage>  
        <pub-id pub-id-type="doi">10.1023/A:1010933404324</pub-id></nlm-citation>
      </ref>
      <ref id="ref19">
        <label>19</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Kim</surname>
            <given-names>Y</given-names>
          </name>
        </person-group>
        <article-title>Convolutional neural networks for sentence classification</article-title>
        <year>2014</year>  
        <conf-name>The 2014 Conference on Empirical Methods in Natural Language Processing</conf-name>
        <conf-date>October 25-29, 2014</conf-date>
        <conf-loc>Doha, Qatar</conf-loc>
        <publisher-loc>Stroudsburg, PA, USA</publisher-loc>
        <publisher-name>Association for Computational Linguistics</publisher-name>
        <fpage>1746</fpage>  
        <lpage>1751</lpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="http://www.aclweb.org/anthology/D14-1181"/>
        </comment> </nlm-citation>
      </ref>
      <ref id="ref20">
        <label>20</label>
        <nlm-citation citation-type="book">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Tesnière</surname>
            <given-names>L</given-names>
          </name>
        </person-group>
        <source>Éléments de Syntaxe Structurale</source>  
        <year>1959</year>  
        <publisher-loc>Paris</publisher-loc>
        <publisher-name>Klincksieck</publisher-name></nlm-citation>
      </ref>
      <ref id="ref21">
        <label>21</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Matsumoto</surname>
            <given-names>S</given-names>
          </name>
          <name name-style="western">
            <surname>Takamura</surname>
            <given-names>H</given-names>
          </name>
          <name name-style="western">
            <surname>Okumura</surname>
            <given-names>M</given-names>
          </name>
        </person-group>
        <article-title>Sentiment classification using word sub-sequences and dependency sub-trees</article-title>
        <year>2005</year>  
        <conf-name>9th Pacific-Asia Conference on Advances in Knowledge Discovery and Data Mining (PAKDD'05)</conf-name>
        <conf-date>May 18-20, 2005</conf-date>
        <conf-loc>Hanoi, Vietnam</conf-loc>
        <publisher-loc>Berlin</publisher-loc>
        <publisher-name>Springer</publisher-name>
        <fpage>301</fpage>  
        <lpage>311</lpage>  
        <pub-id pub-id-type="doi">10.1007/11430919_37</pub-id></nlm-citation>
      </ref>
      <ref id="ref22">
        <label>22</label>
        <nlm-citation citation-type="web">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Rivas</surname>
            <given-names>R</given-names>
          </name>
          <name name-style="western">
            <surname>Montazeri</surname>
            <given-names>N</given-names>
          </name>
          <name name-style="western">
            <surname>Le</surname>
            <given-names>NXT</given-names>
          </name>
          <name name-style="western">
            <surname>Hristidis</surname>
            <given-names>V</given-names>
          </name>
        </person-group>
        <source>Github</source>  
        <access-date>2018-05-06</access-date>
        <comment>DTC classifier 
        <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="https://github.com/rriva002/DTC-Classifier">https://github.com/rriva002/DTC-Classifier</ext-link>
        <ext-link ext-link-type="webcite" xlink:href="6zDfHhqEd"/></comment> </nlm-citation>
      </ref>
      <ref id="ref23">
        <label>23</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Agarwal</surname>
            <given-names>B</given-names>
          </name>
          <name name-style="western">
            <surname>Poria</surname>
            <given-names>S</given-names>
          </name>
          <name name-style="western">
            <surname>Mittal</surname>
            <given-names>N</given-names>
          </name>
          <name name-style="western">
            <surname>Gelbukh</surname>
            <given-names>A</given-names>
          </name>
          <name name-style="western">
            <surname>Hussain</surname>
            <given-names>A</given-names>
          </name>
        </person-group>
        <article-title>Concept-level sentiment analysis with dependency-based semantic parsing: a novel approach</article-title>
        <source>Cogn Comput</source>  
        <year>2015</year>  
        <month>1</month>  
        <day>20</day>  
        <volume>7</volume>  
        <issue>4</issue>  
        <fpage>487</fpage>  
        <lpage>499</lpage>  
        <pub-id pub-id-type="doi">10.1007/s12559-014-9316-6</pub-id></nlm-citation>
      </ref>
      <ref id="ref24">
        <label>24</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Wawer</surname>
            <given-names>A</given-names>
          </name>
        </person-group>
        <article-title>Towards domain-independent opinion target extraction</article-title>
        <year>2015</year>  
        <conf-name>2015 IEEE International Conference on Data Mining</conf-name>
        <conf-date>November 14-17, 2015</conf-date>
        <conf-loc>Atlantic City, NJ, USA</conf-loc>
        <publisher-name>Institute of Electrical and Electronics Engineers</publisher-name>
        <fpage>1326</fpage>  
        <lpage>1331</lpage>  
        <pub-id pub-id-type="doi">10.1109/ICDMW.2015.255</pub-id></nlm-citation>
      </ref>
      <ref id="ref25">
        <label>25</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Pak</surname>
            <given-names>A</given-names>
          </name>
          <name name-style="western">
            <surname>Paroubek</surname>
            <given-names>P</given-names>
          </name>
        </person-group>
        <article-title>Text representation using dependency tree subgraphs for sentiment analysis</article-title>
        <year>2011</year>  
        <conf-name>16th International Conference on Database Systems for Advanced Applications (DASFAA 2011)</conf-name>
        <conf-date>April 22-25, 2011</conf-date>
        <conf-loc>Hong Kong, China</conf-loc>
        <publisher-loc>Berlin</publisher-loc>
        <publisher-name>Springer</publisher-name>
        <fpage>323</fpage>  
        <lpage>332</lpage>  
        <pub-id pub-id-type="doi">10.1007/978-3-642-20244-5_31</pub-id></nlm-citation>
      </ref>
      <ref id="ref26">
        <label>26</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Kennedy</surname>
            <given-names>G</given-names>
          </name>
          <name name-style="western">
            <surname>McCollough</surname>
            <given-names>A</given-names>
          </name>
          <name name-style="western">
            <surname>Dixon</surname>
            <given-names>E</given-names>
          </name>
          <name name-style="western">
            <surname>Bastidas</surname>
            <given-names>A</given-names>
          </name>
          <name name-style="western">
            <surname>Ryan</surname>
            <given-names>J</given-names>
          </name>
          <name name-style="western">
            <surname>Loo</surname>
            <given-names>C</given-names>
          </name>
          <name name-style="western">
            <surname>Sahay</surname>
            <given-names>S</given-names>
          </name>
        </person-group>
        <article-title>Hack Harassment: Technology Solutions to Combat Online Harassment</article-title>
        <source>Proceedings of the first workshop on abusive language online</source>  
        <year>2017</year>  
        <conf-name>Annual Meeting of the Association for Computational Linguistics</conf-name>
        <conf-date>July 30-August 4, 2017</conf-date>
        <conf-loc>Vancouver, Canada</conf-loc>
        <fpage>73</fpage>  
        <lpage>77</lpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="http://www.aclweb.org/anthology/W17-3011"/>
        </comment> </nlm-citation>
      </ref>
      <ref id="ref27">
        <label>27</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Gambäck</surname>
            <given-names>B</given-names>
          </name>
          <name name-style="western">
            <surname>Sikdar</surname>
            <given-names>UK</given-names>
          </name>
        </person-group>
        <article-title>Using convolutional neural networks to classify hate-speech</article-title>
        <source>Proceedings of the first workshop on abusive language online</source>  
        <year>2017</year>  
        <conf-name>Annual Meeting of the Association for Computational Linguistics</conf-name>
        <conf-date>July 30-August 4, 2017</conf-date>
        <conf-loc>Vancouver, Canada</conf-loc>
        <fpage>85</fpage>  
        <lpage>90</lpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="https://pdfs.semanticscholar.org/0dca/29b6a5ea2fe2b6373aba9fe0ab829c06fd78.pdf"/>
        </comment> </nlm-citation>
      </ref>
      <ref id="ref28">
        <label>28</label>
        <nlm-citation citation-type="web">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Mikolov</surname>
            <given-names>T</given-names>
          </name>
          <name name-style="western">
            <surname>Chen</surname>
            <given-names>K</given-names>
          </name>
          <name name-style="western">
            <surname>Corrado</surname>
            <given-names>G</given-names>
          </name>
          <name name-style="western">
            <surname>Dean</surname>
            <given-names>J</given-names>
          </name>
        </person-group>
        <source>Arxiv</source>  
        <year>2013</year>  
        <month>09</month>  
        <day>07</day>  
        <access-date>2018-10-19</access-date>
        <comment>Efficient estimation of word representations in vector space 
        <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="https://arxiv.org/abs/1301.3781">https://arxiv.org/abs/1301.3781</ext-link>
        <ext-link ext-link-type="webcite" xlink:href="73IPH7ARs"/></comment> </nlm-citation>
      </ref>
      <ref id="ref29">
        <label>29</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Lix</surname>
            <given-names>L</given-names>
          </name>
          <name name-style="western">
            <surname>Munakala</surname>
            <given-names>SN</given-names>
          </name>
          <name name-style="western">
            <surname>Singer</surname>
            <given-names>A</given-names>
          </name>
        </person-group>
        <article-title>Automated classification of alcohol use by text mining of electronic medical records</article-title>
        <source>Online J Public Health Inform</source>  
        <year>2017</year>  
        <month>05</month>  
        <day>02</day>  
        <volume>9</volume>  
        <issue>1</issue>  
        <fpage>e069</fpage>  
        <pub-id pub-id-type="doi">10.5210/ojphi.v9i1.7648</pub-id></nlm-citation>
      </ref>
      <ref id="ref30">
        <label>30</label>
        <nlm-citation citation-type="web">
        <source>Vitals</source>  
        <access-date>2016-08-08</access-date>
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="http://www.vitals.com/">http://www.vitals.com/</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6jcVjHu5p"/>
        </comment> </nlm-citation>
      </ref>
      <ref id="ref31">
        <label>31</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Yimam</surname>
            <given-names>SM</given-names>
          </name>
          <name name-style="western">
            <surname>Gurevych</surname>
            <given-names>I</given-names>
          </name>
          <name name-style="western">
            <surname>de Castilho</surname>
            <given-names>RE</given-names>
          </name>
          <name name-style="western">
            <surname>Biemann</surname>
            <given-names>C</given-names>
          </name>
        </person-group>
        <article-title>WebAnno: a flexible, Web-based and visually supported system for distributed annotations</article-title>
        <year>2013</year>  
        <conf-name>The 51st Annual Meeting of the Association for Computational Linguistics</conf-name>
        <conf-date>August 4-9, 2013</conf-date>
        <conf-loc>Sofia, Bulgaria</conf-loc>
        <fpage>1</fpage>  
        <lpage>6</lpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="http://www.aclweb.org/anthology/P13-4001.pdf"/>
        </comment> </nlm-citation>
      </ref>
      <ref id="ref32">
        <label>32</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Chambers</surname>
            <given-names>N</given-names>
          </name>
          <name name-style="western">
            <surname>Cer</surname>
            <given-names>D</given-names>
          </name>
          <name name-style="western">
            <surname>Grenager</surname>
            <given-names>T</given-names>
          </name>
          <name name-style="western">
            <surname>Hall</surname>
            <given-names>D</given-names>
          </name>
          <name name-style="western">
            <surname>Kiddon</surname>
            <given-names>C</given-names>
          </name>
          <name name-style="western">
            <surname>MacCartney</surname>
            <given-names>B</given-names>
          </name>
          <name name-style="western">
            <surname>De Marneffe</surname>
            <given-names>MC</given-names>
          </name>
          <name name-style="western">
            <surname>Ramage</surname>
            <given-names>D</given-names>
          </name>
          <name name-style="western">
            <surname>Yeh</surname>
            <given-names>E</given-names>
          </name>
          <name name-style="western">
            <surname>Manning</surname>
            <given-names>CD</given-names>
          </name>
        </person-group>
        <article-title>Learning alignments and leveraging natural logic</article-title>
        <year>2007</year>  
        <conf-name>The ACL-PASCAL Workshop on Textual Entailment and Paraphrasing</conf-name>
        <conf-date>June 28-29, 2007</conf-date>
        <conf-loc>Prague, Czech Republic</conf-loc>
        <publisher-loc>Stroudsburg, PA, USA</publisher-loc>
        <publisher-name>Association for Computational Linguistics</publisher-name>
        <fpage>165</fpage>  
        <lpage>170</lpage> </nlm-citation>
      </ref>
      <ref id="ref33">
        <label>33</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Manning</surname>
            <given-names>CD</given-names>
          </name>
          <name name-style="western">
            <surname>Surdeanu</surname>
            <given-names>M</given-names>
          </name>
          <name name-style="western">
            <surname>Bauer</surname>
            <given-names>J</given-names>
          </name>
          <name name-style="western">
            <surname>Finkel</surname>
            <given-names>J</given-names>
          </name>
          <name name-style="western">
            <surname>Bethard</surname>
            <given-names>SJ</given-names>
          </name>
          <name name-style="western">
            <surname>McClosky</surname>
            <given-names>D</given-names>
          </name>
        </person-group>
        <article-title>The Stanford CoreNLP natural language processing toolkit</article-title>
        <source>Proceedings of the 52nd annual meeting of the association for computational linguistics: system demonstrations</source>  
        <year>2014</year>  
        <conf-name>The 52nd Annual Meeting of the Association for Computational Linguistics</conf-name>
        <conf-date>June 22-27, 2014</conf-date>
        <conf-loc>Baltimore, MD, USA</conf-loc>
        <fpage>55</fpage>  
        <lpage>60</lpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="https://nlp.stanford.edu/pubs/StanfordCoreNlp2014.pdf"/>
        </comment> </nlm-citation>
      </ref>
      <ref id="ref34">
        <label>34</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Chen</surname>
            <given-names>D</given-names>
          </name>
          <name name-style="western">
            <surname>Manning</surname>
            <given-names>CD</given-names>
          </name>
        </person-group>
        <article-title>A fast and accurate dependency parser using neural networks</article-title>
        <year>2014</year>  
        <conf-name>The 2014 Conference on Empirical Methods in Natural Language Processing</conf-name>
        <conf-date>October 25-29, 2014</conf-date>
        <conf-loc>Doha, Qatar</conf-loc>
        <fpage>740</fpage>  
        <lpage>750</lpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="https://cs.stanford.edu/~danqi/papers/emnlp2014.pdf"/>
        </comment> </nlm-citation>
      </ref>
      <ref id="ref35">
        <label>35</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Pedregosa</surname>
            <given-names>F</given-names>
          </name>
          <name name-style="western">
            <surname>Varoquaux</surname>
            <given-names>G</given-names>
          </name>
          <name name-style="western">
            <surname>Gramfort</surname>
            <given-names>A</given-names>
          </name>
          <name name-style="western">
            <surname>Michel</surname>
            <given-names>V</given-names>
          </name>
          <name name-style="western">
            <surname>Thirion</surname>
            <given-names>B</given-names>
          </name>
          <name name-style="western">
            <surname>Grisel</surname>
            <given-names>O</given-names>
          </name>
          <name name-style="western">
            <surname>Blondel</surname>
            <given-names>M</given-names>
          </name>
          <name name-style="western">
            <surname>Prettenhofer</surname>
            <given-names>P</given-names>
          </name>
          <name name-style="western">
            <surname>Weiss</surname>
            <given-names>R</given-names>
          </name>
          <name name-style="western">
            <surname>Dubourg</surname>
            <given-names>V</given-names>
          </name>
          <name name-style="western">
            <surname>Vanderplas</surname>
            <given-names>J</given-names>
          </name>
        </person-group>
        <article-title>Scikit-learn: machine learning in Python</article-title>
        <source>J Mach Learn Res</source>  
        <year>2011</year>  
        <volume>12</volume>  
        <fpage>2825</fpage>  
        <lpage>2830</lpage> </nlm-citation>
      </ref>
      <ref id="ref36">
        <label>36</label>
        <nlm-citation citation-type="journal">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Chang</surname>
            <given-names>C</given-names>
          </name>
          <name name-style="western">
            <surname>Lin</surname>
            <given-names>C</given-names>
          </name>
        </person-group>
        <article-title>LIBSVM: a library for support vector machines</article-title>
        <source>ACM Trans Intell Syst Technol</source>  
        <year>2011</year>  
        <month>04</month>  
        <day>01</day>  
        <volume>2</volume>  
        <issue>3</issue>  
        <fpage>1</fpage>  
        <lpage>27</lpage>  
        <pub-id pub-id-type="doi">10.1145/1961189.1961199</pub-id></nlm-citation>
      </ref>
      <ref id="ref37">
        <label>37</label>
        <nlm-citation citation-type="web">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Britz</surname>
            <given-names>D</given-names>
          </name>
        </person-group>
        <source>WildML</source>  
        <year>2015</year>  
        <month>12</month>  
        <day>11</day>  
        <access-date>2018-05-06</access-date>
        <comment>Implementing a CNN for text classification in TensorFlow 
        <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/">http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/</ext-link>
        <ext-link ext-link-type="webcite" xlink:href="6zDgJUNLF"/></comment> </nlm-citation>
      </ref>
      <ref id="ref38">
        <label>38</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Rehurek</surname>
            <given-names>R</given-names>
          </name>
          <name name-style="western">
            <surname>Sojka</surname>
            <given-names>P</given-names>
          </name>
        </person-group>
        <article-title>Software framework for topic modelling with large corpora</article-title>
        <source>Proceedings of the LREC 2010 workshop on new challenges for NLP frameworks</source>  
        <year>2010</year>  
        <conf-name>The Seventh International Conference on Language Resources and Evaluation</conf-name>
        <conf-date>May 19-21, 2010</conf-date>
        <conf-loc>Valleta, Malta</conf-loc>
        <fpage>45</fpage>  
        <lpage>50</lpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="https://radimrehurek.com/gensim/lrec2010_final.pdf"/>
        </comment> </nlm-citation>
      </ref>
      <ref id="ref39">
        <label>39</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Le</surname>
            <given-names>Q</given-names>
          </name>
          <name name-style="western">
            <surname>Mikolov</surname>
            <given-names>T</given-names>
          </name>
        </person-group>
        <article-title>Distributed representations of sentences and documents</article-title>
        <year>2014</year>  
        <conf-name>The 31st International Conference on Machine Learning</conf-name>
        <conf-date>June 14-17, 2017</conf-date>
        <conf-loc>Lugano, Switzerland</conf-loc>
        <fpage>1188</fpage>  
        <lpage>1196</lpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="https://cs.stanford.edu/~quocle/paragraph_vector.pdf"/>
        </comment> </nlm-citation>
      </ref>
      <ref id="ref40">
        <label>40</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Pang</surname>
            <given-names>B</given-names>
          </name>
          <name name-style="western">
            <surname>Lee</surname>
            <given-names>L</given-names>
          </name>
        </person-group>
        <article-title>A sentimental education: sentiment analysis using subjectivity summarization based on minimum cuts</article-title>
        <year>2004</year>  
        <conf-name>The 42nd Annual Meeting of the Association for Computational Linguistics</conf-name>
        <conf-date>July 21-26, 2004</conf-date>
        <conf-loc>Barcelona, Spain</conf-loc>
        <publisher-loc>Stroudsburg, PA, USA</publisher-loc>
        <publisher-name>Association for Computational Linguistics</publisher-name>
        <fpage>271</fpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="http://www.aclweb.org/anthology/P04-1035"/>
        </comment>  
        <pub-id pub-id-type="doi">10.3115/1218955.1218990</pub-id></nlm-citation>
      </ref>
      <ref id="ref41">
        <label>41</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Klein</surname>
            <given-names>D</given-names>
          </name>
          <name name-style="western">
            <surname>Manning</surname>
            <given-names>CD</given-names>
          </name>
        </person-group>
        <article-title>Fast exact inference with a factored model for natural language parsing</article-title>
        <year>2003</year>  
        <conf-name>The 15th International Conference on Neural Information Processing Systems</conf-name>
        <conf-date>December 9-14, 2002</conf-date>
        <conf-loc>Vancouver, British Columbia, Canada</conf-loc>
        <publisher-loc>Cambridge, MA, USA</publisher-loc>
        <publisher-name>MIT Press</publisher-name>
        <fpage>3</fpage>  
        <lpage>10</lpage> </nlm-citation>
      </ref>
      <ref id="ref42">
        <label>42</label>
        <nlm-citation citation-type="confproc">
        <person-group person-group-type="author">
          <name name-style="western">
            <surname>Joty</surname>
            <given-names>S</given-names>
          </name>
          <name name-style="western">
            <surname>Carenini</surname>
            <given-names>G</given-names>
          </name>
          <name name-style="western">
            <surname>Ng</surname>
            <given-names>R</given-names>
          </name>
          <name name-style="western">
            <surname>Mehdad</surname>
            <given-names>Y</given-names>
          </name>
        </person-group>
        <article-title>Combining intra-and multi-sentential rhetorical parsing for document-level discourse analysis</article-title>
        <year>2013</year>  
        <conf-name>The 51st Annual Meeting of the Association for Computational Linguistics</conf-name>
        <conf-date>August 4-9, 2013</conf-date>
        <conf-loc>Sofia, Bulgaria</conf-loc>
        <fpage>486</fpage>  
        <lpage>496</lpage>  
        <comment>
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:type="simple" xlink:href="http://www.aclweb.org/anthology/P13-1048"/>
        </comment> </nlm-citation>
      </ref>
    </ref-list>
  </back>
</article>
