Ошибка извлечения ключевых слов на основе графа при создании сети ключевых слов
Для моего основного исследования мне нужно найти ключевые слова для записей пользователей с платформы разработки продукта, и я использую метод на основе графа-pagerank. Я наткнулся на коды, которые генерируют начальный график сети ключевых слов, а затем после запуска кода PageRank я могу получить ключевые слова. Однако проблема в том, что когда я заменяю текст примера на проверенный текст, он больше не работает, код ниже показывает этап до создания начального графика ключевых слов. (pagerank) не входит. результаты должны выглядеть следующим образом ** сеть ключевых слов
Я получил ошибку:
Ошибка: неожиданная строковая константа в: tagged_words<- SplitText (as.character (tagged_text)) tagged_words <- c (SelectTaggedWords (tagged_words, "/ NN"), SelectTaggedWords (tagged_words, "" tagged_words <- RemoveTags (tagged_words) # remove un -используемый тег POS Ошибка в as.character (x): невозможно принудить тип 'замыкание' к вектору типа 'символ' Вызывается из: sub ("/ [AZ] {2,3}", "", Words) Обзор 1> selected_words <- уникальный (tagged_words)
Ошибка при переносе: unique() применяется только к векторам. Ошибка в классе (igraph) % в% "igraph": объект 'textIgraph' не найден
проверенный текст:
Это бескомпромиссная двухместная, уличная и легковая машина, ее скульптурные линии кузова напоминают великих гонщиков 60-х годов. Смесь современных линий, которые изящно текут, и ДНК борцов за ралли, со своим собственным ароматом. У него очень жесткие трубки шасси покрыто сексуальным цельным кузовом. он использует обычные светодиодные фонари и другие детали OEM. Local Motors, Race Fighter: бескомпромиссная двухместная, уличная и гоночная машина, ее скульптурные линии кузова напоминают великих гонщиков 60-х годов. Сочетание современных линий, которые грациозно текут, и ДНК Rally Fighters, со своим собственным ароматом У него очень жесткое шасси, покрытое изящным цельным кузовом. он использует обычные светодиодные фонари и другие детали OEM. Amigo, Хороший легкий автомобиль, братан, как подвеска толкателя, saludo поздравления! приятный вид спереди и цветовая раскладка. Вот раздетая версия без ветрового стекла, вам нужно нажать на кнопку "Файлы" ниже Вот раздетая версия без ветрового стекла. Местные моторы, гоночный истребитель: бескомпромиссная двухместная, уличная и гоночная машина, ее скульптурные линии кузова напоминают великих гонщиков из 60s.a смесь современных линий, которые изящно текут, и ДНК Rally Fighters, со своим собственным ароматом. У него очень жесткое шасси, покрытое сексуальным цельным кузовом. он использует обычные светодиодные фонари и другие детали OEM. Удивительный товарищ по автомобилю, просто поражает только то, что вы хотели бы видеть более преувеличенные выхлопные насадки, а также потрясающее портфолио, какую программу вы используете для моделирования? Надеюсь, вы сможете пройти мимо и дать мне отзыв о моей машине. Крутая машина, я люблю крошечные крылья на крыше, а также ветровое стекло и шаркеш выглядят довольно хорошо, это похоже на американскую версию автомобиля под названием моно, они выглядело бы потрясающе, гоняя друг друга с MR-макетом, а другой - с классической FR-схемой, надеюсь, вы сможете пройти мимо и дать мне отзыв о моей машине. Привет, матовый, хороший автомобиль. Мне нравится, с первого взгляда, это 3d модель или эскиз. Надеюсь, вы пройдете мимо, чтобы увидеть мой проект и дать некоторую обратную связь. Великолепные зарисовки, отчасти напоминающие мне горячие колеса, которые у меня были в детстве, здорово видеть подобные вещи, 4-й набросок заставляет меня задуматься о гонках на Луне. Grat агрессивный дизайн Я люблю "впуск-совок-что-то", это довольно крутая хорошая машина, мне больше нравится версия Вейдера, почему гравитация отстой? это держит вещи на полу! и что важнее, это закон! Спасибо Мэтт, рад слышать, что хорошего дня. Спасибо, приятель, мне приятно слышать, что, особенно от замечательного дизайнера, очень хорошего рендера, мне нравится подвеска толкателя, я все еще жду, когда ты немо пройдешь мимо и вернёшься к моей машине, проведешь замечательный день. Ух ты, красивые зарисовки. Мне нравится роботизированный стиль. 5/5. Отличная работа. Спасибо большое, хорошая работа по кузову и интересное распределение. Мне очень нравится задняя часть. Очень интересный подход, я представляю себе парней, которые пытаются набить Нюрбургринг так быстро, как только могут. их 911-ые и сумасшедший чувак на этом бойце, стреляющем в пейнтбольные мячи для них, jajajaja, отлично соображая вне коробки, надеюсь, что вы сможете пройти мимо и высказать мне свое мнение о моей записи. Между прочим, я считаю, что ваш процесс проектирования бесстрашный, и я думаю, что именно это способствует развитию автомобильного дизайна. хорошая техника зарисовок, похоже на гонщика из трона, надеюсь, вы сможете пройти мимо и оставить мне свое мнение о моей записи, удачи, брат, спасибо, братан. Великие зарисовки!! и пропорции, как 4-й вид сбоку. Привет, Сал! Это похоже на художественную машину ручной работы, я вижу, вы делали другие проекты, для меня это лучший, мне он очень нравится, хотя я дам вам совет по изучению различных стилей. Поскольку я вижу, что все ваши записи имеют схожий стиль, вы можете попробовать другие языки дизайна, разумеется, поддерживая это в соответствии с вашим личным стилем и привнося часть этого во все ваши дизайны, но также используя другие элементы вдохновения и элементы. еще несколько просмотров, это фактическая конфигурация, я хотел бы, чтобы моя jajaja выглядела великолепно в режиме гонки, на цветах залива!! этот рендеринг заставил меня взглянуть по-другому: некоторые интересные элементы, такие как передняя часть, открытая подвеска толкателя и крыло, надеются, что вы пройдете мимо, чтобы дать мне отзыв о моей записи Nice Job, простой, но современный, какие САПР вы используете для моделирования и рендеринга? надеюсь, что вы можете пройти мимо, чтобы дать мне отзыв о моей записи, ура, брат! Последняя попытка загрузить изображение Gracias Chavito с вердиктами и моделями. Его творческий опыт и изобретатель, потому что я знаю, как это работает, пока еще не закончил (18 дней), как есть. и все остальные, и другие, и другие, и другие, и другие. хорошая круглая машина, люблю ремни и переднюю часть, но не очень уверена насчет задней части, новые рендеры Chachan, вот она, я внесла некоторые исправления, на которые указывали ваши приятели, видимо, проблема заключалась в том, что когда я заключил брак между кузовом и ходовой частью мне пришлось отрезать кузов и использовать и автоматический инструмент для заделки кузова, чтобы привести в порядок кузов, что из-за давления отделки во времени создало любопытную поверхность вокруг пилара, я также сделал небольшое филе на стороне поверхности, я думаю, что машина выглядит лучше. Спасибо: @charlyron, @chavito, @Seizmicdesign:)
Я просто могу сказать вам 5/5, хотя мне не нравятся задние фонари фиесты, в противном случае отличная работа, отличные эскизы, братан, жаль, что вы не закончили с этим, надеюсь, вы сможете пройти мимо и высказать мне мнение о моем дизайне. много интересного материала, мне нравится вид сзади на 3-й странице, а также опция b в профилях последней страницы, у вас есть настоящий талант, надеюсь, вы пройдете мимо, чтобы дать мне несколько отзывов о моем дизайне, ура. Большое спасибо за ваш комментарий, также здорово получить обратную связь с женской точки зрения.
Большое спасибо, приятель, поможет ли это, если я скажу тебе, что на высокооктановом топливе трубы плюются огнем?? яжа шучу, спасибо за отзыв. спасибо jessydude рад, что тебе понравилось, приятель, я пытался сделать так, чтобы Miami Vice jajaja О, я забыл дать объяснение, что я использую полное ветровое стекло, потому что я думаю, что легче снять полный дизайн кузова, который одевается в полоску:) на тот случай, если вам интересно, почему я не изменил все представления для более полосатой версии. Q3 выглядит лучше, на мой взгляд, я согласен с mahbuick, чтобы попытаться получить верхнюю линию освещения, чтобы соответствовать линии гриля, так что вы устраняете этот пробел, клевая общая различная графика. Большое спасибо Удивительный рендеринг и версии R. мой выбор был бы серебряным с красной рамкой и 6 спицами.
Здесь тот же кузов, но с упрощенной (более реалистичной) версией шасси (рамы). Chavito, Спасибо за ваш совет, вы помогли мне увидеть детали, которые я проехал, я исправил некоторые из них для некоторых окончательных рендеров, и еще раз Ваша запись является удивительным.Gracias hermano.
Вот оно с шасси и угловыми секциями для гладких поверхностей и других небольших исправлений
Чувак, потрясающий дизайн:D ты отличный дизайнер, продолжай двигаться вперед, я уверен, что когда-нибудь я увижу хорошую машину и скажу, что узнаю этот стиль!!! О, да, мальчик Хантиг!!! и искать его в Google, чтобы подтвердить мои подозрения.
library(NLP)
library(tm)
library(openNLP)
library(graph)
library(BiocGenerics)
library(parallel)
# --- FUNCTIONS
tagPOS <- function(x, ...) {
s <- as.String(x)
word_token_annotator <- Maxent_Word_Token_Annotator()
a2 <- Annotation(1L, "sentence", 1L, nchar(s))
a2 <- annotate(s, word_token_annotator, a2)
a3 <- annotate(s, Maxent_POS_Tag_Annotator(), a2)
a3w <- a3[a3$type == "word"]
POStags <- unlist(lapply(a3w$features, `[[`, "POS"))
POStagged <- paste(sprintf("%s/%s", s[a3w], POStags), collapse = " ")
list(POStagged = POStagged, POStags = POStags)
}
SplitText <- function(Phrase) {
unlist(strsplit(Phrase," "))
}
trim <- function (x) gsub("^\\s+|\\s+$", "", x)
IsPunctuated <- function(Phrase) {
length(grep("\\.|,|!|\\?|;|:|\\)|]|}\\Z",Phrase,perl=TRUE))>0 # punctuation: . , ! ? ; : ) ] }
}
SelectTaggedWords <- function(Words,tagID) {
Words[ grep(tagID,Words) ]
}
RemoveTags <- function(Words) {
sub("/[A-Z]{2,3}","",Words)
}
IsSelectedWord <- function(Word) {
ifelse(length(which(selected_words == Word))>0, TRUE, FALSE)
}
GetWordLinks <- function(position,scope) {
scope <- ifelse(position+scope>length(words),length(words),position+scope)
links <- ""
for (i in (position+1):scope) {
if ( IsSelectedWord(words[i]) ) links <- c(links,words[i])
}
if (length(links)>1) {
links[2:length(links)]
}
else {
links <- ""
}
}
ConstructTextGraph <- function(n) {
word_graph <- new("graphNEL")
i <- 1
while (i < length(words) ) {
if ( IsSelectedWord(words[i]) ) {
links <- GetWordLinks(i,n)
if (links[1] != "") {
cat(i," ",words[i]," - ",paste(c(links),collapse=" "),"\n")
if ( length(which(nodes(word_graph)==words[i]))==0 ) {
word_graph <- addNode(words[i],word_graph)
}
for (j in 1:length(links)) {
if ( length(which(nodes(word_graph)==links[j]))==0 ) {
word_graph <- addNode(links[j],word_graph)
word_graph <- addEdge(words[i],links[j],word_graph,1)
}
else {
if ( length(which(edges(word_graph,links[j])[[1]]==words[i]))>0 ) {
prev_edge_weight <- as.numeric(edgeData(word_graph,words[i],links[j],"weight"))
edgeData(word_graph,words[i],links[j],"weight") <- prev_edge_weight+1
}
else {
word_graph <- addEdge(words[i],links[j],word_graph,1)
}
}
}
}
}
i <- i+1
}
word_graph
}
library(tm)
library(NLP)
doc <- c("tested text")
corp <- Corpus(VectorSource(doc))
corp <- tm_map(corp, stripWhitespace)
corp <- tm_map(corp, tolower)
words_with_punctuation <- SplitText(as.character(corp[[1]]))
corp <- tm_map(corp, removePunctuation)
#--- GRAPH CONSTRUCTION
words <- SplitText(as.character(corp[[1]]))
tagged_text <- tagPOS(corp[[1]])
tagged_words <- SplitText(as.character(tagged_text))
tagged_words <- c(SelectTaggedWords(tagged_words,"/NN"),SelectTaggedWords(tagged_words,"/JJ")) # keep only NN & JJ tagged words
tagged_words <- RemoveTags(tagged_words) # remove un-used tag POS
selected_words <- unique(tagged_words)
text_graph <- ConstructTextGraph(2)
#Interactive Igraph plot
library(visNetwork)
library(igraph)
textIgraph<-igraph.from.graphNEL(text_graph, name = TRUE, weight = TRUE,unlist.attrs = TRUE)
textIgraph<-simplify(textIgraph,remove.loops=TRUE)
visIgraph(textIgraph) %>%
visNodes(size = 35, shape = "circle",font=list(size=28)) %>%
visOptions(highlightNearest = TRUE,
nodesIdSelection = TRUE) %>%
visInteraction(keyboard = TRUE)