我有一個公司名單,但其中一些公司只是人名。我想從名單中排除這些人,但我無法找到一種方法來識別公司的人名。區分人名和公司名稱之間的清單
通過在線研究,我嘗試了兩種方法。首先是使用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
模塊,但這也不起作用,因爲它將公司名稱標記爲該人的姓名。
有沒有一種方法可以區分上面列出的人名和公司名稱?
是,清單?如果是這樣,你錯過了一些逗號,並且你的報價出了點怪異 – depperm
聽起來更像是一個機器學習問題。你如何期待NLTK知道「公司」的定義?你必須告訴它(INC,LLC,CO,GROUP)都是關鍵字 –
我的錯我把它列爲一個正確的列表。 – Jstuff