티스토리 뷰

주어진 문장에서 띄워쓰기에 의해 구분되는 단어의 개수를 알아보고자 한다.

 

stringr 패키지 사용
library(stringr)

 

단어의 수를 세기 위해 가장 간단하게 정규표현식을 사용하여 구할 수 있다.

sentence <- "This is an example sentence."
num_words <- str_count(sentence, "\\S+")  # 공백이 아닌 부분(단어) 개수 세기
print(num_words)

 

정규표현식 \\S+의 의미

  • \\S+는 정규표현식(regular expression)에서 사용되는 패턴이다.
  • 의미:
    • \\S : 공백이 아닌 문자(Non-whitespace character)를 의미
    • + : 바로 앞의 패턴이 1회 이상 반복됨을 의미
    • 즉, \\S+는 "공백이 아닌 문자가 1개 이상 연속된 부분", 즉 '단어'를 의미

 

정규표현식을 사용하지 않고 단어 수를 찾기

sentence <- "This is an example sentence."

# 공백(" ")을 기준으로 문자열 분리
words <- strsplit(sentence, " ")[[1]]

# 단어 개수 세기
num_words <- length(words)
print(num_words)

- strsplit(문장, " ")[[1]]

 

[참고]
- [1] 은 리스트의 첫 번째 요소를 '리스트'로 꺼내는 것
- [[1]] 은 리스트의 첫 번째 요소의 '내용물'을 꺼내는 것(즉, 벡터로 반환)

 

 

이제, 하나의 문장만 있는 것이 아니라 여러 id 에 대해 문장이 주어져 있을때를 가정해 보자.

type sentence length
a asdfas asdfasd asdf asdf   
b fgrgthrt aedrfgerg  
... ...  

 

반응형

- 각각의 문장에 대한 length 를 구하려고 한다.

방법 - 1
net_kor$word_count02 <- sapply(net_kor$title, function(x){
  words <- strsplit(x, " ")[[1]]
  words <- words[words != ""]
  length(words)
})

 

방법 - 2 ( library(stringr)  라이브러리 함수 사용 ) - 빅데이터 분석기사 실기 시험환경 사용 가능
net_kor$word_count <- str_count(net_kor$title, "\\S+")
net_kor

 

 

 

방법 - 1방법 - 2의 결과가 동일하게 도출되었다. 

이제 각 type 에 따라  단어수의 평균의 차이를 구해 보자.

 

 

[참고] 특정단어 찾기
library(stringr)
# 문장을 단어 단위로 분할하여 빈도표 생성
text <- "이것은 예시 문장에서 예시 단어 찾기. 어디에 예시 단어를 찾아보겠습니다"

word_count <- str_count(text, "예시")
print(word_count)  # 결과: 3

 

str_count( data, "목표 단어") 를 활용하자.

 

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함