как вернуть вывод функции в виде списка - PullRequest
0 голосов
/ 15 октября 2018
def fetch_name(resume_text):
  tokenized_sentences = nltk.sent_tokenize(resume_text)
  for sentence in tokenized_sentences:
    for chunk in nltk.ne_chunk(nltk.pos_tag(nltk.word_tokenize(sentence), tagset='universal')):
      if hasattr(chunk, 'label'):# and chunk.label() == 'PERSON':
        chunk = chunk[0]
      (name, tag) = chunk
      if tag == 'NOUN':
          #print(name)
          #z.extend(name)
          return name             

path = '/home/python/resumes/*.txt'
files = glob.glob(path)
for n in files:
    with io.open(n,'r') as f:
        data=f.read()
        print(fetch_name(data))

Ниже приведен вывод, который я получаю из следующего кода.Мне нужен вывод в виде списка ['Sharayu', 'neeraj' .....]

SHARAYU
Neeraj
Gregory
MEhul
Shashank
Sandeep
Atul
ADITYA
Manoj
SAGAR
Shreya

Ответы [ 4 ]

0 голосов
/ 15 октября 2018

Вы можете использовать метод добавления , чтобы добавить запись в список.

resumes = []
for path in glob.glob('/home/python/resumes/*.txt'):
    with open(path, 'r', encoding='utf-8') as f:
        resumes.append(fetch_name(f.read()))
print(resumes)
0 голосов
/ 15 октября 2018

Использование list() сделает это, как показано ниже:

namelist=list()    
for n in files:
    with io.open(n,'r') as f:
        data=f.read()
        namelist.append(fetch_name(data))
print(namelist)
0 голосов
/ 15 октября 2018

Если вы хотите, чтобы ваша функция возвращала список, вы можете инициализировать список и добавить имена в список:

def fetch_name(resume_text):
    names = []
    tokenized_sentences = nltk.sent_tokenize(resume_text)
    for sentence in tokenized_sentences:
        for chunk in nltk.ne_chunk(nltk.pos_tag(nltk.word_tokenize(sentence), tagset='universal')):
            if hasattr(chunk, 'label'):  # and chunk.label() == 'PERSON':
                chunk = chunk[0]
            (name, tag) = chunk
            if tag == 'NOUN':
                # print(name)
                # z.extend(name)
                names.append(name)
    return names
0 голосов
/ 15 октября 2018

Сделай так:

path = '/home/python/resumes/*.txt'
files = glob.glob(path)
data_list = []
for n in files:
    with io.open(n,'r') as f:
        data=f.read()
        data_list.append(fetch_name(data))
    print(data_list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...