Список терминов / pos-тегирование векторов терминов в R
У меня есть файл.csv только с одним столбцом, содержащим 1000 строк. Каждая строка содержит слово (модель мешка со словами). Теперь я хочу выяснить для каждого слова, является ли оно существительным, глаголом, прилагательным и т. Д. Я хотел бы иметь второй столбец (с 1000 строками), каждый из которых содержит информацию (существительное или глагол), принадлежащую слову в столбце 1.
Я уже импортировал CSV в R. Но что мне теперь делать?
[Вот пример. У меня есть эти слова, и я хочу выяснить, является ли это существительным глаголом и т. Д.]
[
2 ответа
Есть несколько вариантов, но вы можете использовать udpipe
за это.
terms <- data.frame(term = c("unit", "determine", "generate", "digital", "mount", "control", "position", "input", "output", "user"),
stringsAsFactors = FALSE)
library(udpipe)
# check if model is already downloaded.
if (file.exists("english-ud-2.0-170801.udpipe"))
ud_model <- udpipe_load_model(file = "english-ud-2.0-170801.udpipe") else {
ud_model <- udpipe_download_model(language = "english")
ud_model <- udpipe_load_model(ud_model$file_model)
}
# no need for parsing as this data only contains single words.
t <- udpipe_annotate(ud_model, terms$term, parser = "none")
t <- as.data.frame(t)
terms$POSTAG <- t$upos
terms
term POSTAG
1 unit NOUN
2 determine VERB
3 generate VERB
4 digital ADJ
5 mount NOUN
6 control NOUN
7 position NOUN
8 input NOUN
9 output NOUN
10 user NOUN
Вы могли бы использовать spacyr
который является R-оболочкой для пакета Python spaCy
,
Примечание: вам придется
- настройка spacy https://spacy.io/usage/
- установить модели на английском языке https://spacy.io/usage/models
library(spacyr)
spacy_initialize(python_executable = '/path/to/python')
Тогда для ваших условий:
Terms <- data.frame(Term = c("unit",
"determine",
"generate",
"digital",
"mount",
"control",
"position",
"input",
"output",
"user"), stringsAsFactors = FALSE)
Используйте функцию spacy_parse()
чтобы пометить свои термины и добавить их в свой фрейм данных:
Terms$POS_TAG <- spacy_parse(Terms$Term)$pos
Результат:
Term POS_TAG
1 unit NOUN
2 determine VERB
3 generate VERB
4 digital ADJ
5 mount VERB
6 control NOUN
7 position NOUN
8 input NOUN
9 output NOUN
10 user NOUN