2016-08-26 1 views
0
예를 들어,는 A TFIDF 가중치 행렬을 구축 후에 적용되는 경우 다음을 text2vec 패키지의 DTM (문서 용어 매트릭스)를 만드는 방법에 대한 문서가있다

:R-Transform의 새 데이터를 text2vec?

data("movie_review") 
N <- 1000 
it <- itoken(movie_review$review[1:N], preprocess_function = tolower, 
tokenizer = word_tokenizer) 
v <- create_vocabulary(it) 
vectorizer <- vocab_vectorizer(v) 
it <- itoken(movie_review$review[1:N], preprocess_function = tolower, 
tokenizer = word_tokenizer) 
dtm <- create_dtm(it, vectorizer) 
# get tf-idf matrix from bag-of-words matrix 
dtm_tfidf <- transformer_tfidf(dtm) 

DTM을 만들 수있는 일반적인 관행을 기반으로 교육 데이터 세트에서 해당 데이터 세트를 모델에 대한 입력으로 사용합니다. 그런 다음 새 데이터가 발생하면 (테스트 세트) 새 데이터에 동일한 DTM을 작성해야합니다 (교육 세트에 사용 된 것과 동일한 용어). 이 방법으로 새 ​​데이터 세트를 변환하는 패키지가 있습니다 (scikit에서는이 유형의 인스턴스 만 변형하는 방법이 있습니다).

+0

모든 배짱을 downvoted 이유를 설명? –

+1

설명하기 위해 "내장"을 사용하지 않습니다. 포인터를 아래쪽 화살표 위로 가져 가면됩니다. 그 질문에 대해 불쾌감을 갖는 많은 가능성. 코드 없음. 예제 데이터가 없습니다. 어떤 종류의 모델 건물 또는 채점이 예상 될지에 대한 설명이 없습니다. "DTM"이 무엇인지에 대한 설명이 없습니다. 예, 아마도 (아마도) 그것이 무엇인지는 알지만, 많은 프로그래머는 그렇지 않을 수도 있습니다. 그래서 나는 그것이 적어도 "불명확하다"는 것과 "연구 노력"이별로 없다는 것에 동의해야한다. 그것들은 downvote에 대한 완벽한 타당한 이유이다. 많은 결함을 해결하기 위해 확장되지 않는 한 오히려 쓸모없는 것처럼 보입니다. –

+1

유혹하지 않으면 아무것도 표시되지 않습니까? 누군가가 설명없이 투표를하면 좌절감을 느낍니다. 이 유형의 질문은 특정 패키지에 초점을 맞 춥니 다. 제 가정을 사용하고 원격으로 질문에 대답 할 수 있다면 문서 용어 행렬이 무엇인지 알 수 있습니다. 코드는 또한 어려운 것입니다 ... .... 내가 여기있는 것처럼 어떤 코드인지는 궁금합니다. 그게 잘못된 것입니다. 대신 패키지가 'x'를 할 수 있습니까? 나는 그것을 다소 확장하려고 노력할 것이고 나는 그 의견에 대해 당신에게 감사한다. –

답변

4

사실 내가 처음에 text2vec을 시작할 때 나는 그 파이프 라인을 처음부터 지켰습니다. 이제 우리는 업데이트 된 documentation으로 새로운 릴리즈를 준비하고 있습니다. v0.3를 들어

다음과 같은 작업을해야합니다 :

data("movie_review") 
train_rows = 1:1000 
prepr = tolower 
tok = word_tokenizer 

it <- itoken(movie_review$review[train_rows], prepr, tok, ids = movie_review$id[train_rows]) 
v <- create_vocabulary(it) %>% 
    prune_vocabulary(term_count_min = 5) 

vectorizer <- vocab_vectorizer(v) 
it <- itoken(movie_review$review[train_rows], prepr, tok) 
dtm_train <- create_dtm(it, vectorizer) 
# get idf scaling from train data 
idf = get_idf(dtm_train) 
# create tf-idf 
dtm_train_tfidf <- transform_tfidf(dtm_train, idf) 

test_rows = 1001:2000 
# create iterator 
it <- itoken(movie_review$review[test_rows], prepr, tok, ids = movie_review$id[test_rows]) 
# create dtm using same vectorizer, but new iterator 
dtm_test_tfidf <- create_dtm(it, vectorizer) %>% 
    # transform tf-idf using idf from train data 
    transform_tfidf(idf) 
+0

환상적! 그것이 CRAN을 때릴 수있는 어떤 생각? –

+0

몇 주. 하지만 github 0.4 브랜치에서 설치할 수 있습니다. –

+0

@B_Miner 새로운 자습서 확인 : http://dsnotes.com/text2vec/vectorization.html –

관련 문제