У меня есть данные, содержащие текст, и я хотел бы попытаться извлечь названия компаний из текста. Данные выглядят так:
d <- data.frame(
textColumn = c(
"Apple CEO reports positive growth in Iphone sales",
"Apple's quarterly results are expected to beat that of Intel's",
"Microsoft is expected to release a new product which rivales Apple's Iphone which uses Intels processors",
"Intel Corporation seeks to hire 5000 new staff",
"Amazon enters a new market, the same as Intel"
)
)
Данные:
textColumn
1 Apple CEO reports positive growth in Iphone sales
2 Apple's quarterly results are expected to beat that of Intel's
3 Microsoft is expected to release a new product which rivales Apple's Iphone
4 Intel Corporation seeks to hire 5000 new staff
5 Amazon enters a new market, the same as Intel
В векторе у меня есть несколько названий компаний.
companyNames <- c(
"Apple Inc",
"Intel Corp",
"Microsoft Corporation",
"Amazon Company"
)
Данные:
[1] "Apple Inc" "Intel Corp" "Microsoft Corporation" "Amazon Company"
Данные в тексте не позволяют мне точно извлечь названия компаний, поскольку символьная строка в основном содержит полное название компании Apple Inc
, Intel Corp
et c. но текстовые данные относятся только к компании Apple
и Intel
et c.
Я хотел бы использовать извлечение нечеткой строки, чтобы попытаться извлечь названия компаний из текста, чтобы ожидаемый результат с использованием этот пример будет:
c(
"Apple",
"Apple | Intel",
"Microsoft | Apple | Intel",
"Intel",
"Amazon | Intel"
)
Данные:
[1] "Apple" "Apple | Intel" "Microsoft | Apple | Intel" "Intel" "Amazon | Intel"
Поскольку Apple
встречается только один раз в первой строке текстовых данных, тогда как Apple
и Intel
оба встречаются во второй строке (поэтому я разделяю их |
). Я просматриваю fuzzyExtract
из пакета fuzzywuzzyR
здесь , но я не могу заставить его работать с моими образцами данных.