2017-03-22 16 views
0

행렬을 만들려고합니다. 다음은 R 코드Document-Term-Matrix에서`RTextTools :: toLower()`텍스트의 결과를 볼 수 없습니다.

matrix = create_matrix(tweets[,1], toLower = TRUE, language="english", 
         removeStopwords=FALSE, removeNumbers=TRUE, 
         stemWords=TRUE) 

: 나는 매트릭스의 대문자와 단어가 발언

library(RTextTools) 
library(e1071) 

pos_tweets = rbind(
    c('j AIME la voiture', 'positive'), 
    c('cette machine est performante', 'positive'), 
    c('je me sens en bonne forme ce matin', 'positive'), 
    c('je suis super excitée d aller voir le spectacle de demain', 'positive'), 
    c('il est mon meilleur ami', 'positive') 
) 



neg_tweets = rbind(
    c('je séteste cette voiture', 'negative'), 
    c('ce film est horrible', 'negative'), 
    c('je suis fatiguée ce matin', 'negative'), 
    c('je déteste ce concert', 'negative'), 
    c('il n est pas mon ami', 'negative') 
) 

test_tweets = rbind(
    c('je suis heureuse ce matin', 'negative'), 
    c('un bon ami', 'negative'), 
    c('je me sens triste', 'positive'), 
    c('pas belle cette maison', 'negative'), 
    c('mauvaise chanson', 'negative') 
) 

tweets = rbind(pos_tweets, neg_tweets, test_tweets) 

# build dtm 
matrix= create_matrix(tweets[,1], toLower = TRUE, language="french", 
         removeStopwords=FALSE, removeNumbers=TRUE, 
         stemWords=TRUE) 

문제 이 들어 나는이 R 명령어를 사용합니다.

왜이 문제가 발생하는지 제발 설명해 주시겠습니까? @chateaur 말했듯이

는 당신에게 임의의 지점에서 파이프 라인의 내용을 노출하지 않습니다, 그것은 내부적으로 tolower를 수행하지, 당신

+1

경우 매트릭스에 대문자가 보이십니까? 필자는 create_matrix 함수의 toLower 매개 변수가 데이터를 소문자로 취급하도록 함수에 알리는 것이지만 실제로는 데이터 자체를 수정하지 않는다고 생각합니다. – chateaur

+0

사실, 매트릭스를 살펴보면, 문서는 원본 형태 ('matrix $ dimnames $ Docs'와 같이)로 표시되고, 용어는 소문자로 표시됩니다 ('matrix $ dimnames $ Terms' 참조). 내부적으로 모든 것이 잘 작동하는 것처럼 보입니다. _aime_은 _j AIME la voiture_에서 한 번 발견됩니다. – Scarabee

답변

3

감사드립니다. RTextTools + tm은 할 수있는 일, 언제, 어디서, 어떤 순서로 파이프 라인에서 심각한 구조적 제한을 둡니다. 정말 실망 스럽습니다. 그 피 ...

을 당신이 당신의 자신의 파이프 라인, 나는이 최근 quanteda이었다 조사 때 나는 파이프 라인에 대한 발견 최고의 오픈 소스 패키지를 쓰기 좋습니다. 요점을 설명하기 위해 오버로드 된 toLower() 메서드가 있습니다. 문자열, 콜라, 토큰에 사용할 수 있습니다. 원하는 위치, 제한 없으며, 중지 단어 전후에 구두점 제거 및 형태소 분석을 사용할 수 있습니다. RTextTools + tm과는 달리 원하는 단계의 임의의 순서로 파이프 라인을 구성하는 데 유용한 다른 방법이 많이 있습니다. (능동적 인 관리자, 커밋, 문제, 픽스, 릴리즈, github의 히트 수, SO, google, 코드 및 API의 수/비율을보고 quanteda와 같은 패키지의 유용성을 측정 할 수도 있습니다 ...) .

프론트 엔드에서 RTextTools + tm을 사용하면 때때로 고통스럽고 때로는 제한적입니다. 나는 너무 많은 버그, 제한, 신택스 버릇과 성가심을 발견했다. 그것은 생산성을 떨어 뜨리고 끊임없이 나를 괴롭혔다. 그리고 그다지 성과가 좋지 않았습니다. DTM (TF/TFIDF) 행렬을 만들고 조작하는 데 (RTextTools +) tm을, 분류자를 위해 e1071을 사용할 수 있습니다.

또한 문서/담론 수준에서 유사한 도구를 추가하는 것에 대한 qdap 패키지에 경의를 표합니다.

(PS :.이 R 텍스트 처리 패키지는 여러 가지 이유로 발생 때로는 교차 목적에서 일하는 그래서 balkanized ... 많은 사람들과 격렬하게 개혁 바퀴 ...하지만이라는 것을 진정으로 슬프다)