Exemplo n.º 1
0
def similar_concepts(request, lang, concept_name):
    # Default to retrieving 10 items.
    language = get_language(lang)
    count = int(request.GET.get('count', 10))
    try:
        concept = Concept.get(concept_name, language)
    except Concept.DoesNotExist:
        return respond_with('commonsense/concept_noinfo.html', request,
                            {'lang': lang, 'concept_name': concept_name})
    similarities = concept.similarities.values_list('concept2__text', 'score')
    return respond_with('commonsense/_weighted_concepts.html', request,
                        dict(similarities=similarities, lang=lang))
Exemplo n.º 2
0
def startpage(request, lang='en'):
    if 'text' in request.POST and request.POST['text'].strip()!='':
        text = request.POST['text']
        colordepth = 3
        if request.POST['colordepth']:
            if request.POST['colordepth'] == 'wholetext':
                colordepth = 0
            elif request.POST['colordepth'] == 'paragraph':
                colordepth = 1
            elif request.POST['colordepth'] == 'sentence':
                colordepth = 2
        colorized = deepColorTokenize(text,colordepth)
        return respond_with('colorizer/index.html', request, {'coloredtext':colorized, 'originaltext':text, 'MEDIA_ROOT':'/site_media/static'})
    else:
        return respond_with('colorizer/index.html',request,{'MEDIA_ROOT':'/site_media/static'})
Exemplo n.º 3
0
def statement_overview(request, lang, offset=0):
    offset = int(offset)
    language = get_language(lang)
    raw_assertions = get_top_raw_torate(language, 15, min_assertion_score=2,
                                        offset=offset)
    next = offset+1
    return respond_with('commonsense/statement_overview.html', request, locals())
Exemplo n.º 4
0
def predict_features(request, lang, concept_name):
    count = int(request.GET.get('count', 5))
    language = get_language(lang)
    try:
        concept = Concept.get(concept_name, language)
    except Concept.DoesNotExist:
        return respond_with('commonsense/concept_noinfo.html', request,
                            {'lang': lang, 'concept_name': concept_name})
    
    predictions = (
        list(concept.left_ynq.select_related('surface1', 'surface2')[:count]) +
        list(concept.right_ynq.select_related('surface1', 'surface2')[:count])
    )
    predictions = sorted([p for p in predictions if not p.obsolete()])[:count]
    
    return respond_with('commonsense/_predictions.html', request,
                        dict(predictions=predictions, lang=lang))
Exemplo n.º 5
0
def feature(request, lang, lr, relation_name, concept_name):
    language = get_language(lang)
    concept = Concept.objects.get(concept_name, language)
    relation = Relation.get(relation_name)
    cls = {'left': LeftFeature, 'right': RightFeature}[lr]
    feature = cls(relation, concept)
    return respond_with('commonsense/feature.html', request, dict(
            feature = feature))
Exemplo n.º 6
0
def concept(request, lang, concept_name):
    '''View for displaying a concept, specified by text.'''
    language = get_language(lang)
    try:
        concept = Concept.get(concept_name, language)
    except Concept.DoesNotExist:
        return respond_with('commonsense/concept_noinfo.html', request,
                            {'lang': lang, 'concept_name': concept_name})

    queryset = concept.raw_assertions_no_dupes().select_related('surface1', 'surface2', 'frame')
    return respond_with('commonsense/concept.html', request, dict(
        concept_name=concept_name,
        concept=concept,
        lang=lang,
        user=request.user,
        language=language,
        raw_assertions=queryset
    ))
Exemplo n.º 7
0
def add_main(request, lang):
    relations = Relation.objects.filter(description__isnull=False)
    suggestions = []
    for r in relations:
        frames = Frame.objects.filter(relation=r, language__id=lang,
        goodness__gte=2).order_by('-goodness')
        if len(frames) == 0: continue
        if r.description.startswith('*'): continue
        suggestions.append((r, frames[0]))
    return respond_with('commonsense/add_main.html', request, locals())
Exemplo n.º 8
0
def similar_concepts_category(request, lang, category):
    # Default to retrieving 10 items.
    count = int(request.GET.get('count', 10))

    svd = get_svd_results(lang)
    cat = category_from_urlcategory(svd, lang, category)
    items = svd.u_dotproducts_with(cat).top_items(count)
    
    concepts = [(canonical_form(text, lang),
                 score) for text, score in items]
    return respond_with('commonsense/_weighted_concepts.html', request,
                        dict(similarities=concepts, lang=lang))
Exemplo n.º 9
0
def main_page(request):
    languages = []
    for language in Language.objects.all():
        if language.id == 'zh-Hans':
            # not ready for simp. Chinese yet
            continue
        count = language.sentence_count
        if count > 1:
            languages.append((language.id, language.name, count))
    languages.sort(key = lambda x: -x[2])
    lang = 'en' # FIXME
    return respond_with('commonsense/main.html', request, {'languages':
    languages, 'lang': lang})
Exemplo n.º 10
0
def predict_features_category(request, lang, category):
    count = int(request.GET.get('count', 5))
    svd = get_svd_results(lang)
    parts, concepts, features = unpack_urlcategory(lang, category)
    cat = make_category_failsoft(svd, concepts, features, parts)
    
    got = 0
    pred_generator = get_predictions_from_vector(lang, concepts, cat, 100)
    predictions = []
    while got < count:
        prediction, score = pred_generator.next()
        predictions.append(prediction)
        got += 1
    return respond_with('commonsense/_predictions.html', request,
                        dict(predictions=predictions, lang=lang))
Exemplo n.º 11
0
def assertion(request, lang, assertion_id):
    language = get_language(lang)
    the_assertion = get_object_or_404(Assertion.objects, pk=int(assertion_id))
    raw_assertions = the_assertion.rawassertion_set.order_by('-score')
    raw_assertions = raw_assertions.select_related('surface1', 'surface2', 'frame', 'frequency')
    
    if request.user:
        vote = Vote.objects.get_for_user(the_assertion, request.user)
        if vote:
            if (len(raw_assertions) == 1 and raw_assertions[0].creator ==
            request.user):
                if vote.is_upvote():
                    request.user.message_set.create(message=ugettext("""
                        Thanks for contributing! Here is the assertion you
                        created.
                    """))
                elif vote.is_downvote():
                    request.user.message_set.create(message=ugettext("""
                        Thanks for contributing! You disagreed with this
                        prediction, helping Open Mind make better predictions
                        in the future.
                    """))

            else:
                if vote.is_upvote():
                    request.user.message_set.create(message=ugettext("""
                      You have voted for this assertion. We encourage you to also
                      vote on the statements that support the assertion, below.
                      Vote for the ones that you think are the best way to say it.
                    """))
                elif vote.is_downvote():
                    request.user.message_set.create(message=ugettext("""
                      You have voted against this assertion. We encourage you to also
                      vote on the statements that support the assertion, below.
                      Unless they were simply misunderstood by Open Mind, you may
                      want to vote against them as well.
                    """))
    raw_assertions = raw_assertions.filter(score__gt=-1)
    return respond_with('commonsense/assertion.html', request, locals())
Exemplo n.º 12
0
def add_statement(request, lang, frame_id, text1, text2):
    frame = get_object_or_404(Frame.objects, pk=int(frame_id))
    if text1 in ('-', '...'): text1 = ''
    if text2 in ('-', '...'): text2 = ''
    field1 = '<input type="text" name="text1" value="%s">' % text1
    field2 = '<input type="text" name="text2" value="%s">' % text2
    if 'context' in request.GET:
        if request.GET['context'] == 'yes':
            add_message(request, """
                You said that this is true. You can now change the grammar or
                wording of the statement if you want. Click Add to teach this
                new fact to Open Mind.
            """)
        elif request.GET['context'] == 'maybe':
            add_message(request, """
                You said that this is sort of true. Can you change the text to
                make a statement that you consider true?
            """)
    possible_frames = Frame.objects.filter(language=frame.language,
      relation=frame.relation, goodness__gte=3)
    #show_frames = len(possible_frames) > 1
    show_frames = False
            
    return respond_with('commonsense/add_statement.html', request, locals())
Exemplo n.º 13
0
def recent_statements(request, lang, offset=0):
    offset = int(offset)
    language = get_language(lang)
    raw_assertions = get_recent_raw(language, 15, offset)
    next = offset+1
    return respond_with('commonsense/statement_recent.html', request, locals())
Exemplo n.º 14
0
def concept_overview(request, lang):
    if 'concept_name' in request.POST:
        return concept(request, lang, request.POST['concept_name'])
    language = get_language(lang)
    concepts = get_random_concepts(language, 10)
    return respond_with('commonsense/concept_overview.html', request, locals())