tm
라이브러리 또는 이와 관련하여 잘 작동하는 라이브러리가 미리 빌드되어 있습니까?tm 패키지로 R에서 가독성을 계산하는 방법
나의 현재 코퍼스는 TM에로드되어 다음과 같은 :
내가 koRpus를 사용하여 시도s1 <- "This is a long, informative document with real words and sentence structure: introduction to teaching third-graders to read. Vocabulary is key, as is a good book. Excellent authors can be hard to find."
s2 <- "This is a short jibberish lorem ipsum document. Selling anything to strangers and get money! Woody equal ask saw sir weeks aware decay. Entrance prospect removing we packages strictly is no smallest he. For hopes may chief get hours day rooms. Oh no turned behind polite piqued enough at. "
stuff <- rbind(s1,s2)
d <- Corpus(VectorSource(stuff[,1]))
하지만 이미 사용하고 아닌 다른 패키지에 retokenize 바보 같다. 또한 결과를 tm
으로 다시 포함시킬 수있는 방법으로 반환 객체를 벡터화하는 데 문제가있었습니다. 즉, 오류로 인해 컬렉션의 문서 수보다 가독성 점수가 더 많거나 적음을 알 수 있습니다.
나는 음절로 모음을 구문 분석하는 순진한 계산을 할 수 있지만 더 철저한 패키지를 원한다는 것을 이해합니다. 이미 엣지 경우를 처리합니다 (자동 e를 처리하는 등).
내 가독성 점수는 Flesch-Kincaid 또는 Fry입니다.
d는 (100 개) 문서 내 코퍼스 어디 원래 시도했다 무엇 :
f <- function(x) tokenize(x, format="obj", lang='en')
g <- function(x) flesch.kincaid(x)
x <- foreach(i=1:length(d), .combine='c',.errorhandling='remove') %do% g(f(d[[i]]))
불행하게도, x는 100 개 미만의 문서를 반환은, 그래서 올바른 문서와 성공을 연결할 수 없습니다. (부분적으로 R의 'foreach'와 'lapply'에 대한 나의 오해입니다. 그러나 텍스트 객체의 구조가 충분히 어렵 기 때문에 적절히 토큰화할 수없고 flesch.kincaid를 적용하고 합리적인 순서로 오류를 성공적으로 확인했습니다 문.)
UPDATE 내가 해봤
다른 두 가지의 TM 객체에 koRpus 기능을 적용하려고 ... tm_map 객체에
패스 인수를 사용하여 기본 토크 나이저 : ,
에서 그 전달 토크 나이 정의 이들 반품의
f <- function(x) tokenize(x, format="obj", lang='en') tm_map(d,flesch.kincaid,force.lang="en",tagger=f)
둘 다 :.
Error: Specified file cannot be found:
후 [
1] (D)의 전체 내용을 나열. 찾은 것 같아? 함수를 올바르게 전달하려면 어떻게해야합니까?
이 이상한 오류처럼 보이는
> lapply(d,tokenize,lang="en")
Error: Unable to locate
Introduction to teaching third-graders to read. Vocabulary is key, as is a good book. Excellent authors can be hard to find.
--- 나는 거의 생각하지 않는다 : 나는 lapply 직접 koRpus 기능을 매핑 할 때 다음 업데이트 2
은 내가 오류입니다 텍스트를 찾을 수 없다는 것을 의미하지만 위치가 지정된 텍스트를 덤프하기 전에 빈 텍스트 오류 코드 (예 : 'tokenizer')를 찾을 수 없습니다.koRpus
를 사용하여 태그 재와
UPDATE 3
다른 문제점은 (TM에 술래 대) 태그를 다시 지정하는 표준 출력으로의 토큰의 진행이 매우 느리고 출력라는 것이었다. 여기
f <- function(x) capture.output(tokenize(x, format="obj", lang='en'),file=NULL)
g <- function(x) flesch.kincaid(x)
x <- foreach(i=1:length(d), .combine='c',.errorhandling='pass') %do% g(f(d[[i]]))
y <- unlist(sapply(x,slot,"Flesch.Kincaid")["age",])
내 의도는 메타 데이터, meta(d, "F-KScore") <- y
로 내 tm(d)
코퍼스 다시 위의 y
객체를 바인딩하는 것입니다 : 어쨌든, 나는 다음과 같은 시도했습니다.
Error in FUN(X[[1L]], ...) :
cannot get a slot ("Flesch.Kincaid") from an object of type "character"
가 내 실제 신체의 한 요소가 NA, 또는 너무 오래, 다른 금지 뭔가 생각합니다 ---과 :
불행하게도, 내 실제 데이터 집합에 적용, 나는 오류 메시지가 중첩 된 기능화로 인해 정확하게 추적하는 데 어려움을 겪고 있습니다.
따라서 현재는 tm
라이브러리로 훌륭하게 재생되는 점수를 읽기 위해 미리 작성된 함수가없는 것처럼 보입니다. 어떤 사람이 쉽게 실수를 포착 할 수있는 해결책을 발견하지 못한다면 필자의 함수 호출에 샌드위치를 넣으면 분명히 잘못된, 잘못된 형식의 문서를 토큰화할 수 없다는 것을 처리 할 수 있을까요?
당신은 TM에서'tm_map'와 koRpus에서'flesh.kincaid'를 사용할 수 있습니까? –
나는 할 수 없다. "오류 : 언어가 지정되지 않았습니다!"라고 표시됩니다. 'tm_map (dd, flesch.kincaid)의 모든 변형에 대해'tm_map (dd, flesch.kincaid, en ')'등등을 생각할 수 있습니다. – Mittenchops
그래서 나는 다른 질문 (http : 중첩 된 함수에 인수를 전달하는 방법에 대한 자세한 내용은 /questions/6827299/r-apply-function-with-multiple-parameters를 참조하십시오. 나는이'tm_map (d, flesch.kincaid, force.lang = "en", tagger = tokenize)'을 시도했지만 "지정된 파일"을 찾을 수 없다는 오류를 얻은 다음, 문서 1의 내용을 출력합니다. – Mittenchops