2016-10-26 3 views
-3

어떻게 n 그램을 결합하는지 알고 싶습니다. 예를 들어, 단어 bab가있는 경우 2gram (ba) = 2.969, 2gram (ab) = 2.77을 기준으로 하나의 값을 계산하고 싶습니다. 나는 2 개의 질문이 있습니다 : 1. 그것은 어떻게 이론적으로 이루어 집니까? 2. 실제로 이것에 대한 효율적인 구현 방법이 있습니까? 솔루션에 희소 매트릭스가 포함되어 있다고 생각하고 신중하지 않으면 상당히 비효율적 일 수 있습니다.R 그램에서 n 그램 결합하기

+1

"하나의 값 계산"이란 무엇을 의미합니까? –

답변

0

당신은 ngram 패키지를 사용하여이 작업을 수행 할 수 있습니다

#install.packages("ngram") 
library(ngram) 

str <- "bab" 
ng <- ngram(splitter(str, split.char = TRUE)) 

주는합니다 (토큰 화는 매우 효율적인 C 코드에 의해 처리됩니다) :

> get.ngrams(ng) 
#[1] "b a" "a b" 

또한 수행하여 주파수 테이블을 얻을 수 있습니다 :

> get.phrasetable(ng) 
# ngrams freq prop 
#1 b a  1 0.5 
#2 a b  1 0.5 
+0

코멘트 주셔서 감사합니다. 나는 나의 질문이 정말로 분명하지 않았던 것으로 생각한다. 나는 어떤 텍스트에서 2-gram을 계산하는 방법을 안다. "분포"를 감안할 때, 단어 (예 : "bab")가 그 분포에서 추출된다는 점수 (예 : 확률)를 원한다. – user2154457

+0

@ user2154457 [MCVE] –