Skip to content

Commit

Permalink
Merge pull request #9 from sorrychoe/ver/0.4.2
Browse files Browse the repository at this point in the history
modified example
  • Loading branch information
sorrychoe authored Sep 2, 2023
2 parents c9c4986 + 7374ab9 commit ba7133c
Show file tree
Hide file tree
Showing 25 changed files with 374 additions and 17 deletions.
16 changes: 14 additions & 2 deletions R/association.R
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,21 @@
#' @param maxlen 연관된 최대 갯수
#'
#' @examples
#' association(df, min_support = 0.6, minlen = 3, maxlen = 10)
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#'
#' association(df, min_support = 0.1, minlen = 2, maxlen = 10)
#'
#' @import arules
#' @import tm
#'
#' @export
association <- function(df, min_support = 0.5, minlen=2, maxlen = 10) {
if (is.data.frame(df)) {
Expand All @@ -22,7 +34,7 @@ association <- function(df, min_support = 0.5, minlen=2, maxlen = 10) {
result <- as.data.frame(arules::inspect(result))
result <- result[, c("lhs", "rhs", "support", "confidence")]
colnames(result) <- c("lhs", "rhs", "support", "confidence")
result <- result[result[, "confidence"] > min_support ]
result <- result[result[, "confidence"] > min_support, ]
return(result)
} else {
stop("input type is to be have to df")
Expand Down
14 changes: 13 additions & 1 deletion R/barplot.R
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,21 @@
#' @param top_n 시각화할 단어 갯수
#'
#' @examples
#' top_words(df, "경향신문", top_n=30)
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#'
#' top_words(df, "경향신문", top_n=10)
#'
#' @import ggplot2
#' @import dplyr
#'
#' @export
top_words <- function(df, press = NA, top_n = 25) {
if (is.data.frame(df)) {
Expand Down
24 changes: 24 additions & 0 deletions R/clustering.R
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,18 @@
#' @param random_state seed 값
#'
#' @examples
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#'
#' vec <- tfidf_vector(df)
#'
#' Kmeans(vec, k = 3, max = 5000)
#'
#' @export
Expand All @@ -30,6 +42,18 @@ Kmeans <- function(vec, k, max = 1000, random_state = 123) {
#' @param min_sample 최적 샘플 갯수
#'
#' @examples
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#'
#' vec <- tfidf_vector(df)
#'
#' DBSCAN(vec, eps = 0.5, min_sample = 3)
#'
#' @import dbscan
Expand Down
10 changes: 10 additions & 0 deletions R/day_range.R
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@
#' @param df BigKinds 원본 문서
#'
#' @examples
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#'
#' day_range(df)
#'
#' @export
Expand Down
86 changes: 81 additions & 5 deletions R/global.R
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,19 @@
#' @param df BigKinds 원본 문서
#'
#' @examples
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#'
#' data <- header_remover(df)
#' head(data)
#'
#' @export
header_remover <- function(df) {
if (is.data.frame(df)) {
Expand All @@ -25,11 +36,22 @@ header_remover <- function(df) {
#' @param df BigKinds 원본 문서
#'
#' @examples
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#' data <- word_tokenizer(df)
#' view(data)
#'
#'
#' @import tm
#' @import tibble
#' @import dplyr
#'
#' @export
word_tokenizer <- function(df) {
if (is.data.frame(df)) {
Expand All @@ -54,11 +76,21 @@ word_tokenizer <- function(df) {
#' @param df BigKinds 원본 문서
#'
#' @examples
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#' data <- keyword_dataframe(df)
#' view(data)
#'
#' @import tm
#' @import tibble
#' @import dplyr
#'
#' @export
keyword_dataframe <- function(df) {
if (is.data.frame(df)) {
Expand All @@ -81,11 +113,21 @@ keyword_dataframe <- function(df) {
#' @param df BigKinds 원본 문서
#'
#' @examples
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#' data <- keyword_dataframe_no_duplicated(df)
#' view(data)
#'
#' @import tm
#' @import tibble
#' @import dplyr
#'
#' @export
keyword_dataframe_no_duplicated <- function(df) {
if (is.data.frame(df)) {
Expand All @@ -111,12 +153,22 @@ keyword_dataframe_no_duplicated <- function(df) {
#' @param df BigKinds 원본 문서
#'
#' @examples
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#' data <- tfidf(df)
#' view(data)
#'
#' @import tm
#' @import tibble
#' @import dplyr
#' @import tidytext
#'
#' @export
tfidf <- function(df) {
if (is.data.frame(df)) {
Expand All @@ -136,12 +188,23 @@ tfidf <- function(df) {
#' @param df BigKinds 원본 문서
#'
#' @examples
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#' data <- tfidf_vector(df)
#' view(data)
#'
#'
#' @import tm
#' @import tibble
#' @import dplyr
#' @import tidytext
#'
#' @export
tfidf_vector <- function(df) {
if (is.data.frame(df)) {
Expand All @@ -161,6 +224,19 @@ tfidf_vector <- function(df) {
#' 벡터를 정규화합니다.(row 기준 minmax scaling)
#'
#' @param vec tfidf vector
#'
#' @example
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#' data <- tfidf_vector(df)
#' nor_data <- normalize_vector(data)
#'
#' @export
normalize_vector <- function(vec) {
Expand Down
26 changes: 25 additions & 1 deletion R/nework_analysis.R
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,18 @@
#' @param df BigKinds 원본 문서
#'
#' @examples
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#'
#' dfm <- dcm(df)
#'
#' @export
dcm <- function(df) {
if (is.data.frame(df)) {
Expand All @@ -27,9 +38,22 @@ dcm <- function(df) {
#' @param min_freq 그래프를 형성할 연결 최소 빈도 수
#'
#' @examples
#' network_graph(dcm, 40, 1)
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#'
#' dfm <- dcm(df)
#' network_graph(dfm, 40, 1)
#'
#' @import quanteda
#' @import quanteda.textplots
#'
#' @export
network_graph <- function(dcm, topwords = 50, min_freq=0.5){
if (topwords > 50){
Expand Down
9 changes: 9 additions & 0 deletions R/press_counter.R
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,15 @@
#' @param df BigKinds 원본 문서
#'
#' @examples
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#' press_counter(df)
#'
#' @export
Expand Down
11 changes: 11 additions & 0 deletions R/topic_model.R
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,22 @@
#' @param k 토픽 개수
#'
#' @examples
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#'
#' topic_modeling(df, k = 10)
#'
#' @import topicmodels
#' @import dplyr
#' @import tm
#'
#' @export
topic_modeling <- function(df, k, method="Gibbs") {
if (is.data.frame(df)) {
Expand Down
12 changes: 12 additions & 0 deletions R/wordcloud.R
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,21 @@
#' @param press 확인할 언론사 이름
#'
#' @examples
#' df <- data.frame(
#' "일자" = c(20230101, 20230102, 20230103),
#' "언론사" = c("조선일보", "한겨례", "경향신문"),
#' "제목" = c("[속보] 경찰, 민주노총 도심 집회 1차 해산명령",
#' "[사설] 한반도 긴장 높인 북한의 군사정찰위성 발사 규탄한다",
#' "‘직권남용죄’ 남용 유감"),
#' "키워드" = c("경찰,해산명령,민주,노총,도심,집회,해산,명령,민주노총",
#' "한반도,긴장,북한,규탄,군사,정찰,위성,발사,북한,인공위성",
#' "직권남용죄,남용,유감,왜냐면,이정환,민주사회,변호사모임"))
#'
#' keywords_wordcloud(df, "조선일보")
#'
#' @import wordcloud2
#' @import dplyr
#'
#' @export
keywords_wordcloud <- function(df, press=NA) {
if (is.data.frame(df)) {
Expand Down
12 changes: 12 additions & 0 deletions man/DBSCAN.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit ba7133c

Please sign in to comment.