Regex, чтобы соответствовать названиям компаний из заявлений об авторских правах при нескольких условиях

Вы сравниваете две довольно разные вещи. Apache Spark - это вычислительный механизм, в то время как упомянутые вами решения Amazon и Microsoft предлагают услуги. Эти сервисы могут также иметь Spark с MLlib за сценой.

Количество компаний, таких как Domino Data Lab, Cloudera или IBM, предлагает продукты, которые можно развернуть на своем собственном кластере Spark и легко создавать сервис вокруг ваших моделей (с разной степенью гибкости).

Естественно, вы создаете сервис самостоятельно с помощью различных инструментов с открытым исходным кодом. Что конкретно? Все зависит от того, что вам нужно. Как пользователь должен взаимодействовать с моделью? Должен ли быть какой-то пользовательский интерфейс или шутить REST API? Вам нужно изменить некоторые параметры на модели или самой модели? Являются ли рабочие места более частыми или реальными? Естественно, вы можете создать решение «все-в-одном», но это будет огромным усилием.

. Моя личная рекомендация заключалась бы в том, чтобы воспользоваться, если можно, одним из доступных сервисов Amazon, Google , Microsoft или что угодно. Нужно ли размещать на месте? Проверьте Domino Data Lab, их продукт зрелый и позволяет легко работать с моделями (от здания до развертывания). Cloudera больше ориентирован на кластерные вычисления (включая Spark), но это займет некоторое время, прежде чем у них что-то созреет.

[EDIT] Я бы рекомендовал посмотреть Apache PredictionIO , сервер обучения с открытым исходным кодом - потрясающий проект с потенциалом лота.

2
задан Allan 20 March 2019 в 13:35
поделиться

1 ответ

Вы можете рассмотреть регулярное выражение типа

(?i)(?:©(?:\s*Copyright)?|Copyright(?:\s*©)?)\s*\d+(?:\s*-\s*\d+)?\s*(.*?(?=\W*All\s+rights\s+reserved)|[^.]*(?=\.)|.*)

См. Демонстрацию регулярных выражений . Используйте вместе с ним модификатор без учета регистра, re.I.

Подробности

  • (?:©(?:\s*Copyright)?|Copyright(?:\s*©)?) - либо
    • ©(?:\s*Copyright)? - © char, за которыми следует необязательная подстрока из 0+ пробелов, а затем [ 117]
    • | - или
    • Copyright(?:\s*©)? - Copyright, за которыми следует необязательная подстрока из 0+ пробелов и © char
  • [ 1133] \s* - 0+ пробелов
  • \d+ - 1+ цифр (используйте \d{4}, если годы всегда содержат 4 цифры)
  • (?:\s*-\s*\d+)? - необязательная последовательность - заключено в 0+ пробелов и затем 1+ цифр (используйте \d{4}, если годы всегда содержат 4 цифры)
  • \s* - 0+ пробелов
  • (.*?(?=\W*All\s+rights\s+reserved)|[^.]*(?=\.)|.*) - [ 1147] Захват группы 1 : любая из альтернатив:
    • .*?(?=\W*All\s+rights\s+reserved) - любые 0+ символов, кроме символов разрыва строки, возможно меньшее количество, вплоть до 0+ несловарных символов, сопровождаемых All rights reserved строка
    • [^.]*(?=\.) - любые 0+ символов, кроме ., как можно больше, вплоть до ., не включая .
    • .* - остальные линия

[112 8] Демонстрация Python :

import re
s = "Copyright © 2019 Apple Inc. All rights reserved.\r\n© 2019 Quid, Inc. All Rights Reserved.\r\n© 2009 Database Designs \r\n© 2019 Rediker Software, All Rights Reserved\r\n©2019 EVOSUS, INC. ALL RIGHTS RESERVED\r\n© 2019 Walmart. All Rights Reserved.\r\n© Copyright 2003-2019 Exxon Mobil Corporation. All Rights Reserved.\r\nCopyright © 1978-2019 Berkshire Hathaway Inc.\r\n© 2019 McKesson Corporation\r\n© 2019 UnitedHealth Group. All rights reserved.\r\n© Copyright 1999 - 2019 CVS Health\r\nCopyright 2019 General Motors. All Rights Reserved.\r\n© 2019 Ford Motor Company\r\n©2019 AT&T Intellectual Property. All rights reserved.\r\n© 2019 GENERAL ELECTRIC\r\nCopyright ©2019 AmerisourceBergen Corporation. All Rights Reserved.\r\n© 2019 Verizon\r\n© 2019 Fannie Mae\r\nCopyright © 2018 Jonas Construction Software Inc. All rights reserved.\r\nAll Comments © Copyright 2017 Kroger | The Kroger Co. All Rights Reserved\r\n© 2019 Express Scripts Holding Company. All Rights Reserved. 1 Express Way, St. Louis, MO 63121\r\n© 2019 JPMorgan Chase & Co.\r\nCopyright © 1995 - 2018 Boeing. All Rights Reserved.\r\n© 2019 Bank of America Corporation. All rights reserved.\r\n© 1999 - 2019 Wells Fargo. All rights reserved. NMLSR ID 399801\r\n©2019 Cardinal Health. All rights reserved.\r\n© 2019 Quid, Inc All Rights Reserved."
rx = r"(?:©(?:\s*Copyright)?|Copyright(?:\s*©)?)\s*\d+(?:\s*-\s*\d+)?\s*(.*?(?=\W*All\s+rights\s+reserved)|[^.\n]*(?=\.)|.*)"
for m in re.findall(rx, s, re.I):
    print(m)

Вывод:

Apple Inc
Quid, Inc
Database Designs 
Rediker Software
EVOSUS, INC
Walmart
Exxon Mobil Corporation
Berkshire Hathaway Inc
McKesson Corporation
UnitedHealth Group
CVS Health
General Motors
Ford Motor Company
AT&T Intellectual Property
GENERAL ELECTRIC
AmerisourceBergen Corporation
Verizon
Fannie Mae
Jonas Construction Software Inc
Kroger | The Kroger Co
Express Scripts Holding Company
JPMorgan Chase & Co
Boeing
Bank of America Corporation
Wells Fargo
Cardinal Health
Quid, Inc
0
ответ дан Wiktor Stribiżew 20 March 2019 в 13:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: