Я использую пакет CleanNLP для анализа текстов.Я пытался извлечь список мест из текста, но у меня возникли некоторые проблемы с его распознаванием названий мест.
Используя тестовое тело текста x
, я использовал следующий код, чтобы загрузить его каканнотацию и извлечение сущностей местоположения:
#convert text string to clean NLP annotation
obj <- cnlp_annotate(x, as_strings = TRUE)
#extract most commmon locations
cnlp_get_entity(obj) %>%
filter(entity_type == "LOCATION") %>%
group_by(entity) %>%
summarise(count = n()) %>%
top_n(n = 50) %>%
arrange(desc(count)) %>%
use_series(entity)
Однако, когда это выполняется, я получаю следующий вывод:
Selecting by count
character(0)
Я знаю, что в теле теста есть разные топонимытекста (например, Брайтон, Уортинг и т. д.), но он, кажется, не распознает их как таковые.
Когда я запускаю эквивалентный код, но ищу людей:
cnlp_get_entity(obj) %>%
filter(entity_type == "PERSON") %>%
group_by(entity) %>%
summarise(count = n()) %>%
top_n(n = 50) %>%
arrange(desc(count)) %>%
use_series(entity)
Извлекаетимена, которые я ожидал бы из тестового текста.
Мой вопрос заключается в том, идентифицирует ли пакет CleanNLP объекты, использующие модель таблицы поиска, и поэтому британские топонимы не распознаются, или существует правило на основе шаблонов, которое этигеографические названия не соблюдаются.