키워드 추출이란?
키워드 추출은 텍스트 분석 기법을 이용하여 텍스트에서 가장 많이 사용되고 가장 중요한 단어와 표현을 자동으로 추출합니다. 텍스트의 내용을 요약하고 논의된 주요 주제를 인식하는 데 도움이 되므로 시장 조사, 감정 분석 및 기타 유형의 데이터 분석에 도움이 됩니다. 이 기술은 문장 임베딩을 활용하고 대량의 데이터 세트를 실시간으로 분석할 수 있습니다.
자연어 처리(NLP)(컴퓨터 과학 분야)를 갖춘 기계 학습 인공 지능(AI)은 인간의 언어를 기계가 이해하고 분석할 수 있도록 분해합니다. 키워드 추출은 들어오는 설문 조사 응답에 태그를 지정하거나 긴급한 고객 쿼리에 응답하는 것과 같은 워크플로우를 자동화합니다. 이 기술은 텍스트와 텍스트에 포함된 단어에 대한 언어 및 의미 정보를 사용합니다. 텍스트에서 가장 관련성이 높은 키워드를 추출하는 다양한 기계 학습 알고리즘과 기술이 있습니다.
키워드 추출이 중요한 이유는 무엇입니까?
키워드 추출 및 키프레이즈 추출은 여러 가지 이유로 중요합니다.
- 검색 엔진 최적화(SEO) : 키워드 추출은 문서에서 가장 중요한 단어와 구를 식별하는 데 도움이 되며 검색 엔진에 대한 웹 사이트 콘텐츠를 최적화하는 데 사용할 수 있습니다.
- 텍스트 요약: 키워드 추출은 텍스트의 주요 주제를 나타내는 가장 중요한 단어와 구를 식별하여 문서를 요약하는 데 사용할 수 있습니다.
- 텍스트 분류: 키워드 추출은 포함된 키워드에 따라 텍스트 문서를 여러 범주로 분류하는 데 사용할 수 있습니다. 이는 감정 분석과 같은 애플리케이션에 유용합니다.
- 정보 검색: 키워드 추출은 사용자의 검색 쿼리와 일치하는 관련 키워드를 식별하여 정보 검색 시스템의 정확성을 향상시키는 데 사용할 수 있습니다.
R에서 키워드 추출을 만드는 방법?
다음은 몇 가지 키워드 추출 기술과 사용 사례입니다.
- 명사를 식별하기 위해 품사 태깅을 수행하여 키워드 찾기
- Collocations 및 Co-occurrences를 기반으로 키워드 찾기
- Textrank 알고리즘을 기반으로 키워드 찾기
- RAKE 기반 키워드 찾기(빠른 자동 키워드 추출)
- 종속성 구문 분석 결과를 기반으로 키워드 찾기(텍스트의 주제 가져오기)
명사 추출
키워드를 찾는 쉬운 방법은 명사를 보는 것입니다. udpipe 패키지를 사용하여 텍스트에 주석을 추가한 경우 각 용어에는 품사 태그가 있습니다.
암호:
stats <- subset(x, upos %in% "NOUN")
stats <- txt_freq(x = stats$lemma)
library(lattice)
stats$key <- factor(stats$key, levels = rev(stats$key))
barchart(key ~ freq, data = head(stats, 30), col = "cadetblue", main = "Most occurring nouns", xlab = "Freq")
배열 및 동시 발생
연어(서로 이어지는 단어), 각 문장 내에서 단어 동시 발생 또는 서로 인접해 있는 단어의 동시 발생을 살펴봄으로써 다중 단어 표현을 얻습니다.
암호:
Collocation (words following one another)
stats <- keywords_collocation(x = x,
term = "token", group = c("doc_id", "paragraph_id", "sentence_id"),
ngram_max = 4)
Co-occurrences: How frequent do words occur in the same sentence, in this case only nouns or adjectives
stats <- cooccurrence(x = subset(x, upos %in% c("NOUN", "ADJ")),
term = "lemma", group = c("doc_id", "paragraph_id", "sentence_id"))
## Co-occurrences: How frequent do words follow one another
stats <- cooccurrence(x = x$lemma,
relevant = x$upos %in% c("NOUN", "ADJ"))
## Co-occurrences: How frequent do words follow one another even if we would skip 2 words in between
stats <- cooccurrence(x = x$lemma,
relevant = x$upos %in% c("NOUN", "ADJ"), skipgram = 2)
Textrank(Google Pagerank에서 정렬한 단어 네트워크)
Textrank는 키워드의 또 다른 추출 방법입니다. textrank R 패키지는 Textrank 알고리즘을 구현합니다. Textrank 알고리즘은 텍스트 요약 및 키워드 추출을 허용합니다. 단어 네트워크를 구성하기 위해 알고리즘은 단어가 서로 이어지는지 확인합니다. ‘Google Pagerank’ 알고리즘이 관련 단어를 추출하고 있습니다. 서로 이어지는 관련 단어가 함께 결합되어 키워드를 얻습니다. TextRank는 그래프 기반 접근 방식이므로 원본 텍스트에서 파생되지 않습니다.
암호:
stats <- textrank_keywords(x$lemma, relevant = x$upos %in% c("NOUN", "ADJ"), ngram_max = 8, sep = " ")
stats <- subset(stats$keywords, ngram > 1 & freq >= 5) library(wordcloud) wordcloud(words = stats$keyword, freq = stats$freq)
신속한 자동 키워드 추출: RAKE
RAKE는 Rapid Automatic Keyword Extraction의 약어인 차세대 기본 알고리즘입니다. RAKE는 자연어 처리에서 도메인 독립적인 키워드 추출 알고리즘입니다.
-
후보 키워드의 일부인 각 단어에 대한 점수 계산은 다음과 같이 수행됩니다.
- 후보 키워드의 단어 중에서 각 단어가 몇 번 나오는지, 다른 단어와 몇 번이나 나오는지 알고리즘이 확인합니다.
- 각 단어는 단어 빈도에 대한 단어 정도(다른 단어와 함께 나타나는 횟수)의 비율인 점수를 얻습니다.
- 전체 후보 키워드에 대한 RAKE 점수는 후보 키워드를 정의하는 각 단어의 점수를 합산하여 계산됩니다.
암호:
stats <- keywords_rake(x = x, term = "token", group = c("doc_id", "paragraph_id", "sentence_id"), relevant = x$upos %in% c("NOUN", "ADJ"), ngram_max = 4)
head(subset(stats, freq > 3))
종속성 구문 분석 출력을 사용하여 명목상의 주제와 형용사를 얻습니다.
udpipe를 사용하여 주석을 실행한 경우 dep_rel 필드는 단어가 서로 어떻게 관련되어 있는지 나타냅니다. 토큰은 token_id 및 head_token_id를 사용하여 부모와 관련됩니다. dep_rel 필드는 단어가 서로 연결되는 방식을 나타냅니다. 관계 유형은 http://universaldependencies.org/u/dep/index.html에 있습니다.
암호:
stats <- merge(x, x, by.x = c("doc_id", "paragraph_id", "sentence_id", "head_token_id"), by.y = c("doc_id", "paragraph_id", "sentence_id", "token_id"), all.x = TRUE, all.y = FALSE, suffixes = c("", "_parent"), sort = FALSE)
stats <- subset(stats, dep_rel %in% "nsubj" & upos %in% c("NOUN") & upos_parent %in% c("ADJ"))
stats$term <- paste(stats$lemma_parent, stats$lemma, sep = " ")
stats <- txt_freq(stats$term)
library(wordcloud)
wordcloud(words = stats$key, freq = stats$freq, min.freq = 3, max.words = 100, random.order = FALSE, colors = brewer.pal(6, "Dark2"))
텍스트 마이닝이란 무엇입니까?
R의 텍스트 마이닝은 R 프로그래밍 언어와 관련 라이브러리 및 패키지를 사용하여 텍스트 데이터에서 통찰력을 분석하고 추출하는 프로세스를 말합니다. 텍스트 마이닝에는 데이터 정리 및 전처리, 기능 추출, 통계 모델링 및 시각화를 포함한 여러 단계가 포함됩니다.
그만큼
tm
패키지는 텍스트 데이터 분석에 일반적으로 사용되는 텍스트 데이터 읽기, 데이터 정리 및 전처리, 문서 용어 행렬 생성을 위한 기능을 제공합니다. 그만큼
tidytext
패키지는 텍스트 데이터를 깔끔한 데이터 프레임으로 변환하는 도구를 제공합니다.
텍스트 마이닝의 몇 가지 일반적인 작업에는 감정 분석, 주제 모델링, 문서 클러스터링 및 텍스트 분류가 포함됩니다. 이러한 작업에는 통계 및 기계 학습 기술을 적용하여 텍스트 데이터 내에서 패턴과 관계를 식별하는 작업이 포함됩니다.
키워드 추출 API는 개발자가 사전 구축된 알고리즘과 머신 러닝 모델을 사용하여 텍스트에서 키워드와 핵심 구를 추출할 수 있는 소프트웨어 인터페이스입니다. 이러한 API는 개발자가 자체 모델을 구축하고 교육할 필요 없이 키워드 추출 프로세스를 자동화하기 위한 사용하기 쉽고 확장 가능한 솔루션을 제공합니다.
R 은 통계 컴퓨팅, 데이터 분석 및 그래픽을 위한 오픈 소스 프로그래밍 언어 및 소프트웨어 환경입니다. 사람들은 통계 모델링, 데이터 시각화, 기계 학습 및 데이터 마이닝과 같은 작업을 위해 학계, 연구 및 산업에서 R을 널리 사용합니다. Python 및 C++ 와 같은 다른 프로그래밍 언어와의 인터페이스가 있습니다. GitHub의 온라인 자습서에서 자세한 정보를 찾으십시오.