Есть ли возможность сопоставить два слова в символе, когда эти два слова окружены другими словами? - PullRequest
0 голосов
/ 04 апреля 2019

Я пытался сопоставить два слова из текстового файла вместе. В частности, по следующей ссылке вы можете увидеть биографии людей: https://www.sec.gov/Archives/edgar/data/1084869/0001437749-17-017820.txt или https://www.sec.gov/Archives/edgar/data/1084869/000143774917017820/flws20171026b_def14a.htm

т.е. ссылки следующие: Ларри Зарин, 63 года, является директором компании с марта 2009 года. Г-н Зарин был старшим вице-президентом и директором по маркетингу в Express Scripts, компании из списка Fortune 25, целью которого является использование отпускаемые по рецепту лекарства безопаснее и доступнее до выхода на пенсию в июле 2013 года

Итак, я хочу сопоставить второе имя Зарин со словом «Маркетинг» и поместить этот символ из двух слов в одну ячейку.

Я создал таблицу со вторым именем

NAME

Oliver       
Zarin        
McCann       
Hegarty 

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

a<-"https://www.sec.gov/Archives/edgar/data/1084869/0001437749-17-017820.txt"
singleString <- paste(readLines(paste0(a)), collapse=" ")
singleString <-as.character(singleString)
b<-gsub("<[^>]+>", "",singleString)
a<-gsub('[0-9]+', '', b)

Но потом я запускаю разные коды из пакета stringi, например stri_replace_all_regex. Но каждый раз, когда я получал неправильные результаты.

\ bNAME? \ S + (?: \ W + \ s +) {0,30} маркетинг | Маркетинг \ NAME \ b

Приведенный выше код помогает выбрать диапазон слов между двумя ИМЕНАМИ, поэтому, если биография другого человека начинается, биография предшествующих заканчивается.

Окончательный результат должен выглядеть следующим образом:

NAME       MARKETING

Oliver       1
Zarin        1
McCann       0
Hegarty      0
...