извлечь существительные и глаголы, используя NLTK - PullRequest
0 голосов
/ 03 мая 2018

У меня есть приложение для отдыха django и модельное задание. Я абсолютно новичок в естественной обработке и хочу создать функцию, которая возвращает мне список существительных и глаголов. Это выглядит примерно так:

@api_view(['GET'])        
def noun_verb_list(request):

    nouns = []
    verbs = []
    """
    List all nouns and verbs from available tasks
    """
    if request.query_params.get('projectId'):
            # get a specific project 
            projectId = request.query_params.get('projectId')
            project = Project.objects.get(id=projectId)
            tasks = project.project_tasks.all()

            # extract nouns and verbs from tasks here


            return Response(# return appropriate nouns)

Может ли кто-нибудь помочь мне построить эту функцию? Что импортировать и с логикой?

1 Ответ

0 голосов
/ 03 мая 2018

Использование nltk pos-tagger

>>> import nltk
>>> text = nltk.word_tokenize("They refuse to permit us to obtain the refuse permit")
>>> pos_tagged = nltk.pos_tag(text)
>>> pos_tagged
[('They', 'PRP'), ('refuse', 'VBP'), ('to', 'TO'), ('permit', 'VB'), ('us', 'PRP'),
('to', 'TO'), ('obtain', 'VB'), ('the', 'DT'), ('refuse', 'NN'), ('permit', 'NN')]
>>> nouns = filter(lambda x:x[1]=='NN',pos_tagged)
>>> nouns
[('refuse', 'NN'), ('permit', 'NN')]

Существительные отмечены NN, а глаголы - VB, поэтому вы можете использовать их соответственно.

Примечание: Если вы не настроили / скачали punkt и averaged_perceptron_tagger с помощью nltk, вам, возможно, придется сделать это с помощью:

import nltk
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
...