У меня есть список компаний, но некоторые из этих компаний просто имена людей. Я хочу исключить этих людей из списка, но не могу найти способ идентифицировать имена людей из компаний.
С помощью онлайн-исследований я попробовал два способа. Первый использует nltk
. Мой код выглядит так
y = ['INOVATIA LABORATORIES LLC', 'PRULLAGE PHD JOSEPH B', 'S J SMITH CO INC', 'TEVA PHARMACEUTICALS USA INC', 'KENT NUTRITION GROUP INC', 'JOSEPH D WAGENKNECHT', 'ROBERTSON KEITH', 'LINCARE INC', 'AGCHOICE - BLUE MOUND']
В приведенном выше списке я хотел бы удалить PRULLAGE PHD JOSEPH B
, JOSEPH D WAGENKNECHT
и ROBERTSON KEITH
.
z = []
for company in y:
tokens = nltk.tokenize.word_tokenize(company)
z.append(nltk.pos_tag(tokens))
Это не работает, потому что все помечается как имя собственное. Затем я перевел все в нижний регистр и сделал только первую букву каждого слова прописной, используя .title()
, но это также не удалось по тем же причинам.
Другой метод, который я пробовал, заключался в использовании модуля Human Name Parser
, но он также не сработал, потому что он помечает названия компаний как имя и фамилию человека.
Есть ли способ, которым я могу различать приведенный выше список между человеческими именами и названиями компаний?
TypeError: must use keyword argument for key function
02.08.2016key = lambda
, но функция сортировки, вероятно, в этом случае не сортирует. Он создает группыkey_words
для сортировки, но не создает одну большую группу для каждой. 02.08.2016