Ошибка извлечения ключевых слов на основе графа при создании сети ключевых слов

Для моего основного исследования мне нужно найти ключевые слова для записей пользователей с платформы разработки продукта, и я использую метод на основе графа-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)

0 ответов

Другие вопросы по тегам