• Jump To … +
    abbreviations.js adjectives.js convertables.js dates.js demonyms.js firstnames.js honourifics.js irregular_nouns.js irregular_verbs.js misc.js multiples.js numbers.js organisations.js phrasal_verbs.js places.js uncountables.js verbs.js fns.js index.js lexicon.js negate.js passive_voice.js contractions.js fancy_lumping.js grammar_rules.js parts_of_speech.js phrasal_verbs.js tagger.js word_rules.js question.js sentence.js statement.js tense.js adjective.js to_adverb.js to_comparative.js to_noun.js to_superlative.js adverb.js to_adjective.js is_acronym.js article.js date.js date_rules.js is_date.js parse_date.js is_plural.js is_uncountable.js noun.js is_organisation.js organisation.js gender.js is_person.js parse_name.js person.js is_place.js place.js pluralize.js pronoun.js singularize.js is_value.js numbers.js to_number.js units.js value.js term.js conjugate.js from_infinitive.js predict_form.js suffix_rules.js to_actor.js to_infinitive.js negate.js verb.js sentence_parser.js text.js
  • phrasal_verbs.js

  • ¶
    'use strict';
  • ¶

    some prepositions are clumped onto the back of a verb “looked for”, “looks at” they should be combined with the verb, sometimes. does not handle seperated phrasal verbs (‘take the coat off’ -> ‘take off’)

    
    let particles = ['in', 'out', 'on', 'off', 'behind', 'way', 'with', 'of', 'do', 'away', 'across', 'ahead', 'back', 'over', 'under', 'together', 'apart', 'up', 'upon', 'aback', 'down', 'about', 'before', 'after', 'around', 'to', 'forth', 'round', 'through', 'along', 'onto'];
    particles = particles.reduce(function (h, s) {
      h[s] = true;
      return h;
    }, {});
  • ¶

    combine [‘blew’,’up’] -> ‘blew up’

    let phrasal_verbs = function(terms) {
      for(let i = 0; i < terms.length - 1; i++) {
        if (terms[i] && terms[i].pos['Verb'] && particles[terms[i + 1].normal]) {
  • ¶

    don’t do ‘is in’

          if (terms[i].pos['Copula']) {
            continue;
          }
          terms[i].text = terms[i].text + ' ' + terms[i + 1].text;
          terms[i].reason = 'phrasal(' + terms[i].reason + ')';
          terms[i + 1] = null;
          terms[i].rebuild();
  • ¶

    terms[i].conjugate();

        }
      }
  • ¶

    remove killed-off ones

      terms = terms.filter(function(t) {
        return t !== null;
      });
      return terms;
    };
    
    module.exports = phrasal_verbs;