이 링크를 확인하십시오 .
여기서는 구조화되지 않은 텍스트를로드하여 wordcloud를 만듭니다. 이 전략을 적용하고 단어 구름을 만드는 대신 사용되는 용어 빈도 행렬을 만들 수 있습니다. 아이디어는 구조화되지 않은 텍스트를 가져 와서 어떻게 든 구조화하는 것입니다. 문서 용어 행렬을 통해 모든 것을 소문자 (또는 대문자)로 변경하고 중지 단어를 제거하며 각 작업 기능에 대해 자주 사용되는 용어를 찾습니다. 단어를 형태소 분석 할 수도 있습니다. 단어를 파생 시키면 같은 단어와 다른 형태의 단어를 감지 할 수 있습니다. 예를 들어 'programmed'및 'programming'은 'program'으로 이어질 수 있습니다. ML 모델 교육에서 이러한 빈번한 용어의 발생을 가중치 기능으로 추가 할 수 있습니다.
이 기능을 빈번한 문구에 적용하여 각 직무에 대해 2-3 개의 단어로 구성된 공통 그룹을 찾을 수도 있습니다.
예:
1) 라이브러리를로드하고 예제 데이터를 작성하십시오.
library(tm)
library(SnowballC)
doc1 = "I am highly skilled in Java Programming. I have spent 5 years developing bug-tracking systems and creating data managing system applications in C."
job1 = "Software Engineer"
doc2 = "Tested new software releases for major program enhancements. Designed and executed test procedures and worked with relational databases. I helped organize and lead meetings and work independently and in a group setting."
job2 = "Quality Assurance"
doc3 = "Developed large and complex web applications for client service center. Lead projects for upcoming releases and interact with consumers. Perform database design and debugging of current releases."
job3 = "Software Engineer"
jobInfo = data.frame("text" = c(doc1,doc2,doc3),
"job" = c(job1,job2,job3))
2) 이제 텍스트 구성을합니다. 나는 다음을 수행하는 더 빠르고 짧은 방법이 있다고 긍정적입니다.
# Convert to lowercase
jobInfo$text = sapply(jobInfo$text,tolower)
# Remove Punctuation
jobInfo$text = sapply(jobInfo$text,function(x) gsub("[[:punct:]]"," ",x))
# Remove extra white space
jobInfo$text = sapply(jobInfo$text,function(x) gsub("[ ]+"," ",x))
# Remove stop words
jobInfo$text = sapply(jobInfo$text, function(x){
paste(setdiff(strsplit(x," ")[[1]],stopwords()),collapse=" ")
})
# Stem words (Also try without stemming?)
jobInfo$text = sapply(jobInfo$text, function(x) {
paste(setdiff(wordStem(strsplit(x," ")[[1]]),""),collapse=" ")
})
3) 코퍼스 소스와 문서 용어 행렬을 만듭니다.
# Create Corpus Source
jobCorpus = Corpus(VectorSource(jobInfo$text))
# Create Document Term Matrix
jobDTM = DocumentTermMatrix(jobCorpus)
# Create Term Frequency Matrix
jobFreq = as.matrix(jobDTM)
이제 주파수 행렬 jobFreq가 있습니다. 즉, (3 x x) 행렬, 3 개의 항목 및 X 개의 단어 수입니다.
여기서 당신이가는 곳은 당신에게 달려 있습니다. 특정 (보다 일반적인) 단어 만 유지하고이를 모델의 기능으로 사용할 수 있습니다. 또 다른 방법은 간단하게 유지하고 각 작업 설명에 사용 된 단어 비율을 유지하는 것입니다. "java"는 '소프트웨어 엔지니어'에서 80 %, '품질 보증'에서는 50 % 만 나타납니다.
이제 '보증'에 1 'r'이 있고 '발생'에 2 'r이있는 이유를 찾아 볼 시간입니다.