Ejemplo n.º 1
0
class AssetsQuestion(QuestionTemplate):
    """
	Regex for questions about how much assets a company has.
	Ex: How much assets does Google have?
	"""

    regex = Pos("WRB") + Plus(Lemma("much") | Lemma("many")) + Plus(
        Lemma("asset") | Lemma("assets")) + Lemma("do") + Group(
            Pos("NNP"), 'company') + Lemma("have") + Pos(".")

    def interpret(self, match):
        name = match.company.tokens
        company = IsCompany() + HasKeyword(name)
        assets = AssetsOf(company)
        return assets, "enum"
Ejemplo n.º 2
0
class Hotel(Particle):
    
    regex = Plus(Pos("CD") | Pos("JJ") |Pos("NNS") | Pos("DT") | Pos("NNP") | Pos("NNP") | Pos("NNP"))

    def interpret(self, match):
        name = match.words.tokens
        return IsHotel() + HasKeyword(name)
Ejemplo n.º 3
0
class Restaurant(Particle):

    regex = Plus(Pos("NNS") | Pos("NNP") | Pos("NNPS") | Pos("DT") | Pos("CD"))

    def interpret(self, match):
        name = match.words.tokens
        return IsRestaurant() + HasKeyword(name)
Ejemplo n.º 4
0
class Thing(Particle):
    regex = Plus(
        Question(Pos("JJ")) + (Pos("NN") | Pos("NNP") | Pos("NNS"))
        | Pos("VBN"))

    def interpret(self, match):
        return HasKeyword(match.words.tokens)
Ejemplo n.º 5
0
def was_born_and_mentions_place(Subject, Object):
    """
    Ex: Nasser Sharify was born in Tehran, Iran, in 1925.
    """
    place = Plus(Pos("NNP") + Question(Token(",")))
    return Subject + Token("was born") + Pos("IN") + place + Pos(
        "IN") + Object + Question(Pos("."))
Ejemplo n.º 6
0
def mentions_real_name(Subject, Object):
    """
    Ex: Harry Pilling, born Ashtonunder-Lyne, Lancashire on 2 February 1943, played ...
    """
    anything = Star(Any())
    real_name = Plus(Pos("NNP") + Question(Token(",")))
    return Subject + Token("born") + real_name + Pos("IN") + Object + anything
Ejemplo n.º 7
0
class Language(Particle):

    regex = Plus(Pos("JJ") | Pos("NN") | Pos("NNP") | Pos("NNS"))

    def interpret(self, match):
        name = match.words.tokens
        return IsLanguage() + HasKeyword(name)
Ejemplo n.º 8
0
def incorrect_labeling_of_place_as_person(Subject, Object):
    """
    Ex:  Sophie Christiane of Wolfstein (24 October 24, 1667 - 23 August 1737)
    Wolfstein is a *place*, not a *person*
    """
    anything = Star(Any())
    person = Plus(Pos("NNP") + Question(Token(",")))
    return anything + person + Token("of") + Subject + anything
Ejemplo n.º 9
0
class Location(Particle):
    regex = Plus(
        Pos("DT") | Pos("IN") | Pos("NN") | Pos("NNS") | Pos("NNP")
        | Pos("NNPS"))

    def interpret(self, match):
        name = match.words.tokens.title()
        return IsLocation() + HasKeyword(name)
Ejemplo n.º 10
0
class Vocabulary(Particle):
    regex = Plus(
        Pos("NN") | Pos("NNS") | Pos("FW") | Pos("DT") | Pos("JJ")
        | Pos("VBN"))

    def interpret(self, match):
        name = match.words.tokens
        return dsl.IsVocab() + HasKeyword(name)
Ejemplo n.º 11
0
def was_born_and_mentions_place_2(Subject, Object):
    """
    Ex: Theodone C. Hu was born in 1872 in Huangpu town, Haizhu District, Guangzhou, Guangdong, China.
    """
    anything = Star(Any())
    place = Plus(Pos("NNP") + Question(Token(",")))
    return Subject + Token("was born") + Pos("IN") + Object + Pos(
        "IN") + place + anything
Ejemplo n.º 12
0
class Person(Particle):
    regex = Plus(Pos("NN") | Pos("NNS") | Pos("NNP") | Pos("NNPS") | Pos("JJ"))

    def interpret(self, match):
        name = match.words.tokens
        pronouns.his = name
        pronouns.her = name
        return IsPerson() + HasKeyword(name)
Ejemplo n.º 13
0
class Person(Particle):
    regex = Plus(Pos("NN") | Pos("NNS") | Pos("NNP") | Pos("NNPS"))

    def interpret(self, match):
        name = match.words.tokens
        person = IsPerson()
        hasname = HasKeyword(name)
        person_hasname = person + hasname
        return person_hasname
Ejemplo n.º 14
0
def born_date_and_place_in_parenthesis(Subject, Object):
    """
    Ex: Gary Sykes (Born 13 February 1984) is a British super featherweight boxer.
    """
    anything = Star(Any())
    born = (Token("Born") | Token("born"))
    entity_leftover = Star(Pos("NNP"))
    place = Plus(Pos("NNP") + Question(Token(",")))
    return Subject + entity_leftover + Pos("-LRB-") + born + Object + Token(
        ",") + place + Pos("-RRB-") + anything
Ejemplo n.º 15
0
def parse_element_into_books(html_elements):
    # Based on https://github.com/machinalis/refo/blob/master/examples/xml_reader.py
    is_header = lambda elem: elem.get('class').startswith('bookMain')
    is_highlight = lambda elem: elem.get('class').startswith('highlightRow')
    regex = Group(Predicate(is_header) + Plus(Predicate(is_highlight)), 'book')
    groups = [
        html_elements[g['book'][0]:g['book'][1]]
        for g in finditer(regex, html_elements)
    ]
    return [Book(group) for group in groups]
Ejemplo n.º 16
0
class RiversInCountry(QuestionTemplate):
    """
    regex for which River flows in India?
    """
    regex1 = Pos('WDT')
    regex2 = Lemma('river') + Plus(Pos('VBZ')
                                   | Pos('VBP')) + Pos('IN') + Country()
    regex = regex1 + regex2 + Pos('.') | regex2 | regex2 + Pos(
        '.') | regex1 + regex2

    def interpret(self, match):
        print 'parsed RiverInCountry'
        return
Ejemplo n.º 17
0
Archivo: basic.py Proyecto: ugoel/nih
class WhereIsQuestion(QuestionTemplate):
    """
    Ex: "where in the world is the Eiffel Tower" projects funded by national ins cnter
    """

    thing = Group(Plus(Pos("NP") | Pos("NNP") | Pos("NNPS")), "thing")
    entity = Group(Pos("NN") | Pos("NNS"), "entity")
    verb = Group(Plus(Pos("VBD") | Pos("IN")), "verb")

    regex = entity + verb + thing

    def interpret(self, match):
        print "checked"
        thing = AgencyName(match.thing.tokens)
        entity = AgencyAppId(thing)
        entity = ProjAppId(entity)
        #target_type = HasKeyword(match.target.lemmas)
        #print target_type
        #target =  IsRelatedTo(entity)
        label = TitleOf(entity)

        return label, "enum"
class InstructorOfficeHour(QuestionTemplate):
    """
        Ex: "What time does the cmpe 273 instructor have office hours?"
            "When does the cmpe 273 instructor have office hours?"
    """
    regex = Plus(Lemmas("what time") | Lemma("when")) + Lemma("do") + Question(Pos("DT")) + Course() + Lemma("instructor") \
            + Lemma("have") + Lemmas("office hours") + Question(Pos("."))

    def interpret(self, match):
        answer = "The instructor for %s is available from %s"
        instructor_office_hour = IsInstructorInfoRelated(
        ) + match.course + HasFields(
            'office_hour'.decode('utf-8')) + HasAnswer(answer.decode('utf-8'))
        return instructor_office_hour
Ejemplo n.º 19
0
class PersonThatTookPartInConflictNationality(QuestionTemplate):
    regex = Question(Lemma("list")) + (
        Lemma("person") | Lemma("persons")
        | Lemma("people")) + (Pos("WP") | Pos("WDT")) + (
            (Lemma("was") + Lemma("involved")) |
            (Lemma("took") + Lemma("part")) | Lemma("fight")
            | Lemma("fought")) + Pos("IN") + MilitaryConflict() + Plus(
                Pos("WP") | Pos("WDT") | Pos("WRB") | Lemma("be")) + (
                    Lemma("from") | Lemma("bear") + Pos("IN")) + Country()

    def interpret(self, match):
        military_conflict, i, j = match.militaryconflict
        _nationality, i1, j1 = match.country
        rezultat = IsPerson() + PartOfBattle(
            military_conflict) + HasBirthPlace(_nationality)
        return rezultat, ReturnValue(i, j)
Ejemplo n.º 20
0
class PersonThatTookPartInConflictBornAfter(QuestionTemplate):
    regex = Question(Lemma("list")) + (
        Lemma("person") | Lemma("persons")
        | Lemma("people")) + (Pos("WP") | Pos("WDT")) + (
            (Lemma("was") + Lemma("involved")) |
            (Lemma("took") + Lemma("part")) | Lemma("fight") | Lemma("fought")
        ) + Pos("IN") + MilitaryConflict() + Plus(
            Pos("WP") | Pos("WDT") | Pos("WRB")
            | Lemma("be")) + Lemma("bear") + Lemma("after") + BornAfterYear()

    def interpret(self, match):
        military_conflict, i, j = match.militaryconflict
        _born_year, i1, j1 = match.bornafteryear
        rezultat = military_conflict + IsCommander(
            IsMilitaryPersonnelInvolved(IsPerson() + _born_year + HasId()))
        return rezultat, ReturnValue(i, j)
Ejemplo n.º 21
0
Archivo: regex.py Proyecto: Roger/quepy
class WhatTimeIs(RegexTemplate):
    """
    Regex for questions about the time
    Ex: "What time is in Cordoba"
    """

    nouns = Plus(Pos("NN") | Pos("NNS") | Pos("NNP") | Pos("NNPS"))
    place = Group(nouns, "place")
    openings = (Lemma("what") + Lemma("time") + Token("is")) | Lemma("time")
    regex = openings + Pos("IN") + place + Question(Pos("."))

    def semantics(self, match):
        place = HasKeyword(match.place.lemmas.title()) + IsPlace()
        utc_offset = UTCof(place)

        return utc_offset, "time"
Ejemplo n.º 22
0
class WhereIsQuestion(QuestionTemplate):
    """
    Ex: "where in the world is the Eiffel Tower"
    """

    thing = Group(Plus(Pos("IN") | Pos("NP") | Pos("NNP") | Pos("NNPS")),
                  "thing")
    regex = Lemma("where") + Question(Lemmas("in the world")) + Lemma("be") + \
        Question(Pos("DT")) + thing + Question(Pos("."))

    def interpret(self, match):
        thing = HasKeyword(match.thing.tokens)
        location = LocationOf(thing)
        location_name = LabelOf(location)

        return location_name, "enum"
class ExamQuestion(QuestionTemplate):
    """
        Ex: "When is the final exam for cmpe 273?"
            "When is the midterm exam for cmpe 273?"
            "What time is the final exam for cmpe 273?"
            "What time is the midterm exam for cmpe 273?"
    """
    opening = Lemmas("what time be") | Lemmas("when be")
    exam = Group(Plus(Lemmas("final exam") | Lemmas("midterm exam")), "exam")
    regex = opening + Question(
        Pos("DT")) + exam + Pos("IN") + Course() + Question(Pos("."))

    def interpret(self, match):
        exam = "The %s" % match.exam.tokens
        answer = exam + " for %s is on %s"
        exam_time = IsExamRelated() + match.course + HasFields(
            match.exam.tokens) + HasAnswer(answer.decode('utf-8'))
        return exam_time
Ejemplo n.º 24
0
class ListRestaurantInCityQuestion(QuestionTemplate):
    """
    Regex for questions about listing all restaurants in a city
    Ex: "list all restaurants in New York City?"
        "Restaurants in London?"  
    """

    city = Group(Plus(Pos("NN") | Pos("NNS") | Pos("NNP") | Pos("NNPS")),
                 "city")

    regex = (Question(Lemma("list")) + Question(Lemma("all")) +
             (Lemma("restaurant") | Lemma("restaurants")) + Pos("IN") + city +
             Question(Pos(".")))

    def interpret(self, match):
        city = HasKeyword(match.city.tokens)
        restaurants = IsRestaurant() + CityOf(city)
        return NameOf(restaurants), "enum"
Ejemplo n.º 25
0
class PersonThatTookPartInConflictNationalityBornBefore(QuestionTemplate):
    regex = Question(Lemma("list")) + (
        Lemma("person") | Lemma("persons")
        | Lemma("people")) + (Pos("WP") | Pos("WDT")) + (
            (Lemma("was") + Lemma("involved")) |
            (Lemma("took") + Lemma("part")) | Lemma("fight")
            | Lemma("fought")) + Pos("IN") + MilitaryConflict() + Plus(
                Pos("WP") | Pos("WDT") | Pos("WRB") | Lemma("be")) + (
                    Lemma("from") | Lemma("bear") + Pos("IN")
                ) + Nationality() + Lemma("before") + BornBeforeYear()

    def interpret(self, match):
        military_conflict, i, j = match.militaryconflict
        _nationality, i1, j1 = match.nationality
        _born_year, i2, j2 = match.bornbeforeyear
        rezultat = military_conflict + military_conflict + IsMilitaryPersonnelInvolved(
            IsPerson() + _born_year + _nationality + HasId())
        return rezultat, ReturnValue(i, j)
Ejemplo n.º 26
0
class Author(Particle):
    regex = Plus(nouns | Lemma("."))

    def interpret(self, match):
        name = match.words.tokens
        return IsPerson() + HasKeyword(name)
Ejemplo n.º 27
0
class Book(Particle):
    regex = Plus(nouns)

    def interpret(self, match):
        name = match.words.tokens
        return IsBook() + HasKeyword(name)
Ejemplo n.º 28
0
class Band(Particle):
    regex = Question(Pos("DT")) + Plus(Pos("NN") | Pos("NNP") | Pos("CD"))

    def interpret(self, match):
        name = match.words.tokens.title()
        return IsBand() + HasKeyword(name)
Ejemplo n.º 29
0
class BandName(Particle):
    regex = Question(Pos("DT")) + Plus(Pos("NN") | Pos("NNP"))

    def interpret(self, match):
        name = match.words.tokens.title()
        return LabelOfFixedDataRelation(name)
Ejemplo n.º 30
0
def list_of(things):
    thing_seq = Plus(R(lowercase_is_in(things)))
    return thing_seq + Star(Qu(P(',')) + Qu(L('and') | L('or')) + thing_seq)