2016-10-29 7 views
1

У меня есть список компаний, как в следующемимена Поиск компаний в новостях с помощью питона

companies = [Advance Auto Parts Inc, AllianceBernstein Holding L.P., AbbVie Inc., Asbury Automotive Group Inc, ABM Industries Incorporated] 

У меня также есть ежедневные новости данные.

News = ['news1', 'news2', 'news3'] 

Теперь я хочу, чтобы искать эти имена в данных новостей, но в новостях названия компаний не встречаются, как полные имена, как в приведенном выше списке. Я хочу сделать что-то вроде этого:

for news in News: 
    for company in companies: 
     if (company in news): 
      print('do something') 

Лучшая идея прямо сейчас приходит на ум мой взять имена всех компаний, таким образом, что, как ожидается, будет называться в Новостях, но это займет много времени, потому что у меня есть тысячи компаний. Любые предложения по решению этой проблемы? Благодарю.

ответ

0

Я предлагаю вам выбрать списки имен компаний из самого Интернета и перестроить свой список. Тонкая настройка поиска Google с помощью google dorks может помочь вам.

Как положить

list of fortune 500 companies ext:xls 

выше мужлан в Google строке поиска появится некоторый XLS файл со списком. Я думаю, что по-прежнему потребуется некоторая ручная работа, но с большей легкостью

2

Сначала попробуйте определить наиболее распространенные окончания; например Inc или Ltd, то вы сможете найти новости для Advance Auto Parts Inc и раздели версии Advance Auto Parts. Тогда вы могли бы попытаться выяснить, есть ли какие-либо другие слова, как Группа или строки, как And Sons в имени.

Каждый раз, когда запускается функция поиска новостей с полным именем, а затем с каждой из разделенных версий.

news(company_name): 
    stripped_versions = company_name 
    stripped_versions += strip(company_name) 
    for version in stripped_versions: 
     search_news(version) 

Где stripped_versions находится список названия компании, включая раздели версии, например: [Advance Auto Parts Inc, Advance Auto Parts]

Я надеюсь, что это псевдо-код помог вам подойти к вашей проблеме