Как сделать распознавание именованных сущностей (NER) с помощью quANTA?

Наличие фрейма данных с текстом

df = data.frame(id=c(1,2), text = c("My best friend John works and Google", "However he would like to work at Amazon as he likes to use python and stay at Canada")

Без предварительной обработки

Как можно извлечь распознавание сущности имени, например this

Примеры слов результатов

dfresults = data.frame(id=c(1,2), ner_words = c("John, Google", "Amazon, python, Canada")

person Nathalie    schedule 31.07.2019    source источник


Ответы (1)


Вы можете сделать это без quanteda, используя пакет spacyr - оболочку для библиотеки spaCy, упомянутой в вашей связанной статье.

Здесь я немного отредактировал ваш input data.frame.

df <- data.frame(id = c(1, 2), 
                 text = c("My best friend John works at Google.", 
                          "However he would like to work at Amazon as he likes to use Python and stay in Canada."),
                 stringsAsFactors = FALSE)

Потом:

library("spacyr")
library("dplyr")

# -- need to do these before the next function will work:
# spacy_install()
# spacy_download_langmodel(model = "en_core_web_lg")

spacy_initialize(model = "en_core_web_lg")
#> Found 'spacy_condaenv'. spacyr will use this environment
#> successfully initialized (spaCy Version: 2.0.10, language model: en_core_web_lg)
#> (python options: type = "condaenv", value = "spacy_condaenv")

txt <- df$text
names(txt) <- df$id

spacy_parse(txt, lemma = FALSE, entity = TRUE) %>%
    entity_extract() %>%
    group_by(doc_id) %>%
    summarize(ner_words = paste(entity, collapse = ", "))
#> # A tibble: 2 x 2
#>   doc_id ner_words             
#>   <chr>  <chr>                 
#> 1 1      John, Google          
#> 2 2      Amazon, Python, Canada
person Ken Benoit    schedule 31.07.2019
comment
Если я получаю такую ​​ошибку Finding a python executable with spaCy installed... Error in set_spacy_python_option(python_executable, virtualenv, condaenv, : spaCy or language model en is not installed in any of python executables., как я могу ее исправить? - person Nathalie; 14.08.2019
comment
См. Инструкции по установке spacyr на странице spacyr.quanteda.io. Похоже, вы неправильно установили spacyr. - person Ken Benoit; 15.08.2019